Add Question
Add one of the shop's own questions to an experience. A question added here is asked on this experience only; to ask it on others too, change where it is shown in Settings > Custom fields.
To ask each person their size of an item, set ask_size on the experience's gear row instead. See
Asking each person their size.
Endpointโ
POST /v1/experiences/{id}/questions
Authenticationโ
Requires an API key with the experiences:write scope.
Path Parametersโ
| Parameter | Type | Description |
|---|---|---|
id | integer | The experience ID |
Request Bodyโ
| Field | Type | Required | Description |
|---|---|---|---|
label | string | Yes | The question as the customer reads it (max 255 characters) |
answer_type | string | No | text (default), select, multi_select, number, yes_no or date |
choices | string[] | For select and multi_select | The answers to choose from (up to 100, each up to 255 characters). Ignored for the other kinds |
required | boolean | No | The customer must answer it at checkout. Default false |
checked_at_checkin | boolean | No | The crew checks it at check-in and a missing answer is flagged. Default false |
{
"label": "Certificate level",
"answer_type": "select",
"choices": ["None", "Level 1", "Level 2"],
"required": true,
"checked_at_checkin": true
}
Responseโ
Success (201 Created)โ
question is the one just added. The rest is the experience's full list, as
List Questions returns it.
{
"data": {
"question": {
"field_id": 89,
"label": "Certificate level",
"answer_type": "select",
"is_size": false,
"product_id": null,
"choices": ["None", "Level 1", "Level 2"],
"required": true,
"checked_at_checkin": true
},
"experience_id": 12,
"asks_each_person": true,
"questions": [
{ "field_id": 87, "label": "Wetsuit size", "answer_type": "select", "is_size": true, "product_id": 41, "choices": ["S", "M", "L"], "required": true, "checked_at_checkin": false },
{ "field_id": 89, "label": "Certificate level", "answer_type": "select", "is_size": false, "product_id": null, "choices": ["None", "Level 1", "Level 2"], "required": true, "checked_at_checkin": true }
]
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-10-06T09:00:00+00:00"
}
}
Errorsโ
| Status | Code | Description |
|---|---|---|
| 401 | authentication_required | No API key provided |
| 401 | invalid_api_key | Invalid API key |
| 403 | insufficient_scope | API key lacks experiences:write scope |
| 403 | forbidden | The experience belongs to another account |
| 404 | resource_not_found | Experience does not exist |
| 422 | validation_error | A field is missing or wrong. A select or multi_select question with no choices returns "Add at least one choice." under label |
Example Requestโ
curl -X POST "https://app.equipdash.com/api/v1/experiences/12/questions" \
-H "Authorization: Bearer eqd_live_abc123xyz789..." \
-H "Content-Type: application/json" \
-d '{"label": "Can you swim 50m?", "answer_type": "yes_no", "required": true, "checked_at_checkin": true}'