Skip to content

Tickets

When using our Get tickets endpoints with a set of query params, for example ?event_id=some_event_id&ticket_status=available&stock:gt:0 to grab all the tickets for a specific event. You will notice that there are tickets that appear to be overlapping.

This is correct; we often have multiple suppliers for the 'same' tickets.

These supplier could be actual resellers, but also other customers who have decided to 'relist' their ticket on our platform.

The following fields in the ticket response are important when grouping tickets;

  • event_id is the identifier of the EVENT
  • category_id is the identifier of the CATEGORY
  • sub_category identifies a ticket for a specific ticket validity and targetgroup (note: we currently only have regular)

The last one is a combination based on ticket_validity and ticket_targetgroup.

Note: To guarantee your clients sitting together, stick to ONE ticket_id.

Formula 1 (and other multi day events)

For multi-day events, we sometimes have tickets for specific days or the whole weekend for one category. These all share the same event_id and category_id identifiers. But they will all have their own specific sub_category

Ticket valid forsub_category value
Fridayfri_regular
Saturdaysat_regular
Sundaysun_regular
Saturday + Sundaysatsun_regular
Whole weekendweekend_regular

With this knowledge, you now know you should group tickets based on:

  • event_id
  • category_id
  • sub_category

Some combinations will have just one ticket, others might have several. Then it really depends on your (customer) needs;

  • Cheapest ticket
  • and/or Amount of tickets you need

For example the cheapest ticket might only have 2 left, while you need 4. Then perhaps the 2nd cheapest is a better fit.

Do remember; Each ticket_id implies a different supplier and means we cannot guarantee sitting together if you buy several tickets with different ticket_id.

How many seats are guaranteed together?

To find out, you can fetch the category information of all the categories for the whole event via: /v1/categories?event_id:some_event_id

The category_id in response can then be matched to category_id on the ticket.

This category object in the response has a party_size_together field which gives the number of seats that are guaranteed together.

Note: Yes, you can fetch each category separately but this is inefficient for bigger events due to roundtrips and latency for each call.

Football

For football, the only sub_category will be singleday_regular. Applying the same grouping as for formula 1 makes it easier and will give the proper result as well.

Ticket Flags

Tickets may include a flags array that contains special constraints affecting how tickets can be purchased. These flags enforce business rules and must be respected when processing bookings.

Available Flags

Flag ValueDescriptionImpact on Booking
pairs_onlyTickets can only be sold in pairsOnly even quantities (2, 4, 6, etc.) are allowed
no_max_minus_1Prevents leaving exactly 1 ticket remainingCertain quantities are blocked to avoid single-ticket remainder
package_rateTickets must be sold as part of a packageIndividual ticket sales are not permitted
no_awayteam_nationality_allowedBlocks guests from away team's countryGuest nationality validation will reject matching countries
no_awayteam_province_allowedBlocks guests from away team's provinceGuest province validation will reject matching provinces

Handling Flags in Your Integration

1. Check flags before purchase:

json
{
  "ticket_id": "123",
  "available_quantity": 8,
  "flags": ["pairs_only"]
}

2. Validate quantities:

  • If pairs_only is present, only allow even quantities
  • If no_max_minus_1 is present, avoid quantities that would leave 1 ticket

3. Handle validation errors: The API will return error responses when flag constraints are violated:

  • Invalid quantity (e.g., odd number when pairs_only is required)
  • Stock limitations (e.g., cannot purchase quantity that would leave 1 ticket)
  • Guest restrictions (e.g., nationality or province not allowed for this ticket)

4. Example response with flags:

json
{
  "ticket_id": "abc123",
  "event_id": "evt456",
  "available_quantity": 6,
  "flags": ["pairs_only", "no_max_minus_1"],
  "ticket_status": "available"
}

In this example:

  • Customer can buy 2, 4, or 6 tickets (pairs only)
  • Customer cannot buy 5 tickets (would leave 1, violating no_max_minus_1)
  • Customer cannot buy 1 or 3 tickets (violates pairs_only)

Guest Data Validation

When submitting guest data for tickets with no_awayteam_nationality_allowed or no_awayteam_province_allowed:

  • The system validates guest nationality/province against the away team
  • If a match is found, the booking is rejected with an error indicating the restriction
  • Always validate guest data before finalizing the booking