Add candidates to existing schedule extended
POST /api/v1/integrations/schedule/add-candidates
Creates candidates (or updates them if they already exist) and adds them to an existing schedule in one call. To add candidates that already exist using only their external IDs, use Add candidates to schedule.
Before using this call, schedule the assessment in Cirrus. Use the schedule's external ID (ScheduleExtId) in the request.
Header
| Name | Value | Description |
|---|---|---|
| Content-Type | application/json | For all requests |
| Authorization | EAPI {token} | For all requests |
Request body
Parameters marked * are mandatory
| Name | Type | Description |
|---|---|---|
| Schedule* | object | The schedule to add the candidates to |
| Schedule.ScheduleExtId* | string (64) | Alphanumeric and dashes. External ID of the existing schedule |
| Schedule.GroupExtId* | string (64) | Alphanumeric and dashes. External ID of the hierarchy group the candidates are added to |
| Schedule.GroupName* | string (500) | Name of the hierarchy group the candidates are added to |
| Candidates* | array | The candidates to add |
| Candidates[].CandidateExtId* | string (500) | Alphanumeric and dashes. External ID of the user in Cirrus |
| Candidates[].FirstName* | string (500) | First name |
| Candidates[].LastName* | string (500) | Last name |
| Candidates[].Email* | string (500) | A valid email address |
| Candidates[].UserName | string (500) | If not set, UserName = CandidateExtId |
| Candidates[].Password | string (500) | Lets the candidate log in manually. Stored salted and hashed |
| Candidates[].SpecialNeeds | string (500) | true or false.Whether the candidate needs extra time |
| Candidates[].ReasonableAdjustmentPercentage | int | Extra time as a percentage. For example, 20% on 60 minutes gives 12 minutes extra. Only allowed when SpecialNeeds = true |
| Candidates[].Photo | string (500) | Any string |
| Candidates[].Company | string (500) | Any string |
| Candidates[].City | string (500) | Any string |
| Candidates[].State | string (500) | Any string |
| Candidates[].CountryCode | string (500) | Any string |
| Candidates[].PostalCode | string (500) | Any string |
| Candidates[].AddressLine1 | string (500) | Any string |
| Candidates[].AddressLine2 | string (500) | Any string |
| Candidates[].PhoneNumber | string (500) | Any string |
| Candidates[].RegistrationNumber | string (500) | Any string |
| Candidates[].VoucherId | string (500) | Any string |
| Candidates[].CompId | string (500) | Any string |
| Candidates[].ProctorUIds | array of strings | For example ["1235", "234"] |
Sample request
{
"Schedule": {
"ScheduleExtId": "ScEXT1",
"GroupExtId": "GrEXT1",
"GroupName": "Group_ext_1"
},
"Candidates": [
{
"CandidateExtId": "EXT1",
"FirstName": "John",
"LastName": "Doe",
"Email": "john.doe@example.com"
}
]
}
Sample successful response
{
"Result": "Candidates were successfully added to schedule [ScEXT1]",
"Schedule": {
"ScheduleExtId": "ScEXT1",
"GroupName": "Group_ext_1",
"GroupExtId": "GrEXT1"
},
"Candidates": [
{
"CandidateExtId": "EXT1",
"FirstName": "John",
"LastName": "Doe",
"Email": "john.doe@example.com",
"Password": null,
"StartupLink": "/delivery/external-login?session={accessToken}"
}
]
}
StartupLink is the relative link the candidate uses to start the assessment.

