curl -X POST https://api.getversive.com/api/v1/questions/batch \
-H "Authorization: Bearer $VERSIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"questions": [
{
"id": "8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d",
"study_id": "9b2f7c1e-4a4b-4f6e-9a1d-1c2d3e4f5a6b",
"content": "Which plan are you currently on?"
},
{
"study_id": "9b2f7c1e-4a4b-4f6e-9a1d-1c2d3e4f5a6b",
"type": "question",
"content": "Why did you choose the {{Q:8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d}} plan?",
"props": { "required": true, "maxFollowupQuestions": 3 }
}
]
}'
{
"created_question_ids": ["4f9c1e7a-6b2d-4a8e-9c3f-1d5b7e9a2c4f"],
"updated_question_ids": ["8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d"]
}
Questions
Batch create/update questions
Create and update questions in one call
POST
/
questions
/
batch
curl -X POST https://api.getversive.com/api/v1/questions/batch \
-H "Authorization: Bearer $VERSIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"questions": [
{
"id": "8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d",
"study_id": "9b2f7c1e-4a4b-4f6e-9a1d-1c2d3e4f5a6b",
"content": "Which plan are you currently on?"
},
{
"study_id": "9b2f7c1e-4a4b-4f6e-9a1d-1c2d3e4f5a6b",
"type": "question",
"content": "Why did you choose the {{Q:8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d}} plan?",
"props": { "required": true, "maxFollowupQuestions": 3 }
}
]
}'
{
"created_question_ids": ["4f9c1e7a-6b2d-4a8e-9c3f-1d5b7e9a2c4f"],
"updated_question_ids": ["8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d"]
}
Creates and/or updates questions in a single study in one request. Items with an
The example below creates one new question and updates an existing one (
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_id— required on every item.content— question text; may include{{Q:...}}references.type— question type (see List questions for values).props— type-specific settings object. On updates it is merged with the existing props, with the same handling of multiple-choiceexclusiveOptionsas Update question and the same validation ofearlierAnswerChecks(checks against earlier answers).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 an earlier answer with either:
{{Q:<question_id>}}— the complete answer.- A type-specific property token — one option response from a structured answer, such as:
{{Q:<matrix_question_id>.ratingForItem[0]}}{{Q:<ranking_question_id>.rankOfOption[0]}}{{Q:<ranking_question_id>.optionAtRank[0]}}{{Q:<allocation_question_id>.allocationForItem[0]}}
.option[index] selector; it is not supported.
Call List available references for the destination question’s position and copy the returned template verbatim. References are validated on write, and invalid property names, indices, missing questions, or forward references fail with 422 and an errors array.
Response
string[]
IDs of newly created questions, in input order.
string[]
IDs of updated questions.
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.
curl -X POST https://api.getversive.com/api/v1/questions/batch \
-H "Authorization: Bearer $VERSIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"questions": [
{
"id": "8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d",
"study_id": "9b2f7c1e-4a4b-4f6e-9a1d-1c2d3e4f5a6b",
"content": "Which plan are you currently on?"
},
{
"study_id": "9b2f7c1e-4a4b-4f6e-9a1d-1c2d3e4f5a6b",
"type": "question",
"content": "Why did you choose the {{Q:8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d}} plan?",
"props": { "required": true, "maxFollowupQuestions": 3 }
}
]
}'
{
"created_question_ids": ["4f9c1e7a-6b2d-4a8e-9c3f-1d5b7e9a2c4f"],
"updated_question_ids": ["8d3b6a2f-1c4e-4f7a-b5d9-2e6c8a0f4b1d"]
}