Scheduling Data
In Scheduler, there are many components to scheduling that can be configured and queried, such as clients (departments), modules, test centres/rooms (buildings), and tests (events).
This article explains what calls can be made to the Scheduler API using the scheduling data resource.
Import this API into your Postman Workspace
In This Article
Integration Flow
The following diagram shows the Scheduling Data integration flow:

Clients
Clients (departments) are the top-level container of test centres/rooms, staff members, and candidates. The Departments endpoint can be used to list, retrieve, and search for clients (departments).
Listing clients
Send a request to the endpoint to retrieve a list of clients (departments). Refer to the available parameters to influence the response. No request body is required.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
|
take |
query OPTIONAL |
/api/Departments?$take={take} |
Defines number of responses to return when paging a response, where {take} is a number between 1 and 150. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in JSON format as requested.
{
"reference": "1",
"nextUrl": null,
"data": [
{
"colour": "#A4D1C9",
"parentId": null,
"parent": null,
"isEligibilityEnabled": true,
"allowAnonymousBookingView": false,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": false,
"delete": false,
"hideInLists": false,
"customFields": null,
"id": "SurpassDepartment",
"description": "Surpass Department",
"altId": "",
"optimeIndex": 1,
"createUser": "fd8910a8-8993-425b-9a05-0e1482c6bd1d",
"createDate": "2024-06-13T07:16:50.7407389",
"changeUser": null,
"changeDate": null,
"messages": []
}
]
}
...Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
staffDepartments array
Contains the information of any staff in the client (department).
roomDepartments array
Contains the information of any rooms in the client (department).
studentDepartments array
Contains the information of any students in the client (department).
optimeIndex integer
The department’s unique OptimeIndex identifier.
Retrieving client information
Send a request to the endpoint to retrieve information for a specific client (department) using its ID. No request body is required.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
|
id |
path OPTIONAL |
/api/Departments/{departmentId} |
Returns information for the specified client (department), where {departmentId} is the client’s unique OptimeIndex identifier. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in JSON format as requested.
{
"colour": "#A4D1C9",
"parentId": null,
"parent": null,
"isEligibilityEnabled": true,
"allowAnonymousBookingView": false,
"isPORequired": false,
"ownerIds": [
1
],
"owners": [
{
"staffTypeId": null,
"staffType": null,
"siteId": null,
"site": null,
"accessLevelId": null,
"accessLevel": null,
"image": null,
"forename": "Hidden Value",
"surname": "",
"email": null,
"telephone": null,
"comments": null,
"isDeleteImage": false,
"aspNetUserId": null,
"echo360UserId": null,
"tenancyUserId": null,
"departmentIds": [],
"attributeIds": [],
"attributes": [],
"teamIds": [],
"teams": [],
"departments": [],
"departmentsOwned": [],
"departmentOwnedIds": [],
"colour": null,
"officeLocationId": null,
"officeLocation": null,
"weeks": [],
"eventIds": [],
"events": [],
"isInvigilator": false,
"gender": null,
"fte": null,
"workloadLowerTolerance": null,
"workloadUpperTolerance": null,
"startDate": null,
"endDate": null,
"isArchived": false,
"eventAcceptanceStatus": null,
"edit": false,
"delete": false,
"customFields": null,
"id": "Hidden Value",
"description": null,
"altId": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"staffDepartments": [
{
"staffId": 1,
"staff": {
"staffTypeId": null,
"staffType": null,
"siteId": null,
"site": null,
"accessLevelId": null,
"accessLevel": null,
"image": null,
"forename": "Stuart",
"surname": "Fenwick",
"email": null,
"telephone": null,
"comments": null,
"isDeleteImage": false,
"aspNetUserId": null,
"echo360UserId": null,
"tenancyUserId": null,
"departmentIds": [],
"attributeIds": [],
"attributes": [],
"teamIds": [],
"teams": [],
"departments": [],
"departmentsOwned": [],
"departmentOwnedIds": [],
"colour": null,
"officeLocationId": null,
"officeLocation": null,
"weeks": [],
"eventIds": [],
"events": [],
"isInvigilator": false,
"gender": null,
"fte": null,
"workloadLowerTolerance": null,
"workloadUpperTolerance": null,
"startDate": null,
"endDate": null,
"isArchived": false,
"eventAcceptanceStatus": null,
"edit": false,
"delete": false,
"customFields": null,
"id": "User1",
"description": null,
"altId": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"departmentId": 0,
"department": null
}
],
"roomDepartments": [
{
"roomId": 1,
"room": {
"capacity": 5,
"realCapacity": 5,
"floor": null,
"roomTypeId": null,
"roomType": null,
"buildingId": null,
"building": null,
"accessLevelId": null,
"accessLevel": null,
"zoneIds": [],
"inactive": null,
"inactiveStartDate": null,
"inactiveEndDate": null,
"allocDate": null,
"images": null,
"isDeleteImage": false,
"comments": null,
"parentRoomId": null,
"colour": null,
"isOnline": false,
"isStudentHidden": false,
"isRoomClosed": false,
"local": null,
"equipmentIds": [],
"equipments": [],
"departmentIds": [],
"departments": [],
"weeks": [],
"edit": false,
"delete": false,
"isHidden": false,
"isAccessible": false,
"availableSeats": null,
"departmentAvailableSeats": null,
"minimumFill": null,
"numReserved": null,
"numUnknown": null,
"distanceFromUser": null,
"echo360Id": null,
"syncEmail": null,
"isArchived": false,
"customFields": null,
"id": "SurpassRoom1",
"description": "Surpass Room 1",
"altId": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
}
],
"buildingDepartments": null,
"studentDepartments": [
{
"studentId": 1,
"student": {
"departmentIds": [],
"departments": [],
"image": null,
"forename": "Sanjib",
"surname": "Datta",
"address": null,
"email": null,
"aspNetUserId": null,
"telephone": null,
"dateOfBirth": null,
"isExternalFunded": null,
"isResitPaymentRequired": null,
"isDeleteImage": false,
"firm": null,
"tenancyUserId": null,
"roomId": null,
"canMissEvents": null,
"welfare": null,
"accessLevelId": null,
"accessLevel": null,
"groupIds": [],
"groups": [],
"eventIds": [],
"events": [],
"modules": [],
"moduleIds": [],
"attributeIds": [],
"attributes": [],
"courseIds": [],
"courses": [],
"edit": false,
"delete": false,
"colour": null,
"groupId": null,
"group": null,
"status": null,
"leavingDate": null,
"partner": null,
"reasonableAdjPercentage": null,
"reasonableAdjMins": null,
"breakMins": null,
"gender": null,
"nationality": null,
"qualificationCountry": null,
"timezone": null,
"isArchived": false,
"eventAcceptanceStatus": null,
"weeks": null,
"courseStartDate": null,
"courseFinishDate": null,
"callForCourseDate": null,
"courseHistory": [],
"studentIsNoLongerAttending": false,
"studentIsNotYetStarted": false,
"studentIsFinished": false,
"canMoveEvent": false,
"canMoveRoom": false,
"customFields": null,
"id": "Candidate1",
"description": "Candidate1",
"altId": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
}
],
"departmentEnrolmentResultTypes": [],
"childDepartments": [],
"edit": false,
"delete": false,
"hideInLists": false,
"customFields": null,
"id": "SurpassDepartment",
"description": "Surpass Department",
"altId": "",
"optimeIndex": 1,
"createUser": "fd8910a8-8993-425b-9a05-0e1482c6bd1d",
"createDate": "2024-06-13T07:16:50.7407389",
"changeUser": null,
"changeDate": null,
"messages": []
}Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
isEligibilityEnabled Boolean
Determines whether eligibility is enabled for the client (department) (true) or not (false).
staffDepartments/staff/forename string
The staff member’s first name.
staffDepartments/staff/surname string
The staff member’s surname.
staffDepartments/staff/optimeIndex integer
The staff member’s unique OptimeIndex identifier.
roomDepartments/roomId integer
The room’s unique OptimeIndex identifier.
roomDepartments/room/capacity integer
The room’s total capacity.
roomDepartments/room/id string
The room’s unique reference code.
roomDepartments/room/description string
A description of the room.
roomDepartments/room/optimeIndex integer
The room’s unique OptimeIndex identifier.
studentDepartments/studentId integer
The candidate’s unique OptimeIndex identifier.
studentDepartments/student/forename string
The candidate’s first name.
studentDepartments/student/surname string
The candidate’s surname.
studentDepartments/student/address string
The candidate’s address.
studentDepartments/student/email string
The candidate’s email address.
studentDepartments/student/telephone string
The candidate’s telephone number.
studentDepartments/student/dateOfBirth string
The candidate’s date of birth, in YYYY-MM-DD format.
studentDepartments/student/reasonableAdjPercentage integer
The amount of additional time given to the candidate as a reasonable adjustment, as a percentage of the overall test time.
studentDepartments/student/reasonableAdjMins integer
The amount of additional time given to the candidate as a reasonable adjustment, in minutes.
studentDepartments/student/breakMins integer
If breaks are enabled for the test, the amount of time available for a candidate’s break, in minutes.
studentDepartments/student/gender string
The candidate’s gender.
studentDepartments/student/id string
The candidate’s unique reference code.
studentDepartments/student/description string
A description of the candidate.
studentDepartments/student/optimeIndex integer
The candidate’s unique OptimeIndex identifier.
id string
The client (department)’s unique reference code.
description string
A description of the client (department).
optimeIndex integer
The client (department)’s unique OptimeIndex identifier.
Searching for a client
Send a request to the endpoint to search for a client (department) using a search query.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
content-type |
header MANDATORY |
multipart/form-data |
Determines that there is form data being passed in the request. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
Request schema
The following table contains the available text-based form-data parameters to search for a client (department).
|
Name |
Key |
Input |
Description |
|---|---|---|---|
|
draw |
text |
integer |
A request identifier used to match responses with requests. The server should return the same identifier to help the table handle asynchronous responses in the right order. |
|
start |
text |
integer |
The position of the first record to return (used for paging through results). |
|
length |
text |
integer |
The number of records to return (how many rows to show per page). |
|
searchQuery |
text |
string |
Contains the search query, which can be a string or substring, for example ‘Surpass’. Searches on names, unique reference codes, and descriptions. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the client (department)(s)’ details.
{
"data": [
{
"id": "Department1",
"altId": "",
"description": "Department 1",
"colour": null,
"parentId": null,
"parent": null,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": true,
"delete": true,
"hideInLists": false,
"customFields": null,
"optimeIndex": 1,
"createUser": null,
"createDate": "2024-02-29T08:31:31.9238335",
"changeUser": null,
"changeDate": null,
"messages": []
},
{
"id": "Department2",
"altId": "",
"description": "Department 2",
"colour": null,
"parentId": null,
"parent": null,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": true,
"delete": true,
"hideInLists": false,
"customFields": null,
"optimeIndex": 2,
"createUser": null,
"createDate": "2024-06-13T08:16:50.7407389",
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"draw": 0,
"recordsTotal": 2,
"recordsFiltered": 2,
"selectAllIds": null
}Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
data/id string
The client (department)’s unique reference code.
data/description string
A description of the client (department).
data/optimeIndex integer
The client (department)’s unique OptimeIndex identifier.
Modules
Modules are a container for tests (events) and candidates. The Modules endpoint can be used to list and retrieve modules.
Listing modules
Send a request to the endpoint to retrieve a list of modules. Refer to the available parameters to influence the response. No request body is required.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
|
take |
query OPTIONAL |
/api/Modules?$take={take} |
Defines number of responses to return when paging a response, where {take} is a number between 1 and 150. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in JSON format as requested.
{
"reference": "1",
"nextUrl": null,
"data": [
{
"departmentId": 1,
"department": {
"id": "Department1",
"altId": null,
"description": "Department 1",
"colour": null,
"parentId": null,
"parent": null,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": false,
"delete": false,
"hideInLists": false,
"customFields": null,
"optimeIndex": 111,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"comments": "",
"termsUri": null,
"isDeleteFile": false,
"colour": "#91D2BE",
"moduleTypeId": null,
"moduleType": null,
"targetSize": null,
"startDate": "2024-08-01T00:00:00",
"finishDate": "2026-10-31T00:00:00",
"eventIds": [
1
],
"events": [],
"courseIds": [],
"enrolmentStudentIds": [],
"moduleCourses": [],
"courses": [],
"studentIds": [
1,
2,
3
],
"groupIds": [],
"students": [],
"eStudents": [],
"groups": [],
"attributeIds": [],
"attributes": [],
"rooms": [],
"staff": [],
"edit": false,
"delete": false,
"isEnrolment": null,
"enrolmentInformation": null,
"enrolmentDeadline": null,
"cost": null,
"isPaired": false,
"credits": null,
"cancelled": false,
"cancelledReason": null,
"cancelledUser": null,
"cancelledDate": null,
"isFixed": false,
"numberOfWeeks": null,
"customFields": null,
"instanceId": null,
"teachingLanguage": null,
"echo360Id": null,
"enforceSelectionStrategy": false,
"selectionStrategy": 0,
"id": "Module1",
"description": "Module 1",
"altId": "",
"optimeIndex": 1,
"createUser": "fa8d0dcc-3a36-4a8a-9d86-6244c14b1e4c",
"createDate": "2024-08-08T13:07:56.5541071",
"changeUser": null,
"changeDate": null,
"messages": []
}
]
}
...Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
nextUrl string
The endpoint to call the next page of records, which is the following query: /api/modules?reference={reference}, where {reference} is the OptimeIndex identifier of the last record. There can be up to 150 records per page.
nextUrl does not prioritise accessible records over inaccessible ones when paginating. As a result, records you have permission to view may appear on later pages.
If null, the response is the last page of records.
id string
The module’s unique reference code.
description string
A description of the module.
optimeIndex integer
The module’s unique OptimeIndex identifier.
Retrieving module information
Send a request to the endpoint to retrieve information for a specific module using its ID. No request body is required.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
|
id |
path OPTIONAL |
/api/Modules/{moduleId} |
Returns information for the specified module, where {moduleId} is the module’s unique OptimeIndex identifier. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in JSON format as requested.
{
"departmentId": null,
"department": null,
"comments": null,
"termsUri": null,
"isDeleteFile": false,
"colour": null,
"workloadActivityType": null,
"moduleTypeId": null,
"moduleType": null,
"targetSize": null,
"startDate": null,
"finishDate": null,
"eventIds": [],
"events": [
{
"departmentId": 1,
"department": null,
"eventTypeId": null,
"eventType": null,
"duration": 60,
"allowBreaks": false,
"lockedOption": null,
"isEnrolment": null,
"openForEnrolment": null,
"joiningInstructionsSendOn": null,
"cost": null,
"timeslotId": null,
"timeslot": null,
"targetSize": null,
"publishStatus": "Live",
"notes": null,
"schedulerNotes": null,
"staffNotes": null,
"studentNotes": null,
"solasNotes": null,
"additionalDescription": null,
"enrolmentDeadline": null,
"exactDeadline": null,
"offset": null,
"setup": null,
"takeDown": null,
"cancelledReason": null,
"cancelledDate": null,
"cancelledTimeslotId": null,
"cancelledTimeslot": null,
"cancelledUser": null,
"isOnline": false,
"onlineMeetingUrl": null,
"onlineMeetingType": 0,
"date": null,
"endDate": null,
"weeks": [],
"dates": [],
"isAutoScheduled": false,
"isFinishedReserving": null,
"overLunchBreak": false,
"overEveningBreak": false,
"numStudents": 0,
"totalSize": 0,
"numOccurrences": 0,
"attributeIds": [],
"attributes": [],
"roomAttributesVisualConstraints": [],
"missingRoomAttributesVisualConstraints": [],
"roomAttributeIds": [],
"eventDocuments": [],
"groups": [],
"rooms": [],
"buildings": [],
"staff": [],
"students": [],
"modules": [],
"course": [],
"resourceIds": [],
"enrolments": [],
"reservations": [],
"eventNotes": [],
"tenancyId": 0,
"edit": false,
"delete": false,
"scheduleTime": false,
"allocateRooms": false,
"allocateStaff": false,
"allocateModules": false,
"allocateGroupsStudents": false,
"publish": false,
"groupId": null,
"group": null,
"isOnDemand": false,
"parentEventId": null,
"parentId": null,
"isOptional": false,
"disableSelfCheckIn": false,
"forceReminder": false,
"surpassRef1": null,
"surpassRef2": null,
"surpassRef3": null,
"priority": 5,
"ignoreViolations": false,
"splitParentId": null,
"splitParent": null,
"forceEcho360Sync": false,
"cancellationMethod": null,
"moveMethod": null,
"cancellationDate": null,
"moveMethodDate": null,
"openDate": null,
"canMoveEvent": false,
"canMoveRoom": false,
"hideRoomSelection": false,
"requiresAcceptance": false,
"requiresCapture": 0,
"echoAvailability": 0,
"echoInput1": 0,
"echoInput2": 0,
"echoShouldStream": 0,
"echoRelativeDelay": 0,
"existingGroupEvent": false,
"customFields": null,
"transferId": null,
"brightspaceId": null,
"attendanceMarkingIsNotRequired": false,
"eventTotalSize": 0,
"isArchived": false,
"id": "TestBooking1",
"description": "Test Booking 1",
"altId": null,
"optimeIndex": 1,
"createUser": "stuart.fenwick@surpass.com",
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"eStudents": [],
"groups": [],
"attributeIds": [],
"attributes": [],
"rooms": [],
"staff": [],
"edit": false,
"delete": false,
"isEnrolment": null,
"enrolmentInformation": null,
"enrolmentDeadline": null,
"cost": null,
"isPaired": false,
"credits": null,
"isArchived": false,
"cancelled": false,
"cancelledReason": null,
"cancelledUser": null,
"cancelledDate": null,
"isFixed": false,
"ignoreGroupAllocation": false,
"numberOfWeeks": null,
"customFields": null,
"instanceId": null,
"teachingLanguage": null,
"nameSuffix1": null,
"nameSuffix2": null,
"nameSuffix3": null,
"echo360Id": null,
"brightspaceId": null,
"enforceSelectionStrategy": false,
"selectionStrategy": 0,
"id": "Module1",
"description": "Module 1",
"altId": null,
"optimeIndex": 1,
"createUser": "fa8d0dcc-3a36-4a8a-9d86-6244c14b1e4c",
"createDate": "2024-09-03T15:42:05.0936667",
"changeUser": null,
"changeDate": null,
"messages": []
}Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
events/departmentId integer
The unique OptimeIndex identifier of the department the module belongs to, for the test.
events/duration integer
The test’s duration.
events/allowBreaks Boolean
Determines whether breaks are allowed (true) or not (false).
events/isOnline Boolean
Determines whether the test is set to online (true) or in-person (false).
events/id string
The test’s unique reference code.
events/description string
A description of the test.
events/optimeIndex stringer
The test’s unique OptimeIndex identifier.
id string
The module’s unique reference code.
description string
A description of the module.
optimeIndex integer
The module’s unique OptimeIndex identifier.
Test centres
Test centres (buildings) are where tests are delivered. The Building endpoint can be used to search for a test centre.
Searching for a test centre
Send a request to the endpoint to search for a test centre using a search query.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
content-type |
header MANDATORY |
multipart/form-data |
Determines that there is form data being passed in the request. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
Request schema
The following table contains the available text-based form-data parameters to search for a test centre.
|
Name |
Key |
Input |
Description |
|---|---|---|---|
|
draw |
text |
integer |
A request identifier used to match responses with requests. The server should return the same identifier to help the table handle asynchronous responses in the right order. |
|
start |
text |
integer |
The position of the first record to return (used for paging through results). |
|
length |
text |
integer |
The number of records to return (how many rows to show per page). |
|
searchQuery |
text |
string |
Contains the search query, which can be a string or substring, for example ‘Surpass’. Searches on names, unique reference codes, and descriptions. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the test centre(s)’ details.
{
"data": [
{
"id": "SurpassTestCentre1",
"altId": "",
"description": "Surpass Test Centre 1",
"siteId": 1,
"site": {
"id": "Saltaire",
"altId": null,
"description": "Saltaire",
"buildings": [],
"buildingIds": null,
"edit": false,
"delete": false,
"longitude": null,
"latitude": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"latitude": null,
"longitude": null,
"address": "",
"colour": null,
"buildingCustodians": null,
"rooms": [],
"departmentIds": [
1
],
"departments": [
{
"id": "Department1",
"altId": null,
"description": "Department 1",
"colour": null,
"parentId": null,
"parent": null,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": false,
"delete": false,
"hideInLists": false,
"customFields": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"attributeIds": [],
"attributes": [],
"buildingOpeningHours": [],
"openTime": null,
"closeTime": null,
"edit": true,
"delete": true,
"optimeIndex": 1,
"createUser": "stuart.fenwick@surpass.com",
"createDate": "2024-06-13T09:12:48.5977509",
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"draw": 0,
"recordsTotal": 1,
"recordsFiltered": 1,
"selectAllIds": null
}Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
data/id string
The test centre’s unique reference code.
data/description string
A description of the test centre.
data/site/id string
The region’s unique reference code.
data/site/description string
A description of the region.
data/latitude string
The latitudinal co-ordinates of the test centre.
data/longitude string
The longitudinal co-ordinates of the test centre.
data/address string
The test centre’s address.
data/departmentIds array
Contains the unique OptimeIndex identifiers of the departments the test centre belongs to.
data/departments/id string
The department’s unique reference code.
data/departments/description string
A description of the department.
data/departments/optimeIndex integer
The department’s unique OptimeIndex identifier.
data/optimeIndex integer
The test centre’s unique OptimeIndex identifier.
Tests
Events are tests. The Events endpoint can be used to retrieve tests.
Retrieving test information
Send a request to the endpoint to retrieve information for a specific test (event) using its ID. No request body is required.
Parameters
Parameters are passed with the endpoint to influence the response. Header parameters are included in the request header. Path parameters are extensions of the endpoint, and query parameters follow ? after any path parameters.
|
Name |
Parameter |
Input |
Description |
|---|---|---|---|
|
authorization |
header MANDATORY |
Bearer {token} |
A bearer token must be passed to authorise the user’s request, where {token} is the token string. |
|
accept |
header MANDATORY |
application/json |
Determines data format of the response, which must be JSON. |
|
id |
path OPTIONAL |
/api/Events/{eventId} |
Returns information for the specified test, where {eventId} is the test’s unique OptimeIndex identifier. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in JSON format as requested.
{
"altId": "Subject1",
"departmentId": 1,
"department": {
"id": "SurpassDepartment",
"altId": null,
"description": "Surpass Department",
"colour": null,
"parentId": null,
"parent": null,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": false,
"delete": false,
"hideInLists": false,
"customFields": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"eventTypeId": 1,
"eventType": {
"altId": null,
"cost": null,
"deadline": null,
"exactDeadline": null,
"maxRetryLimit": null,
"maxAttempts": null,
"enrolmentInformation": null,
"isGroupAllocation": false,
"requiresCapture": false,
"echoAvailability": 0,
"echoInput1": 0,
"echoInput2": 0,
"echoShouldStream": 0,
"echoRelativeDelay": 0,
"isRoomsClosed": false,
"colour": null,
"edit": false,
"delete": false,
"id": "On-Demand",
"description": "On-Demand",
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"duration": 60,
"standardDuration": null,
"lockedOption": null,
"isEnrolment": true,
"openForEnrolment": null,
"cost": null,
"timeslotId": null,
"timeslot": null,
"targetSize": 0,
"publishStatus": "Live",
"notes": null,
"schedulerNotes": null,
"staffNotes": null,
"studentNotes": null,
"solasNotes": null,
"additionalDescription": null,
"enrolmentDeadline": 24,
"exactDeadline": null,
"offset": null,
"setup": null,
"takeDown": null,
"cancelledReason": null,
"cancelledDate": null,
"cancelledTimeslotId": null,
"cancelledTimeslot": null,
"cancelledUser": null,
"onlineMeetingUrl": null,
"onlineMeetingType": 0,
"date": null,
"endDate": null,
"weeks": [],
"dates": [],
"isAutoScheduled": false,
"isFinishedReserving": false,
"overLunchBreak": false,
"overEveningBreak": false,
"numStudents": 0,
"totalSize": 0,
"numOccurrences": 0,
"attributeIds": [],
"attributes": [],
"roomAttributesVisualConstraints": [],
"missingRoomAttributesVisualConstraints": [],
"roomAttributeIds": [],
"eventDocuments": [],
"groups": [],
"rooms": [
{
"id": "SurpassRoom1",
"altId": null,
"description": "Surpass Room 1",
"capacity": 10,
"realCapacity": 10,
"floor": null,
"roomTypeId": null,
"roomType": null,
"buildingId": 1,
"building": {
"id": "SurpassTestCentre1",
"altId": null,
"description": "Surpass Test Centre 1",
"siteId": null,
"site": {
"id": "Saltaire",
"altId": null,
"description": "Saltaire",
"buildings": [],
"buildingIds": null,
"edit": false,
"delete": false,
"longitude": "",
"latitude": "",
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"latitude": null,
"longitude": null,
"address": "",
"colour": null,
"buildingCustodians": [],
"rooms": null,
"departmentIds": null,
"departments": null,
"attributeIds": [],
"attributes": [],
"buildingOpeningHours": [],
"openTime": null,
"closeTime": null,
"edit": false,
"delete": false,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
},
"zoneIds": [],
"inactive": null,
"inactiveStartDate": null,
"inactiveEndDate": null,
"allocDate": null,
"images": [],
"isDeleteImage": false,
"comments": null,
"parentRoomId": null,
"colour": null,
"isOnline": false,
"isStudentHidden": false,
"isRoomClosed": false,
"local": null,
"equipmentIds": [],
"equipments": [],
"departmentIds": [
1
],
"departments": [
{
"id": "SurpassDepartment",
"altId": null,
"description": "Surpass Department",
"colour": null,
"parentId": null,
"parent": null,
"isPORequired": false,
"ownerIds": null,
"owners": null,
"staffDepartments": null,
"roomDepartments": null,
"buildingDepartments": null,
"studentDepartments": null,
"departmentEnrolmentResultTypes": null,
"childDepartments": null,
"edit": false,
"delete": false,
"hideInLists": false,
"customFields": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"weeks": [],
"edit": false,
"delete": false,
"isHidden": false,
"availableSeats": null,
"minimumFill": null,
"numReserved": 0,
"numUnknown": null,
"distanceFromUser": null,
"echo360Id": null,
"syncEmail": null,
"customFields": null,
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"buildings": [],
"staff": [],
"students": [],
"modules": [
{
"altId": null,
"departmentId": null,
"department": null,
"comments": null,
"termsUri": null,
"isDeleteFile": false,
"colour": null,
"moduleTypeId": null,
"moduleType": null,
"targetSize": null,
"startDate": null,
"finishDate": null,
"eventIds": [],
"events": [],
"courseIds": [],
"enrolmentStudentIds": [],
"moduleCourses": [],
"courses": [],
"studentIds": [],
"groupIds": [],
"students": [],
"eStudents": [],
"groups": [],
"attributeIds": [],
"attributes": [],
"rooms": [],
"staff": [],
"edit": false,
"delete": false,
"isEnrolment": null,
"enrolmentInformation": null,
"enrolmentDeadline": null,
"cost": null,
"isPaired": false,
"credits": null,
"cancelled": false,
"cancelledReason": null,
"cancelledUser": null,
"cancelledDate": null,
"isFixed": false,
"numberOfWeeks": null,
"customFields": null,
"instanceId": null,
"teachingLanguage": null,
"echo360Id": null,
"enforceSelectionStrategy": false,
"selectionStrategy": 0,
"id": "Module1",
"description": "Module 1",
"optimeIndex": 1,
"createUser": null,
"createDate": null,
"changeUser": null,
"changeDate": null,
"messages": []
}
],
"course": [],
"resourceIds": [],
"enrolments": [
{
"optimeIndex": 1,
"bookingResource": null,
"studentId": 1,
"student": null,
"moduleId": 1,
"module": null,
"eventId": 1,
"event": null,
"courseId": null,
"course": null,
"shopItemId": null,
"shopItem": null,
"roomId": 1,
"room": null,
"timeslotId": null,
"isOnline": false,
"onDemandBookingId": 1,
"onDemandBookingTime": "2024-07-31T08:00:00",
"timeslot": null,
"status": 1,
"cancellationDate": null,
"cancelledById": null,
"cancelledBy": null,
"cancellationReason": null,
"cancellationMessage": null,
"attemptNum": 1,
"acceptedTerms": true,
"date": null,
"changeUser": null,
"createUser": null,
"edit": false,
"delete": false,
"week": null,
"enrolmentResultTypeId": null,
"enrolmentResultType": null,
"onlineRoom": null,
"adjustedDuration": null,
"onlineType": 0,
"moduleTermsUri": null,
"paymentModel": {
"paymentMethod": null,
"paymentResponsibility": null,
"paymentStatus": null,
"paymentDueBy": null,
"paymentUrl": null,
"paymentLink": null,
"paymentReference": "8e7e57b0-e602-44b4-b1e9-2687a9961b1a",
"cost": null,
"isPaymentPending": false,
"stripeReference": null,
"stripePaymentMethodId": null,
"stripeToken": null,
"stripeRefundId": null,
"stripeRefundStatus": null,
"stripeClientSecret": null,
"wpmPaymentRequest": null
},
"enrolmentModules": null,
"reasonableAdjRequests": null,
"reasonableAdjDecision": null,
"appealUpheld": false,
"appealDetails": null,
"complaintDetails": null,
"bookedOnBehalf": false,
"tenancyId": 1,
"canMove": false,
"canCancel": false,
"joiningInstructionsSent": null,
"createDate": null,
"changeDate": null,
"messages": []
}
],
"reservations": [],
"eventNotes": [],
"tenancyId": 0,
"edit": true,
"delete": true,
"scheduleTime": true,
"allocateRooms": true,
"allocateStaff": true,
"allocateModules": true,
"allocateGroupsStudents": true,
"publish": true,
"groupId": null,
"group": null,
"isOnDemand": true,
"parentEventId": null,
"parentId": null,
"isOptional": false,
"disableSelfCheckIn": false,
"forceReminder": false,
"surpassRef1": null,
"surpassRef2": null,
"surpassRef3": null,
"priority": 5,
"ignoreViolations": false,
"splitParentId": null,
"splitParent": null,
"forceEcho360Sync": false,
"cancellationMethod": 1,
"moveMethod": 1,
"cancellationDate": null,
"moveMethodDate": null,
"openDate": null,
"canMoveEvent": true,
"canMoveRoom": true,
"hideRoomSelection": false,
"requiresCapture": 0,
"echoAvailability": 0,
"echoInput1": 0,
"echoInput2": 0,
"echoShouldStream": 0,
"echoRelativeDelay": 0,
"existingGroupEvent": false,
"customFields": null,
"transferId": null,
"id": "Test1",
"description": "Test 1",
"optimeIndex": 1,
"createUser": "stuart.fenwick@surpass.com",
"createDate": "2024-07-21T07:28:31.9032339",
"changeUser": "stuart.fenwick@surpass.com",
"changeDate": "2024-08-05T06:38:44.9031954",
"messages": []
}Response schema
The response schema contains a description of various properties that can be returned for this endpoint. For a full API reference, contact your Surpass Customer Success Manager.
altId string
The name of the test (event)’s subject.
departmentId integer
The client (department)’s unique optimeIndex identifier.
department/id string
The client (department)’s unique reference code.
department/description string
The client (department)’s name.
department/optimeIndex integer
The client (department)’s unique optimeIndex identifier.
eventTypeId integer
The test (event) type’s unique optimeIndex identifier.
eventType/id string
The test (event)type ‘s unique reference code, which should always be On-Demand.
eventType/optimeIndex integer
The test (event) type’s unique optimeIndex identifier.
modules/id string
The module’s unique reference code.
modules/description string
The module’s name
modules/optimeIndex integer
The module’s unique optimeIndex identifier.
duration integer
The duration of the test (event), in minutes.
id string
The test (event)’s unique reference code.
description string
The test (event)’s name.
Further reading
Read the following articles to learn more about the scheduling system or more about related APIs: