A ticket type defines the configuration of a ticket — how it’s rendered (PDF and Apple Wallet templates), what fields are collected, whether it’s transferable, scan rules, expiration, and which custom fields apply. Ticket types are reusable across events: a “GA” ticket type can back GA registration types on every event.
When creating events, registration types reference a ticket type via ticket_type_id. Either reuse an existing ticket type (recommended) or create one inline as part of the event-creation flow via POST /events/{id}/ticket_types.
Default response fields
id, created_at, updated_at, archived_at, name, display_name, pdf_template_id, wallet_template_id, attachable, transferable, include_name, include_email, require_name, require_email, include_photo, require_photo, enforce_barcode_pool, attachment_name, kind, use_limit, use_limit_per_date, expiry_method, expiry_unit, expiry_value, register_label, edit_label, restricted_days, editable_after_downloaded, enforce_scan_date, scan_enforcement.
The fields (custom ticket fields) relationship is returned only when listed in ?include=.
List ticket types
GET /ticket_types
List ticket types
curl -X GET \
'https://app.guestmanager.com/api/public/v2/ticket_types?page[cursor]=&include=fields' \
-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. See Pagination. |
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 |
fields to include attached custom fields (rendered with the key fields). |
filter[ids] |
string |
Comma separated ticket type IDs. |
filter[event_ids] |
string |
Filter by ticket types in use on specific events. |
filter[archived_at] |
boolean |
true includes archived ticket types; false excludes them. |
Get ticket type
GET /ticket_types/{id}
Create ticket type
POST /ticket_types
Create a basic ticket type
curl -X POST \
https://app.guestmanager.com/api/public/v2/ticket_types \
-H 'Authorization: Token abcdefg' \
-H 'Content-Type: application/json' \
-d '{
"ticket_type": {
"name": "GA",
"transferable": true,
"include_name": true,
"include_email": true,
"fields": [42, 43]
}
}'
Request parameters
Identity & display
| Parameter | Type | Default | Description |
|---|---|---|---|
ticket_type[name] |
string |
— | Required. Internal name. |
ticket_type[display_name] |
string |
Name shown to attendees on tickets and emails. Falls back to name when blank. |
|
ticket_type[register_label] |
string |
Label shown on the registration form (e.g., “Buy ticket”). | |
ticket_type[edit_label] |
string |
Label shown on the edit-ticket form. |
Ticket delivery
| Parameter | Type | Default | Description |
|---|---|---|---|
ticket_type[pdf_template_id] |
integer |
null |
PDF design template ID. |
ticket_type[wallet_template_id] |
integer |
null |
Apple Wallet pass template ID. |
ticket_type[attachable] |
boolean |
true |
true to attach the PDF directly to the ticket email. false includes a download link instead. |
Attendee form fields
| Parameter | Type | Default | Description |
|---|---|---|---|
ticket_type[include_name] |
boolean |
false |
Show name field on registration. |
ticket_type[require_name] |
boolean |
false |
Require name to be filled in. |
ticket_type[include_email] |
boolean |
false |
Show email field on registration. |
ticket_type[require_email] |
boolean |
false |
Require email to be filled in. |
ticket_type[include_photo] |
boolean |
false |
Allow attendee photo upload. |
ticket_type[require_photo] |
boolean |
false |
Require attendee photo upload. |
ticket_type[fields] |
array |
[] |
Array of ticket_field_id integers — custom fields attached to this ticket type. See Ticket fields. |
Transfer & edit
| Parameter | Type | Default | Description |
|---|---|---|---|
ticket_type[transferable] |
boolean |
true |
Allow attendees to transfer the ticket to someone else. |
ticket_type[editable_after_downloaded] |
boolean |
true |
Allow edits after the ticket has been downloaded. |
Scan rules
| Parameter | Type | Default | Description |
|---|---|---|---|
ticket_type[scan_enforcement] |
string |
none |
One of none (allow scans anytime), within_event_time (only during event window), within_event_date (only on event date). |
ticket_type[enforce_barcode_pool] |
boolean |
false |
Restrict barcode generation to a managed pool. |
ticket_type[restricted_days] |
array |
[] |
For multi-day events, the specific days this ticket type is valid for. |
Use limits & expiry
| Parameter | Type | Default | Description |
|---|---|---|---|
ticket_type[use_limit] |
integer |
null |
Maximum number of times the ticket can be scanned in. null for unlimited. |
ticket_type[use_limit_per_date] |
integer |
null |
Per-date scan limit (for multi-date / pass tickets). |
ticket_type[expiry_method] |
string |
null |
Expiration strategy. One of from_purchase, from_event, fixed_date. |
ticket_type[expiry_value] |
integer |
null |
Expiration value (number of expiry_units). |
ticket_type[expiry_unit] |
string |
null |
One of hours, days, weeks, months, years. |
Update ticket type
PATCH /ticket_types/{id}
Same parameter shape as create. Pass only the fields you want to change.
Delete ticket type
DELETE /ticket_types/{id}
Soft-deletes (discards) the ticket type. Returns 204 No Content. Ticket types referenced by active events cannot be deleted directly — archive the event first.