REST API

Ticket fields

Custom fields collected per ticket — dietary, t-shirt size, attendee questions. Attached to ticket types.

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]
  }
}