Skip to content

What your key can reach

This page is about API keys, on the /external/v1 routes. A venue key reaches all the venue routes for its one venue.

We set up your integration with you. Four things decide what a call can do.

Routes

Each route needs its own permission.

Route Permission
GET /external/v1/venues, GET /external/v1/venues/:id venues:read
GET /external/v1/events, GET /external/v1/events/:id events:read
GET /external/v1/events/:id/ticket-types ticket-types:read
GET /external/v1/search/seating-areas seating-areas:read
GET /external/v1/orders, GET /external/v1/orders/:id orders:read
GET /external/v1/reservations, GET /external/v1/reservations/:id reservations:read
GET /external/v1/guests, GET /external/v1/guests/:id guests:read
The webhook-endpoints and webhook-events routes webhooks:manage
POST /external/v1/guest-list-import guest-lists:write
POST /external/v1/concierge-entry-import concierge-entries:write

Without it you get a 403 that names what is missing, such as Missing venues:read capability.

Venues and events

Your integration can have all venues, or only the ones we list for you. The same goes for events. A list simply leaves out what your key cannot read. A route that names one venue answers 404 for a venue your key cannot reach.

A filter can only narrow what you can read. It can never widen it.

Filters and sorts

Each filter and sort is also turned on per route. If yours is off, the call gets a 403, such as seating-areas:filter:guest-count is not provisioned.

Route Filters and sorts
Venues venueIds
Events venueIds, eventIds
Seating areas venueIds, eventIds, seatingAreaIds, guestCount, maxSpend, sort by price

The time range on seating areas (startDateTime, endDateTime) is always on.

Field groups

Some fields only come back when a field group is on for your integration.

Field group Adds
venues:profile description, dressCode, address on a venue, and hours, policies when you read one venue
venues:ai-guidance aiGuidance on a venue
events:profile description, bannerImage, artists, locationOverride on an event
seating-areas:pricing pricing, guestPricing
seating-areas:price-breakdown priceBreakdown
seating-areas:inventory-details inventory
seating-areas:consumer-booking-links consumerUrl
seating-areas:direct-checkout-links checkoutUrl
seating-areas:ai-guidance preferred
orders:payments refunds, disputes on an order
reservations:payments refunds, disputes on a reservation
reservations:staff bookedBy.name on a reservation
guests:contact email, phone, birthDate on a guest
guests:tags tags on a guest

A field that is off is left out of the answer. A field that is on can still be null when there is no value. Treat the two cases differently.

Team member credit

We can set up your integration to credit a team member of the venue. Then guest list entries you import are credited to that person, and the links you get carry their booking credit. You do not send this in your requests.

If the team member is no longer active at the venue, links fall back to plain links, and guest list imports are refused with a 403.