A ticket field is a custom data field collected from attendees at registration time — dietary restrictions, t-shirt size, arrival method, anything event-specific. Ticket fields are attached to ticket types and rendered on the registration form.
Field responses are stored on each ticket and accessible via ?include=custom_fields on Tickets.
Field 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, position, required, printable.
The options relationship (for select / radio / checkboxes kinds) is returned only when listed in ?include=.
List ticket fields
GET /ticket_fields
curl -X GET \
'https://app.guestmanager.com/api/public/v2/ticket_fields?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 ticket field
GET /ticket_fields/{id}
Create ticket field
POST /ticket_fields
Create a dropdown field
curl -X POST \
https://app.guestmanager.com/api/public/v2/ticket_fields \
-H 'Authorization: Token abcdefg' \
-H 'Content-Type: application/json' \
-d '{
"ticket_field": {
"name": "T-shirt size",
"kind": "select",
"required": true,
"printable": true,
"options": [
{ "name": "Small", "position": 1 },
{ "name": "Medium", "position": 2 },
{ "name": "Large", "position": 3 }
]
}
}'
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
ticket_field[name] |
string |
yes | Field label shown to attendees and used as the response key. |
ticket_field[kind] |
string |
yes | One of the kinds above. |
ticket_field[required] |
boolean |
no | Require the attendee to fill it in. Default false. |
ticket_field[printable] |
boolean |
no | Include the response on the printed/PDF ticket. Default false. |
ticket_field[position] |
integer |
no | Display order on the registration form. Lower numbers appear first. |
ticket_field[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 ticket field
PATCH /ticket_fields/{id}
Same parameter shape as create. To modify options on an existing field, pass options with the existing option IDs:
{
"ticket_field": {
"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 }
]
}
}
Delete ticket field
DELETE /ticket_fields/{id}
Soft-deletes (discards) the ticket field. Returns 204 No Content. Existing ticket field responses on past tickets remain intact.
Attaching to ticket types
Ticket fields aren’t directly attached to events — they’re attached to ticket types via ticket_type[fields]. Multiple ticket types can share the same field; create the field once and reference its id from every ticket type that needs it.
{
"ticket_type": {
"name": "GA",
"fields": [42, 43, 47]
}
}