Skip to main content
The Tickets API lets you retrieve tickets for your events and scan them programmatically. This is useful for building custom check-in apps, integrating with access control systems, or syncing attendee data.

Prerequisites

You need an API key with the following scopes: Create an API key from the Tickable dashboard.

Listing Tickets

Tickets are scoped to an event. Pass the event ID to retrieve all tickets:
The response includes pagination and a status field for each ticket:

Ticket Status

Visitor Information

Custom Visitor Information fields — the extra questions you configure per event, such as a participant name or email — are returned per ticket in two forms:
  • metadata — an object keyed by each field’s stable key. This is what you map in Zapier, Make or your own integration.
  • metadata_fields — the same values with the field’s dashboard label (name) and id, so you can see which key belongs to which question.
Fields configured per ticket type are answered once per ticket and appear here. Fields configured for the whole order are answered once per order and are returned by GET /orders/{id} instead, in exactly the same shape.
Both fields are always present. If the event has no Visitor Information fields, metadata is {} and metadata_fields is [].

Filtering by Order

To get all tickets belonging to a specific order, use the order_id query parameter:

Scanning Tickets

Use the scan endpoint to mark a ticket as scanned. The API validates scanner profiles, timeslot restrictions, and scan windows automatically.
The scanner_id is optional. If omitted, the first active scanner in your organization is used:

Scan Response

The response includes the scan result along with event and ticket details:

Scan Status

The status field tells you the outcome of the scan:
A scanned status means the ticket was already used. The scanned_before field is true in this case. The original scanned_at timestamp is preserved.
When the event has order scanning enabled, the response includes related_tickets — all other tickets from the same order. This is useful for group check-in scenarios:

Example: Custom Check-in App