To integrate with our assessment solution, you need an authentication key to make requests related to a workspace.
The first step to start the integration is to contact our support at help@coodesh.com email and request the creation of an account in our Sandbox environment with the necessary settings so that you can perform the integration tests in a controlled environment.
Our service team will support you during the integration.
Environments
Value | Value |
Production |
Authentication
In order for you to be able to make the requests, you need a custom header, for example:
Custom Header
Key | Value |
X-API-KEY | <Token> |
Content-Type | application/json |
Flow chart
Understand how the integration flow works
Endpoints
List of assessments
GET /assessments/ats
List of assessments available in the account that makes the request with the authorization.
Answer
[
{
"offset": 0,
"total": 1,
"limit": 150,
"payload": [
{
"assessment_id": "6707e51d867d313ecdd5f456",
"name": "AT - Integração",
"description": "Teste integração ATT",
"default_locale": "pt",
"duration": 5,
"duration_unit": "hour",
"questions": [
{
"name": "Teste básico de lógica",
"description": "Crie uma classe que possa os métodos abaixo...",
"type": "freecoding",
"type_formatted": "Programação livre",
"level": "beginner",
"level_formatted": "Iniciante",
"duration": 30,
"duration_unit": "minute"
},
{
"name": "Infraestrutura Multiusuários e Multitenant",
"description": "Solicitar ao candidato que desenhe e explique uma arquitetura...",
"type": "whiteboard",
"type_formatted": "Quadro branco",
"level": "advanced",
"level_formatted": "Avançado",
"duration": 5,
"duration_unit": "hour"
}
]
}
]
}
]
Create an attempt
POST /assessments/ats/attempts
Create an attempt with the selected assessment
{
email (string, required),
name (string, required),
user_id (string, required),
assessment_id (string, required),
company_id (string, required),
job_id (string, required),
callback_url (string, required),
webhook_ul (string, required),
disable_email: (boolean, optional)
}
Request
{
"email": "glaydston+user24@coodesh.com",
"name": "Glaydston User 24",
"user_id": "b12002e0-afc4-11ee-ac51-1fb9ace11428",
"company_id": "d5cf6e60-f2f5-11e7-9747-838fbc80281c",
"assessment_id": "66db51bd1df871f6747fa6cb",
"job_id": "54046020-aec4-11ee-a01d-174ac5115722",
"callback_url": "https://empresa.seuats.com",
"webhook_url": "https://api.seuats.com",
"disable_email": true
}
Response
{
"attempt_id": "66df68adc308c0ef4ee945f7",
"attempt_url": "https://beta.coodesh.com/pt/assessments/1725650303604?user_token=validToken"
}
Get a result
GET /assessments/ats/attempts/{attemptId}
Get the result of an assessment using the attempt identifier
Response
{
"attempt_id": "65dfa9f6feb036139eccce41",
"title": "Backend Node.js",
"assessment_id": "659cfcfe671ace001106dcaa",
"description": "This is the result of your Backend Node.js assessment",
"company_result_string": "User 1 scored 15% in the Backend Node.js assessment.\nTests:\n20% - BMI - Programming\n10% - Node.js - Quiz\nSuspicious actions: None\nSent at: 11:07 AM, April 11, 2024 GMT-03:00\nCompleted at: 6:25 PM, March 26, 2024 GMT-03:00\nReport: https://beta.coodesh.com/pt/share/assessments/66033c206c4a8c08e941513c?accessToken={token}",
"status": "finished",
"status_formatted": "Finished",
"stage": "hired",
"stage_formatted": "Hired",
"score": 15,
"score_type": "percentage",
"results": [
{
"score": 15,
"result_string": "string",
"score_type": "percentage",
"tier": "major",
"title": "Backend Node.js",
"description": "string",
"date": "2024-03-26"
}
],
"provider_name": "Coodesh",
"provider_link": "https://beta.coodesh.com",
"invited": "2024-09-26T18:47:50.185Z",
"updated": "2024-09-26T18:51:09.457Z",
"started": "2024-09-26T18:47:50.179Z",
"finished": "2024-09-26T18:50:25.575Z",
"public_link": "https://beta.coodesh.com/pt/share/assessments/65dfa9f6feb036139eccce41?accessToken={token}",
"result_talent_link": "https://beta.coodesh.com/pt/assessments/results/65dfa9f6feb036139eccce41",
"proctoring": {
"devices": 1,
"locations": 2,
"fullscreen_exits": 0,
"tab_exits": 3,
"copy_paste_count": 0,
"last_location": "BR",
"last_device_type": "desktop",
"last_browser": "Chrome",
"last_os": "macOS",
"severity_category": "none",
"severity_category_formatted": "None"
}
}
WebHook
To integrate the states of the evaluation attempts into your system, you can use the following statuses:
Started: Indicates that the employee has started the assessment but has not yet completed it.
Expired: It means that the deadline for completing the evaluation has been exceeded without the employee completing it.
Finished: It points out that the employee has completed the evaluation and the results are available.
With each change in the state of an attempt, our system will trigger the webhook_url one provided during the creation of the attempt, sending the data corresponding to the new state.
Below are examples of data objects corresponding to each state:
Started
{
"title": "Frontend challenge 2024",
"status": "started",
"status_formatted": "Iniciado",
"invited": "2024-09-26T18:47:50.183Z",
"started": "2024-09-26T18:47:50.179Z",
"updated": "2024-09-26T18:51:09.457Z",
"provider_name": "Coodesh",
"provider_link": "https://beta.coodesh.com"
}
Expired
{
"title": "Frontend challenge 2024",
"status": "expired",
"status_formatted": "Expirado",
"invited": "2024-09-26T18:47:50.183Z",
"started": "2024-09-26T18:47:50.179Z",
"updated": "2024-09-26T18:51:09.457Z",
"expired": "2024-09-26T18:50:25.575Z",
"provider_name": "Coodesh",
"provider_link": "https://beta.coodesh.com"
}
Finished
{
"attempt_id": "65dfa9f6feb036139eccce41",
"title": "Backend Node.js",
"assessment_id": "659cfcfe671ace001106dcaa",
"description": "This is the result of your Backend Node.js assessment",
"company_result_string": "User 1 scored 15% in the Backend Node.js assessment.\nTests:\n20% - BMI - Programming\n10% - Node.js - Quiz\nSuspicious actions: None\nSent at: 11:07 AM, April 11, 2024 GMT-03:00\nCompleted at: 6:25 PM, March 26, 2024 GMT-03:00\nReport: https://beta.coodesh.com/pt/share/assessments/66033c206c4a8c08e941513c?accessToken={token}",
"status": "finished",
"status_formatted": "Finished",
"stage": "hired",
"stage_formatted": "Hired",
"score": 15,
"score_type": "percentage",
"results": [
{
"score": 15,
"result_string": "string",
"score_type": "percentage",
"tier": "major",
"title": "Backend Node.js",
"description": "string",
"date": "2024-03-26"
}
],
"provider_name": "Coodesh",
"provider_link": "https://beta.coodesh.com",
"invited": "2024-09-26T18:47:50.185Z",
"updated": "2024-09-26T18:51:09.457Z",
"started": "2024-09-26T18:47:50.179Z",
"finished": "2024-09-26T18:50:25.575Z",
"public_link": "https://beta.coodesh.com/pt/share/assessments/65dfa9f6feb036139eccce41?accessToken={token}",
"result_talent_link": "https://beta.coodesh.com/pt/assessments/results/65dfa9f6feb036139eccce41",
"proctoring": {
"devices": 1,
"locations": 2,
"fullscreen_exits": 0,
"tab_exits": 3,
"copy_paste_count": 0,
"last_location": "BR",
"last_device_type": "desktop",
"last_browser": "Chrome",
"last_os": "macOS",
"severity_category": "none",
"severity_category_formatted": "None"
}
}
These examples illustrate how the different states of trial attempts can be represented in your system.
Error Codes
400 - Bad Request
Data submitted incorrectly or out of standard.
401 - Unauthorized
Enter the authorization token to make the desired request.
403 - Forbidden
Not authorized enough to access the desired resource.
429 - Too Many Requests
Maximum limit of requests reached.
500 - Internal Server Error
Indicates execution error on the server.
