A question is a reusable custom field collected from attendees (dietary restrictions, t-shirt size, arrival method, anything event-specific). Questions are rendered on the registration form.
Answer values are stored on each ticket and accessible via ?include=custom_fields on Tickets.
Question kinds
kind |
Description |
|---|---|
text |
Single-line text input. |
textarea |
Multi-line text input. |
email |
Email-validated text input. |
phone |
Phone number input. |
number |
Numeric input. |
date |
Date picker. |
select |
Dropdown — uses options[] for choices. |
radio |
Radio buttons — uses options[] for choices. |
checkbox |
Single checkbox. |
checkboxes |
Multiple checkboxes — uses options[] for choices. |
Default response fields
id, kind, name, reference, position, metadata, display_defaults, question_set_fields_count, builtin_attribute.
The options relationship (for select / radio / checkboxes kinds) is returned only when listed in ?include=.
List questions
GET /questions
curl -X GET \
'https://app.guestmanager.com/api/public/v2/questions?include=options' \
-H 'Authorization: Token abcdefg' \
-H 'Content-Type: application/json'
Request parameters
| Parameter | Type | Description |
|---|---|---|
page[cursor] |
string |
Opaque cursor token. Send empty for first page. |
page[size] |
integer |
Records per page. Default 10, maximum 100. |
sort[{field}] |
string |
Sort by id, created_at, updated_at, name. Value is asc or desc. |
include |
string |
options to include the dropdown / radio / checkbox choices. |
Get question
GET /questions/{id}
Create question
POST /questions
Create a dropdown question
curl -X POST \
https://app.guestmanager.com/api/public/v2/questions \
-H 'Authorization: Token abcdefg' \
-H 'Content-Type: application/json' \
-d '{
"question": {
"name": "T-shirt size",
"kind": "select",
"options": [
{ "name": "Small", "position": 1 },
{ "name": "Medium", "position": 2 },
{ "name": "Large", "position": 3 }
]
}
}'
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
question[name] |
string |
yes | Field label shown to attendees and used as the response key. |
question[kind] |
string |
yes | One of the kinds above. |
question[position] |
integer |
no | Display order on the registration form. Lower numbers appear first. |
question[options] |
array |
no | Required for select, radio, and checkboxes kinds. Array of { name, position }. Use _destroy: true to remove an existing option on update. |
Update question
PATCH /questions/{id}
Same parameter shape as create. To modify options on an existing question, pass options with the existing option IDs:
{
"question": {
"options": [
{ "id": 12, "name": "Small", "position": 1 },
{ "id": 13, "name": "Medium", "position": 2 },
{ "id": 14, "name": "X-Large", "position": 3 },
{ "name": "XX-Large", "position": 4 },
{ "id": 15, "_destroy": true }
]
}
}
Only merchant-authored questions can be edited or deleted; the built-in Name, Email, and Photo questions return 404 on write.
Delete question
DELETE /questions/{id}
Soft-deletes (discards) the question. Returns 204 No Content. Existing answers on past tickets remain intact.