Integrations REST API Reference

Test Sessions & Results

Read test sessions and their results through the REST API — the richest resource in the API, with score breakdowns by section, dimension, and effect, plus proctoring evidence and answer sub-resources.

Published 2026/08/26

Test sessions (called “test instances” internally) are always scoped to one Task — every endpoint below is under /tasks/:taskId/test-instances. Reading requires List tickets; the result fields specifically also require Query test results.

Basic vs. Detailed

  • basictestInstanceId, taskId, stepId, ticketId, status ("STARTED"|"COMPLETE"|"RESETUP"), ignored, result. result is false until complete, then { completedAt, scoreboard: { pointsAchieved, maxAchievablePoints, achievementRatio } }.
  • detailed — adds organizationId, candidate: { id, kind }, folder, group, labels, tags, and expands result with noOfQuestions, sections[], dimensions[] (each with subDimensions[]), and effects[] (each with subEffects[]).

List, Fetch

  • GET /tasks/:taskId/test-instances — query params: mode, limit, page, candidateId, externalId. candidateId and externalId are mutually exclusive — passing both returns an error.
  • GET /tasks/:taskId/test-instances/:id — query param: mode.

Search — Cursor Pagination

POST /tasks/:taskId/test-instances/filter — query params: mode, limit, lastDocId. Unlike every other Search endpoint, this one paginates by cursor, not by page number: pass the previous response's lastDocId to get the next batch. The response is { testInstances: [...], pagination: { limit, lastDocId, next } }, where next is a ready-to-use query string.

The filter body is one of two kinds:

  • { kind: "meta", group?, label?, stepId?, status?, from?, to? } — general filters, AND-combined.
  • { kind: "info", displayName?, email?, credential1?, code?, uniqId? } — pinpoint search by candidate info.

Expand

POST /tasks/:taskId/test-instances/:id/expand — body: { expand: ["test", "uniqId", "creditCost", "roomForm", "identityPhoto"] }. Returns the detailed test instance plus whichever of:

  • test{ source, testId, organizationId }, where source tells you if it's your own test, from the marketplace, or from the talent library.
  • uniqId — the candidate's external tracking ID.
  • creditCost — credits this session consumed.
  • roomForm — the candidate's answers to the pre-assessment access form, if one was collected.
  • identityPhoto{ url }, the candidate's webcam identity capture, if identity verification was on.
* * *

Sub-Resources

  • Proctoring Evidences — photos, videos, and screen captures recorded during the session.
  • Answers — every question and the candidate's response to it.

Fetch the photos, videos, and screen captures recorded during a test session, along with any AI or manual cheating-detection findings attached to each one.

Fetch every question a candidate saw in a test session and exactly what they answered — this endpoint is in beta.