Skip to main content
POST
Creates and/or updates questions in a single study in one request. Items with an id are updated; items without an id are created (appended after the existing questions in the order given). Returns 201.
object[]
required
The questions to create or update. Every item must include the same study_id. Recognized fields per item:
  • id — include to update an existing question; omit to create.
  • study_idrequired on every item.
  • content — question text; may include {{Q:...}} references.
  • type — question type (see List questions for values).
  • props — type-specific settings object.
  • interviewer_notes — private AI guidance.
  • assets — media assets array.
  • display_order — position (new questions are auto-ordered if omitted).

Question references (mentions)

content can reference earlier answers with placeholders like {{Q:<question_id>}} (the full answer) or {{Q:<question_id>.option[1]}} (a specific property). References are validated on write — invalid ones fail the request with 422 and an errors array. Discover valid templates with List available references.

Response

string[]
IDs of newly created questions, in input order.
string[]
IDs of updated questions.
The example below creates one new question and updates an existing one (8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d), piping that existing question’s answer into the new question’s text. References must point at questions that already exist in the study — use List available references to discover valid templates.