HistoricalResult API
The result returned by the HistoricalResult resource contains every version of a result in Reporting. If any changes have taken place in Reporting, this resource provides a record of the result in each state between rescoring sessions.
The AnalyticsResult resource can be used to retrieve information on just the latest version of a result. For more information, read AnalyticsResult API.
The HistoricalResult API resource is used to list and retrieve results and item responses.
This article explains what calls can be made to the Surpass API using the HistoricalResult API resource.
Import this API into your Postman Workspace
In This Article
Listing results
Send a request to the endpoint to retrieve a list of results. 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 |
Basic {credentials} |
Basic authentication details must be passed to authorise the user’s request, where {credentials} is a Base64 encoded username:password string. |
accept |
header OPTIONAL |
application/json or application/xml |
Determines data format of the response, which can be either JSON or XML. |
top |
query OPTIONAL |
/api/v2/HistoricalResult?$top={top} |
Defines number of responses to return when paging a response, where {top} is a number between 1 and 40. |
skip |
query OPTIONAL |
/api/v2/HistoricalResult?$skip={skip} |
Defines how many responses to skip when paging a response, where {skip} is a number that should not exceed the total number of responses. |
filter |
query OPTIONAL |
/api/v2/HistoricalResult?$filter={filter} {operator} {value} |
Filters results, searching either for an exact match or for the data to contain a defined value. For an exact match: {filter} is one of subject/id, subject/reference, centre/id, centre/reference, test/id, test/reference, testForm/id, testForm/reference, candidate/id, candidate/reference, keycode; {operator} is eq (equal to); and {value} is the string or integer the filter query looks for an exact match for in the request. For a greater than query: {filter} is dateApplied, startedDate, submittedDate, warehousedDate; {operator} is ge (greater than); and {value} is the string (in DD/MM/YYYY format) the filter looks for more than in the request. For a less than query: {filter} is dateApplied, startedDate, submittedDate, warehousedDate; {operator} is le (less than); and {value} is the string (in DD/MM/YYYY format) the filter looks for less than in the request. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in either JSON or XML format as requested.
{
"count": 180,
"top": 10,
"skip": 0,
"pageCount": 18,
"nextPageLink": "https://{your Surpass instance}.surpass.com:443/api/v2/HistoricalResult?$skip=10",
"prevPageLink": null,
"response": [
{
"id": 1,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1"
},
{
"id": 2,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/2"
},
{
"id": 3,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/3"
},
{
"id": 4,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/4"
},
{
"id": 5,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/5"
},
{
"id": 6,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/6"
},
{
"id": 7,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/7"
},
{
"id": 8,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/8"
},
{
"id": 9,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/9"
},
{
"id": 10,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/10"
}
],
"errors": null,
"serverTimeZone": "GMT St
Response schema
The response schema contains a description of every property that can be returned for this endpoint.
count integer
Details how many results there are in total.
top integer
Details number of results returned in the response.
skip integer
Details how many results were skipped to display those in the response.
pageCount integer
Details how many pages of results there are.
nextPageLink string
The endpoint to call the next page of results. If null, the response is the last page of results.
prevPageLink string
The endpoint to call the previous page of results. If null, the response is the first page of results.
response array
Contains the rest of the response.
id integer
The result’s unique identifier.
href string
The endpoint to call the result’s information, such as /api/v2/HistoricalResult/{id} where {id} is the result’s unique identifier.
errors string
Information about any errors that occurred during the request.
serverTimeZone enumeration
The timezone of the server sending the response.
Retrieving result information
Send a request to the endpoint to retrieve information for a specific result using either its ID or the candidate’s unique keycode. 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 |
Basic {credentials} |
Basic authentication details must be passed to authorise the user’s request, where {credentials} is a Base64 encoded username:password string. |
accept |
header OPTIONAL |
application/json or application/xml |
Determines data format of the response, which can be either JSON or XML. |
id |
path OPTIONAL |
/api/v2/HistoricalResult/{id} |
Returns information for the specified result, where {id} is the result’s unique identifier. |
usePipeLoSeparator |
query OPTIONAL |
/api/v2/HistoricalResult/{id}?usePipeLoSeparator={Boolean} |
Determines whether to use the pipe symbol (‘|‘) to separate learning outcomes in the response (instead of commas), where {id} is the result’s unique identifier (or candidate’s unique keycode), and {Boolean} is one of true or false. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in either JSON or XML format as requested.
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"isLatest": true,
"pass": true,
"adjustedGrade": "Pass",
"changeDetails": {
"type": "Rescore",
"dateApplied": "2022-04-27T00:00:08.303",
"user": {
"id": 1,
"reference": "User1",
"href": "https://{your Surpass instance}.surpass.com/api/v2/User/1"
},
"rescoringRules": {
"id": 1,
"href": "https://{your Surpass instance}.surpass.com/api/v2/RescoringRule/1"
}
},
"scaleScoreMapping": null,
"test": {
"reference": "Test1",
"name": "Final Year Geography Test",
"id": 1,
"href": "https://{your Surpass instance}.surpass.com/api/v2/Test/1"
},
"testForm": {
"reference": "TestForm1",
"name": "Final Year Geography Test Form January 2022",
"id": 1,
"href": "https://{your Surpass instance}.surpass.com/api/v2/TestForm/1"
},
"subject": {
"reference": "Subject1",
"name": "Geography Subject",
"id": 1,
"href": "https://{your Surpass instance}.surpass.com/api/v2/Subject/1"
},
"externalReference": "",
"passMark": 0.0,
"passMarkType": "Percentage",
"percentageMark": 0.0,
"passPercentage": 0.0,
"IRTScore": null,
"passIRTScore": null,
"keycode": "KYP7DQ4S",
"resultsReleased": false,
"resultsSampled": false,
"scaleScore": null,
"pass": true,
"durationMode": "Untimed",
"isManuallySubmittedInLocal": false,
"sections": [
{
"id": 1,
"name": "",
"mark": 0.0,
"percentageMark": 0.0,
"availableMarks": 10,
"pass": true,
"passMark": 0.0,
"passPercentage": 0.0,
"passIRTScore": null,
"passMarkType": "Percentage",
"IRTScore": null,
"viewingTime": 0,
"items": [
{
"name": "Geography MCQ1",
"version": 3,
"mark": 0.0,
"awardedMark": 0.0,
"availableMarks": 5,
"viewingTime": "",
"learningOutcome": "",
"markBreakdown": [],
"unit": "",
"surpassReference": "5007P1",
"nonScored": false,
"type": "Question",
"candidateResponse": {
"Value": ""
},
"itemResponse": {
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5007P1"
},
"marker": null,
"displayNumber": null,
"markingType": "0",
"itemSetId": null,
"itemSetName": null
},
{
"name": "Geography MCQ2",
"version": 3,
"mark": 0.0,
"awardedMark": 0.0,
"availableMarks": 2,
"viewingTime": "",
"learningOutcome": "",
"markBreakdown": [],
"unit": "",
"surpassReference": "5007P2",
"nonScored": false,
"type": "Question",
"candidateResponse": {
"Value": ""
},
"itemResponse": {
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5007P2"
},
"marker": null,
"displayNumber": null,
"markingType": "0",
"itemSetId": null,
"itemSetName": null
},
{
"name": "Geography MCQ3",
"version": 3,
"mark": 0.0,
"awardedMark": 0.0,
"availableMarks": 3,
"viewingTime": "",
"learningOutcome": "",
"markBreakdown": [],
"unit": "",
"surpassReference": "5007P3",
"nonScored": false,
"type": "Question",
"candidateResponse": {
"Value": ""
},
"itemResponse": {
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5007P3"
},
"marker": null,
"displayNumber": null,
"markingType": "0",
"itemSetId": null,
"itemSetName": null
}
],
"sectionSelectorId": null,
"selected": null,
"startTime": null,
"endTime": null,
"isPoolTimeSection": false,
"poolName": null,
"isSurveySection": false,
"decisionPoint": null
}
],
"centre": {
"id": 1,
"reference": "Centre1",
"href": "https://{your Surpass instance}.surpass.com/api/v2/Centre/1"
},
"candidate": {
"id": 1,
"reference": "Candidate1",
"href": "https://{your Surpass instance}.surpass.com/api/v2/Candidate/1"
},
"mark": 0.0,
"availableMarks": 10,
"grade": "Voided",
"startedDate": null,
"submittedDate": "2022-04-27T00:00:00",
"warehousedDate": "2022-04-27T00:00:08.303",
"id": 1,
"reference": "KYP7DQ4S",
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1",
"learningOutcomeThreshold": 0,
"learningOutcomeBoundariesApplied": false,
"learningOutcomes": [],
"learningOutcomeBoundaries": [],
"sectionSelectors": [],
"IRTDomain": [],
"examWindowStartTime": "2022-04-27T00:00:00",
"allowedDuration": 0,
"reasonableAdjustments": {
"totalTimeAdded": 0,
"reasonForAdjustment": ""
},
"re-mark": "No",
"voidReason": "Auto Void, absent",
"actualDuration": 0,
"cutScoreAvailableMarks": 0,
"purchaseOrder": "",
"started": false,
"isReview": false
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Response schema
The response schema contains a description of every property that can be returned for this endpoint.
count integer
Details how many results there are in total. This is null because the information retrieved is for a specific result.
top integer
Details number of results returned in the response. This is null because the information retrieved is for a specific result.
skip integer
Details how many results were skipped to display those in the response. This is null because the information retrieved is for a specific result.
pageCount integer
Details how many pages of results there are. This is null because the information retrieved is for a specific result.
nextPageLink string
The endpoint to call the next page of results. This is null because the information retrieved is for a specific result.
prevPageLink string
The endpoint to call the previous page of results. This is null because the information retrieved is for a specific result.
response array
Contains the rest of the response.
isLatest Boolean
Determines whether the result is the latest result and therefore the same as the AnaylticalResult. If true, the result is the latest result.
pass Boolean
Determines whether the candidate passed the test. If true, the candidate passed the test.
adjustedGrade enumeration
The grade assigned to the historical result after a rescoring event.
changeDetails object
Contains the details of the latest rescoring change (if applicable).
changeDetails/type enumeration
The change type. This is always Rescore.
changeDetails/type/dateApplied string
The date the last rescoring session took place, in YYYY-MM-DDTHH:SS format.
changeDetails/user object
Contains the information for the user who rescored the result.
changeDetails/user/id integer
The user’s unique identifier.
changeDetails/user/reference string
The user’s unique reference code.
changeDetails/user/href string
The endpoint to call the user’s information, such as /api/v2/User/{id} where {id} is the user’s unique identifier.
changeDetails/rescoringRules object
Contains the information for the changes made to the result since the result was warehoused.
changeDetails/rescoringRules/id integer
The rescoring session’s unique identifier.
changeDetails/rescoringRules/href string
The endpoint to call the rescoring session’s information, such as /api/v2/RescoringRule/{id} where {id} is the rescoring session’s unique identifier.
scaleScoreMapping object
test object
Contains the test’s information.
test/reference string
The test’s unique reference code.
test/name string
The test’s name.
test/id integer
The test’s unique identifier.
test/href string
The endpoint to call the test’s information, such as /api/v2/Test/{id} where {id} is the test’s unique identifier.
testForm object
Contains the test form’s information.
testForm/reference string
The test form’s unique reference code.
testForm/name string
The test form’s name.
testForm/id integer
The test form’s unique identifier.
testForm/href string
The endpoint to call the test form’s information, such as /api/v2/TestForm/{id} where {id} is the test form’s unique identifier.
subject object
Contains the subject’s information.
subject/reference string
The subject’s unique reference code.
subject/name string
The subject’s name.
subject/id integer
The subject’s unique identifier.
subject/href string
The endpoint to call the subject’s information, such as /api/v2/Subject/{id} where {id} is the subject’s unique identifier.
externalReference string
An external reference used for cross-referencing between systems. This is defined when the test is scheduled using the TestSchedule API.
passMark integer
The test form’s pass mark.
passMarkType enumeration
Determines whether the test form grade boundary type is Percentage, Score, or Irt Theta.
percentageMark integer
The candidate’s total mark as a percentage.
passPercentage integer
The percentage required to achieve the lowest grade boundary and pass the test.
IRTScore integer
The candidate’s IRT score for the test. For more information on IRT grade boundaries, read Setting up grade boundaries and About IRT tags.
passIRTScore integer
The IRT score required to pass the test. For more information on IRT grade boundaries, read Setting up grade boundaries and About IRT tags.
keycode string
The candidate’s unique keycode, used to enter their test.
resultsReleased Boolean
Determines whether the candidate’s script was moderated and therefore released from the Moderate screen. If true, the candidate’s script was moderated.
resultsSampled Boolean
Determines whether the candidate’s script was moderated and released from the Moderate screen in a group of scripts. If true, the candidate’s script was moderated and released in a group of scripts.
scaleScore integer
durationMode enumeration
Determines the test form’s timing type. The available options are:
- Untimed – Candidates have unlimited time to complete and submit their responses.
- Timed – The whole test form has a specified time limit in which candidates must complete and submit their responses.
- Timed Sections – Each section in the test form has an individual time limit. Candidates can only work in one timed section at a time. If the candidate decides to leave the section, they cannot return and their remaining time in that section is lost. You can combine timed sections into pools to allow candidates to manage their time between them.
isManuallySubmittedInLocal Boolean
sections array
Contains the test form’s sections’ information (the candidate’s script).
sections/id integer
The section’s unique identifier.
sections/name string
The section’s name.
sections/mark integer
The candidate’s mark for the section.
sections/percentageMark integer
The candidate’s mark for the section as a percentage.
sections/availableMark integer
The total marks available for the section.
sections/pass Boolean
Determines whether the candidate passed the section. If true, the candidate passed the section.
sections/passMark integer
The section’s pass mark.
sections/passPercentage integer
The section’s pass mark as a percentage.
sections/passIRTScore integer
The IRT score required to pass the section.
sections/passMarkType enumeration
Determines whether the pass mark type for the section is Percentage or Score.
sections/viewingTime integer
The time the candidate spent on the section, in seconds.
sections/items array
Contains the information for the items in the section.
sections/items/name string
The item’s name.
sections/items/version integer
The item’s version number.
sections/items/mark integer
The number of marks assigned to the item.
sections/items/awardedMark integer
The mark achieved by the candidate for the item.
sections/items/viewingTime integer
The time the candidate spent on the item, in seconds.
sections/items/learningOutcome string
The Learning Outcome(s) assigned to the item. Multiple Learning Outcomes are separated by commas, unless the usePipeLoSeparator header parameter is passed in the request.
sections/items/markBreakdown array
Contains any Marked Learning Outcome’s information.
sections/items/markBreakdown/name string
The Marked Learning Outcome’s name.
sections/items/markBreakdown/mark string
The mark achieved by the candidate for the Marked Learning Outcome.
sections/items/markBreakdown/availableMarks string
The total marks available for the Marked Learning Outcome.
sections/items/unit string
The Unit tag value assigned to the item.
sections/items/surpassReference string
The item’s Surpass unique reference code (ID). A Surpass item ID is the item ID prefixed with the subject ID.
section/items/nonScored Boolean
Determines whether the item is a scored (false) or non-scored (true) item.
sections/items/type enumeration
Determines whether item is a Question or a Survey item.
sections/items/candidateResponse object
Contains the candidate’s response information.
sections/items/candidateResponse/Value string
The candidate’s response, in XML format. If the test form was in QualityReview state, this property contains any comments added by the test reviewer between the qualityreviewitemcomment and qualityreviewexamcomment nodes.
sections/items/itemResponse object
Contains the candidate’s item responses’ information.
sections/items/itemResponse/href string
The endpoint to call the item response’s information, such as /api/v2/HistoricalResult/{id}/ItemResponse/{id} where {id} is the result’s unique identifier and {id} is the item response’s unique identifier.
If opened in a browser, this URL returns the item response’s information in XML format.
sections/items/marker string
The marker’s uername.
sections/items/displayNumber integer
If the item is an item set, displays its numerical position in the test driver breadcrumb.
sections/items/markingType enumeration
Determines how the item was marked. The available options are:
- 0 – Item was computer-marked.
- 1 – Item was human-marked.
- 3 – Item was imported from an external system.
sections/items/itemSetId integer
If the item is an item set, displays the item set’s unique identifier.
sections/items/itemSetName string
If the item is an item set, displays the item set’s name.
sections/sectionSelectorId integer
If the section is a section selector section, displays the section selector’s unique identifier.
sections/selected Boolean
If the section is a section selector section, determines whether the candidate selected the section. If true, the candidate selected the section as part of the section selector.
sections/startTime string
The time at which the section was started, in HH:MM format.
sections/endTime string
The time at which the section was finished, in HH:MM format.
sections/isPoolTimeSection Boolean
Determines whether the section is in a pool of timed section. If true, the section is pooled.
sections/poolName string
If the section is in a pool of timed sections, displays the pool’s name.
sections/isSurveySection Boolean
Determines whether the section is an unmarked, survey section. If true, the section is a survey section.
sections/decisionPoint object
centre object
Contains the centre’s information.
centre/id integer
The centre’s unique identifier.
centre/reference string
The candidate’s unique reference code.
centre/href string
The endpoint to call the centre’s information, such as /api/v2/Centre/{id} where {id} is the centre’s unique identifier.
candidate object
Contains the candidate’s information.
candidate/id integer
The candidate’s unique identifier.
candidate/reference string
The candidate’s unique reference code.
candidate/href string
The endpoint to call the candidate’s information, such as /api/v2/Candidate/{id} where {id} is the candidate’s unique identifier.
mark integer
The total mark achieved by the candidate.
availableMarks integer
The total available marks.
grade string
The grade the candidate achieved.
startedDate string
The date and time the candidate started the test, in YYYY-MM-DDTHH:SS format.
submittedDate string
The date and time the candidate submitted the test, in YYYY-MM-DDTHH:SS format.
warehousedDate string
The date and time the test was warehoused, in YYYY-MM-DDTHH:SS format.
id integer
The result’s unique identifier.
reference string
The result’s unique reference code. This is the same as the candidate’s unique keycode used to enter the test.
href string
The endpoint to call the result’s information, such as /api/v2/HistoricalResult/{id} where {id} is the result’s unique identifier.
learningOutcomeThreshold integer
Determines the minimum number of marks that must be allocated to a Learning Outcome before it is affected by a Learning Outcome Boundary. If the threshold is met, and a Learning Outcome Boundary is set up at test form level, the candidate’s performance against a Learning Outcome will affect the final test result. This value is defined in Site Settings and is 0 by default.
For more information on grade boundaries, read ‘About Test Settings’ in About Site Settings options, and Setting up grade boundaries.
learningOutcomeBoundariesApplied Boolean
Determines whether Learning Outcome Boundaries have been applied (the learningOutcomeThreshold value has been exceeded). If true, Learning Outcome Boundaries have been applied.
For more information on grade boundaries, read Setting up grade boundaries.
learningOutcomes array
Contains the information of any Learning Outcomes included in Learning Outcome Boundaries assigned to items in the test. For more information on grade boundaries, read Setting up grade boundaries.
learningOutcomes/name string
The Learning Outcome’s name.
learningOutcomes/pass Boolean
Determines whether the candidate has passed the Learning Outcome. If true, the candidate passed the Learning Outcome.
learningOutcomes/mark integer
The mark the candidate achieved for the Learning Outcome.
learningOutcomes/totalMark integer
The total number of available marks for the Learning Outcome.
learningOutcomes/percentageMark integer
The mark the candidate achieved for the Learning Outcome in percentage format.
learningOutcomes/passPercentage integer
The pass percentage required to pass the Learning Outcome.
learningOutcomes/thresholdExceeded Boolean
Determines whether the Learning Outcome threshold (learningOutcomeThreshold) has been exceeded and therefore the Learning Outcome counts towards the final result. If true, the Learning Outcome threshold has been exceeded.
learningOutcomes/defaultPassMarkApplied Boolean
Determines whether the default pass mark for Learning Outcome Boundaries was applied. If false, a custom Learning Outcome Boundary pass mark was applied by the test creator.
learningOutcomeBoundaries array
Contains the information of any Learning Outcome Boundaries. A separate object is returned for each Learning Outcome Boundary. For more information on grade boundaries, read Setting up grade boundaries.
learningOutcomeBoundaries/isDefault Boolean
Determines whether the default pass mark for Learning Outcome Boundaries was applied. If false, a custom Learning Outcome Boundary pass mark was applied by the test creator.
learningOutcomeBoundaries/text string
The Learning Boundary’s name. This must match the Learning Outcome tag value for Learning Outcome Boundaries to work correctly.
learningOutcomeBoundaries/passPercentage integer
The pass percentage required to pass the Learning Outcome.
sectionSelectors array
Contains the information of any section selector sections. A separate object is returned for each section selector section.
sectionSelectors/id integer
The section selector section’s unique identifier.
sectionSelectors/name string
The section selector section’s name.
sectionSelectors/description string
The description displayed to the candidate for the section selector section.
sectionSelectors/duration integer
The time the candidate had to select a section, in minutes.
sectionSelectors/requiredSections integer
The number of sections the candidate must complete within the section selector section.
IRTDomain array
If the passMarkType is IRT Theta, contains the information of any IRT_Domain tags. For more information on IRT grade boundaries, read Setting up grade boundaries and About IRT tags.
IRTDomain/name string
The tag value’s name.
IRTDomain/IRTScore integer
The score achieved by the candidate.
IRTDomain/scaleScore integer
examWindowStartTime string
The test session’s Start Time, in HH:MM format.
allowedDuration integer
reasonableAdjustments object
Contains the information for any reasonable adjustments applied to the test session.
reasonableAdjustments/totalTimeAdded integer
The additional time awarded to the candidate.
reasonableAdjustments/reasonForAdjustment string
The reason provided for awarding additional time to the candidate.
re-mark Boolean
Determines whether test has been re-marked. If true, the test has been re-marked.
voidReason enumeration
The reason the test is being voided. The available options are NotYetStarted, Absent, Withdrawn, PartiallyCompleted, and Other.
actualDuration integer
cutScoreAvailableMarks integer
purchaseOrder string
The external invoice number stored against the test session, if stored during scheduling.
started Boolean
Determines whether the test was started. If true, the candidate started the test.
isReview Boolean
Determines whether the test is a quality review test (in QualityReview state). If true, the test is a quality review test.
errors string
Information about any errors that occurred during the request.
serverTimeZone enumeration
The timezone of the server sending the response.
Listing item responses
Send a request to the endpoint to retrieve a list of item responses for the specified result. 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 |
Basic {credentials} |
Basic authentication details must be passed to authorise the user’s request, where {credentials} is a Base64 encoded username:password string. |
accept |
header OPTIONAL |
application/json or application/xml |
Determines data format of the response, which can be either JSON or XML. |
id |
path OPTIONAL |
/api/v2/HistoricalResult/{id}/ItemResponse |
Returns item response information for the specified result, where {id} is the result’s unique identifier. |
top |
query OPTIONAL |
/api/v2/HistoricalResult/{id}/ItemResponse?$top={top} |
Defines number of responses to return when paging a response, where {id} is the result’s unique identifier (or candidate’s unique keycode) and {top} is a number between 1 and 40. |
skip |
query OPTIONAL |
/api/v2/HistoricalResult/{id}/ItemResponse?$skip={skip} |
Defines how many responses to skip when paging a response, where {id} is the result’s unique identifier (or candidate’s unique keycode) and {skip} is a number that should not exceed the total number of responses. |
Sample response
If successful, the HTTP status code will be 200 and the response body will contain the information in either JSON or XML format as requested.
{
"count": 13,
"top": 10,
"skip": 0,
"pageCount": 2,
"nextPageLink": "https://{your Surpass instance}.surpass.com:443/api/v2/HistoricalResult/H8JBWWX8/ItemResponse?$skip=10",
"prevPageLink": null,
"response": [
{
"id": 1,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"itemId": "5194P1"
},
{
"id": 2,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P2",
"itemId": "5194P2"
},
{
"id": 3,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P3",
"itemId": "5194P3"
},
{
"id": 4,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P4",
"itemId": "5194P4"
},
{
"id": 5,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P5",
"itemId": "5194P5"
},
{
"id": 6,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P6",
"itemId": "5194P6"
},
{
"id": 7,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P7",
"itemId": "5194P7"
},
{
"id": 8,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P8",
"itemId": "5194P8"
},
{
"id": 9,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P9",
"itemId": "5194P9"
},
{
"id": 10,
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P10",
"itemId": "5194P10"
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Response schema
The response schema contains a description of every property that can be returned for this endpoint.
count integer
Details how many responses there are in total.
top integer
Details number of responses returned in the response.
skip integer
Details how many responses were skipped to display those in the response.
pageCount integer
Details how many pages of responses there are.
nextPageLink string
The endpoint to call the next page of responses. If null, the response is the last page of responses.
prevPageLink string
The endpoint to call the previous page of responses. If null, the response is the first page of responses.
response array
Contains the rest of the response.
id integer
The result’s unique identifier.
href string
The endpoint to call the item response’s information, such as /api/v2/HistoricalResult/{id}/ItemResponse/{id} where {id} is the result’s unique identifier and {id} is the item response’s unique identifier.
If opened in a browser, this URL returns the item response’s information in XML format.
itemId string
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
errors string
Information about any errors that occurred during the request.
serverTimeZone enumeration
The timezone of the server sending the response.
Retrieving item responses
Send a request to the endpoint to retrieve information for the specified item response. 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 |
Basic {credentials} |
Basic authentication details must be passed to authorise the user’s request, where {credentials} is a Base64 encoded username:password string. |
accept |
header OPTIONAL |
application/json or application/xml |
Determines data format of the response, which can be either JSON or XML. |
id |
path OPTIONAL |
/api/v2/HistoricalResult/{id}/ItemResponse/{id} |
Returns item response information for the specified result, where {id} is the result’s unique identifier (or candidate’s unique keycode) and {id} is the response’s unique identifier. |
surpassReference |
path OPTIONAL |
/api/v2/HistoricalResult/{id}/ItemResponse/{surpassReference} |
Returns item response information for the specified result, where {id} is the result’s unique identifier (or candidate’s unique keycode) and {surpassReference} is the response’s unique reference code (the item’s unique identifier). |
Sample responses
If successful, the HTTP status code will be 200 and the response body will contain the information in either JSON or XML format as requested.
The following responses contain an example response for each item type.
Multiple Choice questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [
{
"optionList": [
{
"id": 1,
"correct": true,
"selected": true,
"label": "A",
"weightedMark": null,
"requiresExtraInfo": false,
"extraInfo": "",
"extraInfoLabel": ""
},
{
"id": 2,
"correct": false,
"selected": false,
"label": "B",
"weightedMark": null,
"requiresExtraInfo": false,
"extraInfo": "",
"extraInfoLabel": ""
},
{
"id": 3,
"correct": false,
"selected": false,
"label": "C",
"weightedMark": null,
"requiresExtraInfo": false,
"extraInfo": "",
"extraInfoLabel": ""
}
],
"userMark": 1.000,
"type": "Question",
"markType": "Standard",
"awardedMark": 1.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true
}
],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Multiple Response questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [
{
"combinations": [],
"partialMarks": true,
"maxSelections": 2,
"optionList": [
{
"id": 1,
"correct": true,
"selected": true,
"htmlText": "<p>Maastricht</p>",
"label": "A",
"weightedMark": null,
"requiresExtraInfo": false,
"extraInfo": "",
"extraInfoLabel": "",
"exclusiveOption": false
},
{
"id": 2,
"correct": false,
"selected": false,
"htmlText": "<p>Ghent</p>",
"label": "B",
"weightedMark": null,
"requiresExtraInfo": false,
"extraInfo": "",
"extraInfoLabel": "",
"exclusiveOption": false
},
{
"id": 3,
"correct": true,
"selected": true,
"htmlText": "<p>Utrecht</p>",
"label": "C",
"weightedMark": null,
"requiresExtraInfo": false,
"extraInfo": "",
"extraInfoLabel": "",
"exclusiveOption": false
}
],
"userMark": 0.250,
"type": "Question",
"markType": "Standard",
"awardedMark": 1.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true
}
],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Essay questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [
{
"userMark": 0.800,
"type": "None",
"awardedMark": 1.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true,
"candidateResponse": {
"response": "<p>The key differences between Aldous Huxley's 'Brave New World' and George Orwell's '1984' are...</p>"
}
}
],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Short Answer questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [
{
"userMark": 1.000,
"type": "Question",
"awardedMark": 1.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true,
"candidateResponse": [
{
"response": "London",
"answers": [
"London",
"Londres",
"Landan"
]
},
{
"response": "Belfast",
"answers": [
"Belfast",
"Belphast",
"Bellfast"
]
}
]
}
],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Either/Or questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [
{
"userMark": 1.000,
"type": "Question",
"optionList": [
{
"id": 1,
"correct": true,
"selected": true,
"htmlText": "<p>True</p>",
"label": "A"
},
{
"id": 2,
"correct": false,
"selected": false,
"label": "B"
}
],
"awardedMark": 1.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true
}
],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Numerical Entry questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [
{
"type": "Question",
"awardedMark": 0.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true,
"candidateResponse": [
{
"response": 5.0,
"answers": [
0.0
]
},
{
"response": 21.0,
"answers": [
0.0
]
}
]
},
{
"type": "Question",
"awardedMark": 0.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": false
},
{
"type": "Question",
"awardedMark": 0.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": false
}
],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Audio Capture questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [
{
"response": "",
"type": "Question",
"awardedMark": 0.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": false
}
],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Likert questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [
{
"type": "Survey",
"awardedMark": 0.0,
"id": "5194P1",
"attempted": true,
"options": [
{
"id": 1,
"htmlText": "<p>Not satisfied</p>"
},
{
"id": 2,
"htmlText": "<p>Satisfied</p>"
},
{
"id": 3,
"htmlText": "<p>Very satisfied</p>"
}
],
"statements": [
{
"id": 1,
"htmlText": "<p>Materials</p>"
},
{
"id": 2,
"htmlText": "<p>Teaching</p>"
},
{
"id": 3,
"htmlText": "<p>Assessment</p>"
}
],
"selections": [
{
"optionId": 1,
"statementId": 2
},
{
"optionId": 2,
"statementId": 2
},
{
"optionId": 3,
"statementId": 1
}
]
}
],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Extended Matching questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [
{
"type": "Question",
"awardedMark": 0.0,
"id": "5194P1",
"attempted": true,
"linkingType": "OneToOne",
"leftBoxes": [
{
"Id": 1,
"Text": "One Flew Over the Cuckoo's Nest"
},
{
"Id": 2,
"Text": "Gone Girl"
},
{
"Id": 3,
"Text": "The Handmaid's Tale"
}
],
"rightBoxes": [
{
"Id": 1,
"Text": "Margaret Atwood"
},
{
"Id": 2,
"Text": "Ken Kesey"
},
{
"Id": 3,
"Text": "Gillian Flynn"
}
],
"correctLinks": [
{
"LeftOption": 1,
"RightOption": 2
},
{
"LeftOption": 2,
"RightOption": 3
},
{
"LeftOption": 3,
"RightOption": 1
}
],
"candidateResponse": [
{
"LeftOption": 2,
"RightOption": 2
},
{
"LeftOption": 1,
"RightOption": 3
},
{
"LeftOption": 3,
"RightOption": 1
}
]
}
],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Select From a List questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": [
{
"type": "Question",
"optionLists": [
{
"options": [
{
"id": 1,
"text": "Manchester",
"correct": false,
"selected": true
},
{
"id": 2,
"text": "London",
"correct": true,
"selected": false
}
],
"userMark": 0.0,
"id": "1",
"attempted": true
}
],
"awardedMark": 0.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true
}
]
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
File Attach questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [
{
"files": [
{
"fileName": "Geography Question Response.txt",
"content": "QEBA"
}
],
"userMark": 0.300,
"type": "Question",
"awardedMark": 1.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true
}
],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Drag and Drop questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [
{
"userMark": 1.000,
"type": "Question",
"awardedMark": 3.0,
"id": "5194P68043",
"weighting": 1.0,
"attempted": true,
"marking": "PartialMark",
"weightedMarking": false,
"dropZones": [
{
"id": "1",
"title": "Brazil",
"maxOptions": 1,
"correctDragOptions": [
{
"id": "1",
"value": null,
"mark": null,
"mediaId": 1,
"mediaName": "Brazil Flag"
}
],
"candidateResponse": [
{
"id": "1",
"mediaId": 1,
"mediaName": "Brazil Flag",
"awardedMark": null,
"isCorrect": true
}
]
},
{
"id": "2",
"title": "France",
"maxOptions": 1,
"correctDragOptions": [
{
"id": "2",
"value": null,
"mark": null,
"mediaId": 2,
"mediaName": "France Flag"
}
],
"candidateResponse": [
{
"id": "2",
"mediaId": 2,
"mediaName": "France Flag",
"awardedMark": null,
"isCorrect": true
}
]
},
{
"id": "3",
"title": "South Africa",
"maxOptions": 1,
"correctDragOptions": [
{
"id": "3",
"value": null,
"mark": null,
"mediaId": 3,
"mediaName": "South Africa Flag"
}
],
"candidateResponse": [
{
"id": "3",
"mediaId": 3,
"mediaName": "South Africa Flag",
"awardedMark": null,
"isCorrect": true
}
]
}
],
"unassignedDragOptions": []
}
],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Hotspot questions
{
"count": null,
"top": null,
"skip": null,
"pageCount": null,
"nextPageLink": null,
"prevPageLink": null,
"response": [
{
"multipleChoiceQuestions": [],
"href": "https://{your Surpass instance}.surpass.com/api/v2/HistoricalResult/1/ItemResponse/5194P1",
"multipleResponseQuestions": [],
"eitherOrQuestions": [],
"unsupportedQuestionTypes": [],
"voiceCaptureQuestions": [],
"fileAttachQuestions": [],
"likertQuestions": [],
"dragAndDropQuestions": [],
"numericalEntryQuestions": [],
"shortAnswerQuestions": [],
"extendedMatchingQuestions": [],
"hotSpotQuestions": [
{
"type": "Question",
"awardedMark": 0.0,
"id": "5194P1",
"weighting": 1.0,
"attempted": true,
"areaType": "polygon",
"candidateResponse": {
"co-ordinates": "536, 136"
}
}
],
"essayQuestions": [],
"selectFromAListQuestions": []
}
],
"errors": null,
"serverTimeZone": "GMT Standard Time"
}
Response schema
The response schema contains a description of every property that can be returned for this endpoint.
count integer
Details how many responses there are in total. This is null because the information retrieved is for a specific response.
top integer
Details number of responses returned in the response. This is null because the information retrieved is for a specific response.
skip integer
Details how many responses were skipped to display those in the response. This is null because the information retrieved is for a specific response.
pageCount integer
Details how many pages of responses there are. This is null because the information retrieved is for a specific response.
nextPageLink string
The endpoint to call the next page of responses. This is null because the information retrieved is for a specific response.
prevPageLink string
The endpoint to call the previous page of responses. This is null because the information retrieved is for a specific response.
response array
Contains the rest of the response.
multipleChoiceQuestions array
Contains information relating to the Multiple Choice question type.
A Multiple Choice question offers candidates a set of possible answers to a problem. One of these answers is the correct answer and the others are plausible but incorrect answers (also known as “distractors”). Candidates can select one answer option as their response.
If null, the item is not a Multiple Choice question.
multipleChoiceQuestions/optionList array
Contains the answer options’ information. A separate object is returned for each answer option.
multipleChoiceQuestions/optionList/id integer
The answer option’s unique identifier.
multipleChoiceQuestions/optionList/correct Boolean
Determines whether the answer option is the correct answer if the Marking type is set to Standard. If true, the answer option is the correct answer.
multipleChoiceQuestions/optionList/selected Boolean
Determines whether the answer option was selected by the candidate. If true, the candidate selected the answer option.
multipleChoiceQuestions/optionList/label string
The label text for the answer option if Add Labels for Candidate Delivery has been enabled.
multipleChoiceQuestions/optionList/weightedMark integer
The mark assigned to the answer option if the Marking type is set to Weighted.
multipleChoiceQuestions/optionList/requiresExtraInfo Boolean
If the item is a Multiple Choice survey item, determines whether the candidate is required to provide more information if selecting this answer option. If true, the candidate was required to provide more information.
multipleChoiceQuestions/optionList/extraInfo string
Extra information provided by the candidate if the item is a Multiple Choice survey item and the candidate was required to provide more information.
multipleChoiceQuestions/optionList/extraInfoLabel string
The text displayed to the candidate to indicate they needed to provide more information if the item is a Multiple Choice survey item and the candidate was required to provide more information.
multipleChoiceQuestions/userMark integer
The mark awarded for the item between 0-1.
multipleChoiceQuestions/type enumeration
Determines whether item is a Question or a Survey item.
multipleChoiceQuestions/markType enumeration
Determines whether the Marking type for the question is Standard or Weighted.
multipleChoiceQuestions/awardedMark integer
The mark achieved by the candidate for the item.
multipleChoiceQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
multipleChoiceQuestions/weighting integer
The weighting applied to the item.
multipleChoiceQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
href string
The endpoint to call the item response’s information, such as /api/v2/HistoricalResult/{id}/ItemResponse/{id} where {id} is the result’s unique identifier and {id} is the item response’s unique identifier.
If opened in a browser, this URL returns the item response’s information in XML format.
multipleResponseQuestions array
Contains information relating to the Multiple Response question type.
A Multiple Response question offers candidates a set of possible answers to a question. The options contain correct answers and plausible but incorrect answers (also known as distractors). Candidates can select multiple answer options as their response.
If null, the item is not a Multiple Response question.
multipleResponseQuestions/combinations array
Contains the answer option combinations’ information if the Marking type is set to Combination.
multipleResponseQuestions/combinations/mark integer
The number of marks for the answer option combination.
multipleResponseQuestions/combinations/selected Boolean
Determines whether the answer option combination was selected by the candidate. If true, the candidate selected the answer option combination.
multipleResponseQuestions/combinations/Options array
Contains the information for the individual answer options that make up the answer option combination.
multipleResponseQuestions/combinations/Options/Id integer
The answer options’ unique identifiers.
multipleResponseQuestions/partialMarks Boolean
Determines whether the Only award mark if candidate selects all correct options setting is enabled (false) or not (true).
multipleResponseQuestions/maxSelections integer
The maximum number of answer options the candidate can select. This is determined by the Maximum number of candidate selections setting, the options for which are Equal to correct options, No Limit, or Custom.
multipleResponseQuestions/optionList array
Contains the answer options’ information. A separate object is returned for each answer option.
multipleResponseQuestions/optionList/id string
The answer option’s unique identifier.
multipleResponseQuestions/optionList/correct Boolean
Determines whether the answer option is the correct answer if the Marking type is set to Standard. If true, the answer option is the correct answer.
multipleResponseQuestions/optionList/selected Boolean
Determines whether the answer option was selected by the candidate. If true, the candidate selected the answer option.
multipleResponseQuestions/optionList/htmlText string
The answer option text, in HTML format.
multipleResponseQuestions/optionList/label string
The label text for the answer option if Add Labels for Candidate Delivery has been enabled.
multipleResponseQuestions/optionList/weightedMark integer
The mark assigned to the answer option if the Marking type is set to Weighted.
multipleResponseQuestions/optionList/requiresExtraInfo Boolean
If the item is a Multiple Response survey item, determines whether the candidate is required to provide more information if selecting this answer option. If true, the candidate was required to provide more information.
multipleResponseQuestions/optionList/extraInfo string
Extra information provided by the candidate if the item is a Multiple Response survey item and the candidate was required to provide more information.
multipleResponseQuestions/optionList/extraInfoLabel string
The text displayed to the candidate to indicate they needed to provide more information if the item is a Multiple Response survey item and the candidate was required to provide more information.
multipleResponseQuestions/optionList/exclusiveOption Boolean
Determines whether the answer option is set to be an Exclusive Option, meaning it cannot be selected in conjunction with other answer options. If true, the answer option is exclusive.
multipleResponseQuestions/userMark integer
The mark awarded for the item between 0-1.
multipleResponseQuestions/type enumeration
Determines whether item is a Question or a Survey item.
multipleResponseQuestions/markType enumeration
Determines whether the Marking type for the question is Standard or Weighted.
multipleResponseQuestions/awardedMark integer
The mark achieved by the candidate for the item.
multipleResponseQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
multipleResponseQuestions/weighting integer
The weighting applied to the item.
multipleResponseQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
eitherOrQuestions array
Contains information relating to the Either/Or question type.
An Either/Or question offers candidates two possible answers to a problem: one of these is the correct answer and the other is a plausible but incorrect answer (also known as a distractor). Candidates can select one answer option as their response.
If null, the item is not an Either/Or question.
eitherOrQuestions/userMark integer
The mark awarded for the item between 0-1.
eitherOrQuestions/type enumeration
Determines whether item is a Question or a Survey item. Either/Or questions cannot be survey items.
eitherOrQuestions/optionList array
Contains the answer options’ information. A separate object is returned for each answer option.
eitherOrQuestions/optionList/id string
The answer option’s unique identifier.
eitherOrQuestions/optionList/correct Boolean
Determines whether the answer option is the correct answer if the Marking type is set to Standard. If true, the answer option is the correct answer.
eitherOrQuestions/optionList/selected Boolean
Determines whether the answer option was selected by the candidate. If true, the candidate selected the answer option.
eitherOrQuestions/optionList/htmlText string
The answer option text, in HTML format.
eitherOrQuestions/optionList/label string
The label text for the answer option if Add Labels for Candidate Delivery has been enabled.
eitherOrQuestions/awardedMark integer
The mark achieved by the candidate for the item.
eitherOrQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
eitherOrQuestions/weighting integer
The weighting applied to the item.
eitherOrQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
unsupportedQuestionTypes array
Contains information relating to any unsupported item types.
If null, the item is a supported item type.
unsupportedQuestionTypes/userMark integer
The mark awarded for the item between 0-1.
unsupportedQuestionTypes/type enumeration
Determines whether item is a Question or a Survey item.
unsupportedQuestionTypes/awardedMark integer
The mark achieved by the candidate for the item.
unsupportedQuestionTypes/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
unsupportedQuestionTypes/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
voiceCaptureQuestions array
Contains information relating to the Audio Capture question type.
An Audio Capture question allows candidates to record a verbal response to a prompt.
If null, the item is not an Audio Capture question.
voiceCaptureQuestions/response string
The audio file data in encoded Base64 format.
voiceCaptureQuestions/fileType string
The audio file’s filetype.
voiceCaptureQuestions/userMark integer
The mark awarded for the item between 0-1.
voiceCaptureQuestions/type enumeration
Determines whether item is a Question or a Survey item. Audio Capture questions cannot be survey items.
voiceCaptureQuestions/awardedMark integer
The mark achieved by the candidate for the item.
voiceCaptureQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
voiceCaptureQuestions/weighting integer
The weighting applied to the item.
voiceCaptureQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
fileAttachQuestions array
Contains information relating to the File Attach question type.
A File Attach question allows candidates to work in an external app (like a word processor or spreadsheet editor) and upload a file as their response. Candidates can be provided a template file to complete, let candidates work from a blank file, or ask candidates to provide their own files.
If null, the item is not a File Attach question.
fileAttachQuestions/files array
Contains the information for any files uploaded by the candidate.
fileAttachQuestions/files/fileName string
The file name.
fileAttachQuestions/files/content string
The file data in encoded Base64 format.
fileAttachQuestions/userMark integer
The mark awarded for the item between 0-1.
fileAttachQuestions/type enumeration
Determines whether item is a Question or a Survey item. File Attach questions cannot be survey items.
fileAttachQuestions/awardedMark integer
The mark achieved by the candidate for the item.
fileAttachQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
fileAttachQuestions/weighting integer
The weighting applied to the item.
fileAttachQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
likertQuestions array
Contains information relating to the Likert survey question type.
A Likert survey item is a non-scored question type that lets candidates respond to a statement along a scale (for example, “1, 2, 3, 4, 5” or “Poor, Fair, Average, Good, Great”). Likert scales are used to measure candidates’ opinions on a given topic.
If null, the item is not a File Attach question.
likertQuestions/type enumeration
Determines whether item is a Question or a Survey item.
likertQuestions/awardedMark integer
The mark achieved by the candidate for the item.
likertQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
likertQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
likertQuestions/options array
Contains the answer options’ information. A separate object is returned for each answer option.
likertQuestions/options/id string
The answer option’s unique identifier.
likertQuestions/options/htmlText string
The answer option text, in HTML format.
likertQuestions/statements array
Contains the statement’s information if the likertQuestions/isMatrixMode is set to true.
likertQuestions/statements/id integer
The statement’s unique identifier.
likertQuestions/statements/text string
The statement’s text, in HTML format.
likertQuestions/selections array
Contains the combination of answer option and statement the candidate selected if the likertQuestions/isMatrixMode is set to true.
likertQuestions/selections/optionId integer
The answer option’s unique identifier.
likertQuestions/selections/statementId integer
The statement’s unique identifier.
dragAndDropQuestions array
Contains information relating to the Drag and Drop question type.
A Drag and Drop question consists of text-based “drag options” that candidates must place in the appropriate “drop zones”. The available drag options might include distractors that are not associated with any drop zone.
If null, the item is not a Drag and Drop question.
dragAndDropQuestions/userMark integer
The mark awarded for the item between 0-1.
dragAndDropQuestions/type enumeration
Determines whether item is a Question or a Survey item. Drag and Drop questions cannot be survey items.
dragAndDropQuestions/awardedMark integer
The mark achieved by the candidate for the item.
dragAndDropQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
dragAndDropQuestions/weighting integer
The weighting applied to the item.
dragAndDropQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
dragAndDropQuestions/marking enumeration
Determines whether the Only award mark if candidate selects all correct options setting is enabled. If PartialMark, this setting is disabled.
dragAndDropQuestions/weightedMarking Boolean
Determines whether the Marking type is set to Standard (false) or Weighted marking (true).
dragAndDropQuestions/dropZones array
Contains the drop zones’ information.
dragAndDropQuestions/dropZones/id integer
The drop zone’s unique identifier.
dragAndDropQuestions/dropZones/title string
The drop zone’s title.
dragAndDropQuestions/dropZones/maxOptions integer
The maximum number of drag options for the drop zone.
dragAndDropQuestions/dropZones/correctDragOptions array
Contains the correct drag options’ information. A separate object is returned for each drag option.
dragAndDropQuestions/dropZones/correctDragOptions/id integer
The drag option’s unique identifier.
dragAndDropQuestions/dropZones/correctDragOptions/value integer
The drag option’s text, in HTML format. If null, the item is an Advanced Drag and Drop question.
dragAndDropQuestions/dropZones/correctDragOptions/mark integer
The mark available for the drag option.
dragAndDropQuestions/dropZones/correctDragOptions/mediaId integer
The media’s unique identifier.
dragAndDropQuestions/dropZones/correctDragOptions/mediaName string
The media’s name.
dragAndDropQuestions/dropZones/candidateResponse array
Contains the candidate’s response (the drag option(s) placed in the drop zone). A separate object is returned for each response.
dragAndDropQuestions/dropZones/candidateResponse/id integer
The drag option’s unique identifier.
dragAndDropQuestions/dropZones/candidateResponse/mediaId integer
The media’s unique identifier.
dragAndDropQuestions/dropZones/candidateResponse/mediaName string
The media’s name.
dragAndDropQuestions/dropZones/candidateResponse/awardedMark integer
The mark awarded to the candidate.
dragAndDropQuestions/dropZones/candidateResponse/isCorrect Boolean
Determines whether the candidate placed the correct drag option in the drop zone. If true, the candidate answered correctly.
numericalEntryQuestions array
Contains information relating to the Numerical Entry question type.
An Either/Or question offers candidates two possible answers to a problem: one of these is the correct answer and the other is a A Numerical Entry question requires candidates to submit a number in response to a prompt.
If null, the item is not a Numerical Entry question.
numericalEntryQuestions/type enumeration
Determines whether item is a Question or a Survey item. Numerical Entry questions cannot be survey items.
numericalEntryQuestions/awardedMark integer
The mark achieved by the candidate for the item.
numericalEntryQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
numericalEntryQuestions/weighting integer
The weighting applied to the item.
numericalEntryQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
numericalEntryQuestions/candidateResponse array
Contains the candidate’s response. A separate object is returned for each response.
numericalEntryQuestions/candidateResponse/response integer
The candidate’s response.
numericalEntryQuestions/candidateResponse/answers array
The question’s correct answers.
numericalEntryQuestions/candidateResponse/answerRange object
If the question is set to Range, contains the information for the range of values.
numericalEntryQuestions/candidateResponse/answerRange/minValue integer
The range’s Min Value.
numericalEntryQuestions/candidateResponse/answerRange/maxValue integer
The range’s Max Value.
shortAnswerQuestions array
Contains information relating to the Short Answer question type.
A Short Answer question requires candidates to submit a word in response to a prompt.
If null, the item is not a Short Answer question.
shortAnswerQuestions/userMark integer
The mark awarded for the item between 0-1.
shortAnswerQuestions/type enumeration
Determines whether item is a Question or a Survey item. Short Answer questions cannot be survey items.
shortAnswerQuestions/awardedMark integer
The mark achieved by the candidate for the item.
shortAnswerQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
shortAnswerQuestions/weighting integer
The weighting applied to the item.
shortAnswerQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
shortAnswerQuestions/candidateResponse array
Contains the candidate’s response. A separate object is returned for each response.
shortAnswerQuestions/candidateResponse/response integer
The candidate’s response.
shortAnswerQuestions/candidateResponse/answers array
The question’s correct answers.
extendedMatchingQuestions array
Contains information relating to the Extended Matching question type.
An Extended Matching question asks candidates to draw links between two lists of content. Candidates may be able to draw one or many links from and to each answer option. Candidates can delete links by right-clicking on links in legacy tests and selecting Remove in standard tests.
If null, the item is not an Extended Matching question.
extendedMatchingQuestions/type enumeration
Determines whether item is a Question or a Survey item. Extended Matching questions cannot be survey items.
extendedMatchingQuestions/awardedMark integer
The mark achieved by the candidate for the item.
extendedMatchingQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
extendedMatchingQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
extendedMatchingQuestions/linkingType enumeration
Determines what linking type is being used: OneToOne, OneToMany, ManyToOne, or ManyToMany.
extendedMatchingQuestions/leftBoxes array
Contains all the answer options on the left’s information.
extendedMatchingQuestions/leftBoxes/id integer
The answer option’s unique identifier.
extendedMatchingQuestions/leftBoxes/text string
The answer option’s text. If null, the item is in an HTML subject and the answer option is an image.
extendedMatchingQuestions/rightBoxes array
Contains all the answer options on the right’s information.
extendedMatchingQuestions/rightBoxes/id integer
The answer option’s unique reference code.
extendedMatchingQuestions/rightBoxes/text string
The answer option’s text. If null, the item is in an HTML subject and the answer option is an image.
extendedMatchingQuestions/correctLinks array
Contains all the matching answer option combinations’ information.
extendedMatchingQuestions/correctLinks/LeftOption integer
The left answer option’s unique identifier.
extendedMatchingQuestions/correctLinks/RightOption integer
The right answer option’s unique identifier.
extendedMatchingQuestions/candidateResponse array
Contains the candidate’s response. A separate object is returned for each response.
extendedMatchingQuestions/candidateResponse/LeftOption integer
The unique identifier for the left answer option selected by the candidate.
extendedMatchingQuestions/candidateResponse/RightOption integer
The unique identifier for the right answer option selected by thecandidate.
hotSpotQuestions array
Contains information relating to the Hotspot question type.
A Hotspot question asks candidates to find and select a specific part of an image. The correct area can be either rectangular or polygonal.
If null, the item is not a Hotspot question.
hotSpotQuestions/type enumeration
Determines whether item is a Question or a Survey item. Hotspot questions cannot be survey items.
hotSpotQuestions/awardedMark integer
The mark achieved by the candidate for the item.
hotSpotQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
hotSpotQuestions/weighting integer
The weighting applied to the item.
hotSpotQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
hotSpotQuestions/areaType enumeration
The Hotspot answer area type. This is either rectangle or polygon.
hotSpotQuestions/candidateResponse object
Contains the candidate’s response.
hotSpotQuestions/candidateResponse/co-ordinates string
The co-ordinates (in PX) of the point on the image selected by the candidate.
essayQuestions array
Contains information relating to the Essay question type.
An Essay question asks candidates to provide an extended written response to a prompt.
If null, the item is not an Essay question.
essayQuestions/userMark integer
The mark awarded for the item between 0-1.
essayQuestions/type enumeration
Determines whether item is a Question or a Survey item.
essayQuestions/awardedMark integer
The mark achieved by the candidate for the item.
essayQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
essayQuestions/weighting integer
The weighting applied to the item.
essayQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
essayQuestions/candidateResponse array
Contains the candidate’s response.
essayQuestions/candidateResponse/response string
The candidate’s response in JSON format.
selectFromAListQuestions array
Contains information relating to the Select From a List question type.
A Select From a List question presents candidates with a string of text with certain words replaced by drop-down lists containing possible answers. At least one of these list items is the correct answer. The other list items are plausible but incorrect answers (also known as distractors).
If null, the item is not a Select From a List question.
selectFromAListQuestions/type enumeration
Determines whether item is a Question or a Survey item. Select From a List questions cannot be survey items.
selectFromAListQuestions/optionLists array
Contains the placeholders’ information.
selectFromAListQuestions/optionLists/options array
Contains the placeholder options’ information.
selectFromAListQuestions/optionLists/options/id integer
The placeholder option’s unique identifier.
selectFromAListQuestions/optionLists/options/text string
The placeholder option’s text.
selectFromAListQuestions/optionLists/options/correct Boolean
Determines whether the placeholder option is the correct answer option. If true, the placeholder option is the correct answer option.
selectFromAListQuestions/optionLists/options/selected Boolean
Determines whether the placeholder option was selected by the candidate. If true, the candidate selected the placeholder option.
selectFromAListQuestions/optionLists/userMark integer
The mark awarded for the placeholder between 0-1.
selectFromAListQuestions/optionLists/id integer
The placeholder’s unique identifier.
selectFromAListQuestions/optionList/attempted Boolean
Determines whether the candidate selected an option for the placeholder. If true, the candidate selected an option for the placeholder.
selectFromAListQuestions/awardedMark integer
The mark achieved by the candidate for the item.
selectFromAListQuestions/id integer
The item’s Surpass unique identifier (ID). A Surpass item ID is the item ID prefixed with the subject ID.
selectFromAListQuestions/weighting integer
The weighting applied to the item.
selectFromAListQuestions/attempted Boolean
Determines whether the item was attempted by the candidate. If true, the candidate attempted the item.
errors string
Information about any errors that occurred during the request.
serverTimeZone enumeration
The timezone of the server sending the response.
Error Codes
Refer to the following table for information on error codes that may be encountered when using this resource.
Name |
Code |
Description |
---|---|---|
InternalServer |
1 |
Internal server error. |
Unauthorized |
3 |
The request has been sent by an unauthorised user. |
IncorrectFieldFormat |
4 |
A field in the request has not been completed in the correct format. |
InaccessibleOperation |
5 |
The request has been sent by a user with invalid permissions. |
InaccessibleData |
6 |
The request has been sent by a user with invalid permissions. |
MissingBody |
7 |
There is an issue with the request body. |
InvalidReference |
11 |
The unique reference code used in the request is invalid. |
InvalidInputParameters |
15 |
There is an issue with the path or query parameters. |
InvalidId |
16 |
The ID number used in the request is invalid. |
InvalidODataOperation |
19 |
There is an issue with the query parameters. |
BadRequest |
20 |
There is an issue with the /api/v2/HistoricalResult?$skip={skip} query parameter, where {skip} is a number that should not exceed the total number of responses. |
HistoricalResultDoesNotExist |
142 |
The result specified in the request does not exist. |
Further reading
Read the following articles to learn more about similar APIs, how to get started with the Surpass API v2, and how to get the best out of this reference documentation: