Skip to main content
A record is a single instance of a psychological test assigned to a participant. Braintest supports validated instruments such as MCMI, NEO, DASS-21, and PHQ-9. Each record has a unique token, a lifecycle status, and an authentication requirement that tells your integration what step to perform next.

Record lifecycle

A record moves through the following states from creation to completion:
  1. VIP wait (status: 0): The record exists but is not yet available. The organizer must complete a VIP or billing action before the record becomes active.
  2. Ready (status: 2, auth_required: true): The record is active and waiting for participant authentication. This is the state you look for when listing records.
  3. Authenticated (status: 2, auth_required: false): The participant profile is linked. The record is ready for questions to be fetched and answers submitted. When the organizer has tests_auth_required: true (default), this state is reached only after a two-step SMS flow (POST /record/{token}/auth/ then PUT /record/{token}/auth/verify/).
  4. Finished (status: 1, is_finished: true): Answers have been submitted and scored. Results are available via the result endpoints.

Status codes

Standalone vs roadmap records

Records can exist in two contexts:
  • Standalone records: Created directly for a single test. Authenticate them with POST /record/{token}/auth/. The role field is null.
  • Roadmap records: Belong to a cognitive roadmap. Authenticate them through POST /roadmap/{token}/auth/ instead. Calling /record/{token}/auth/ on a roadmap record returns 409. The role field contains the role ID from the roadmap definition.
Always check whether a record belongs to a roadmap before choosing the authentication endpoint. Roadmap records have a non-null role field.

Key fields

The record detail response (GET /record/{token}/) also includes a nested test object with the test’s id, title, questions_count, doing_time_minutes, min_age, max_age, gender_permission, and categories.

Integration checklist for records

When listing records, filter for status: 2 and auth_required: true to find tests that are ready for a new participant. After authentication, the record remains status: 2 but auth_required becomes false, signaling that you can proceed to fetch questions and submit answers.