questions[] array (when the test has a JSON definition) or a rendered HTML form (when the test uses an HTML template).
Endpoint
Headers
Path parameters
string
required
The UUID token of the test record.
Prerequisites
- Profile authenticated (
auth_requiredisfalseon the record). - If the organizer has
tests_auth_required: true, completePOST /record/{token}/auth/followed byPUT /record/{token}/auth/verify/first. - Record must not be finished; billing/VIP checks must pass. Otherwise the endpoint returns 403 or 409.
Response formats
The analyst chooses the delivery format per test. There is nosections wrapper: questions are a flat array in display order.
JSON response fields
string
Test identifier. Matches the
test_id on the record (for example, MCMI, NEO, DASS21).string | null
Optional instruction text shown before the questions.
array
Flat array of questions in display order. Each item contains:
integer
Value to submit in the
record array for this question when the participant selects this option.string
Display order label.
string
Option label shown to the participant. Do not send this string as the answer.
string | null
Optional audio path.
string | null
Optional image path.
Example request
Example response (JSON questionnaire)
Submitting answers
CallPOST /record/{token}/ with record as an array with one entry per question, in the same order as questions[]:
- Option questions → the selected option’s
id(integer). - Free-text questions (
answer.text: true) → the participant’s string answer.
[1, 0, "my written answer"].
Allowed values and array length are validated by the analyst for each test (for example, MCMI expects 195 integers of 0 or 1).
Example response (HTML questionnaire)
When the analyst uses an HTML template,data contains only an html string:
html string in an iframe or WebView. HTML forms are designed for the Braintest panel flow; for deep external integration, prefer tests that return JSON so you control the UI and submit via POST /record/{token}/.

