seats.io Documentation
website·Indexed 34 days ago
https://docs.seats.io/docs/API and renderer documentation for managing event seating charts, including endpoints for booking objects, managing seasons, handling for-sale configurations, and generating usage reports.
What's inside seats.io
- The Event Manager can be configured into various modes to provide specific functionality for back-office staff. These modes control what actions can be performed on the event map, ranging from ticket sales and order management to administrative configuration and read-only views.
Overview of seats.io Event Manager modes
The Event Manager is a tool designed for administrative users to perform tasks such as booking, releasing, or marking seats as not for sale. It can be embedded in a backoffice application and configured into various modes depending on the required functionality:
- Create order mode: Used by staff to select seats for ticket sales (e.g., at a Point of Sale).
- Edit order mode: Used to add or remove places from an existing order.
- Manage Object statuses mode: Used to book and release seats.
- Manage For Sale config mode: Used to mark seats as 'for sale' or 'not for sale'.
- Manage Table booking mode: Used to define if tables are bookable as a whole or by individual seat.
- Manage Channels mode: Used to manage event channels and assign objects to them.
- Manage Categories mode: Used to assign categories to objects for a specific event.
- Select mode: Allows users to select seats to perform custom operations.
- Filter Sections mode: Allows filtering the active section for custom backoffice reporting.
- Static mode: Provides a read-only view of the current state of the event.
Implement custom selection dialogs using the Prompts API
The Seats.io Prompts API allows you to override default iframe dialogs for selecting places and ticket types with your own custom UI (e.g., banners, drawers, or modals). When a prompt callback is defined in the configuration, the Seats.io embed suppresses its internal dialog and executes your provided function instead.
There are three primary callbacks available for customization:
onPlacesPrompt: Triggered when a user needs to select a number of places.onTicketTypePrompt: Triggered when a user needs to select a ticket type.onPlacesWithTicketTypesPrompt: Triggered when users need to assign specific places to ticket types.
Understand the concept of Events in Seats.io
In Seats.io, an 'event' represents a single instance of a performance, such as a specific concert, show, or sports match. Events are used to track seat availability (booked vs. free) for a specific date or time. This allows a single floor plan design to be reused across multiple different events without needing to redesign the layout each time.Understand and use seats.io Channels for seat restriction
Channels allow you to pre-assign groups of seats to specific users or user groups (e.g., VIPs, sponsors). When seats are assigned to a channel, they are unavailable for selection by default. They can only be booked or rendered if the appropriate channel key is provided during the seating chart rendering or the booking request.Understand the Best Available seat algorithm response
The Best Available seat algorithm returns a response containing the following fields:
objects: An array of strings containing the labels of the objects selected as the best available.objectDetails: Detailed information about the objects (consistent with the change object status response).nextToEachOther: A boolean indicating if the selected seats are adjacent. Note: This field is omitted from the response when the algorithm selects booths or tables.
Access seat parent information in the renderer
Theseatparentobject provides information about the parent entity of a seat. This object is only present on objects of typeseat. It currently contains a single field,type, which indicates whether the seat's parent is a'row'or a'table'.{ "type": "row" }Manage booking availability with Partial Seasons
Partial seasons are sub-seasons within a top-level season, typically used to implement offerings like half-season tickets. They follow specific availability rules:
- Top-level to Partial: Any object booked in the top-level season is automatically unavailable across all associated partial seasons.
- Partial to Top-level: If an object is booked within a partial season, it becomes unavailable for all events within that specific partial season and is also marked as unavailable in the top-level season.
Constraint: Partial seasons cannot be nested; a partial season cannot contain other partial seasons.
Understand the Chart Report object schema
Chart report endpoints return objects containing detailed metadata about seats and other chart entities. Key properties include:
label: The full label of the object (e.g., "3-A-1").labels: An object containingown(the object's label),parent(e.g., row label), andsectionlabels.ids: An object containing the unique identifiers for the object, its parent, and its section.objectType: The type of object (e.g., "seat").categoryKeyandcategoryLabel: The identifier and human-readable name of the category assigned to the object.distanceToFocalPoint: Numerical distance to the chart's focal point.isAccessible,isCompanionSeat,isPlusSize, etc.: Boolean flags for seat accessibility and features.floor: Information about the floor the object is located on, includingnameanddisplayName.
{ "label": "3-A-1", "labels": { "parent": { "label": "Row A", "type": "row" }, "own": { "label": "1", "type": "seat" }, "section": "Section 3" }, "ids": { "own": "1", "parent": "A", "section": "3" }, "objectType": "seat", "categoryKey": "8", "categoryLabel": "VIP", "section": "3", "distanceToFocalPoint": 10.3245, "isAccessible": true, "floor": { "name": "1", "displayName": "Ground Floor" } }Get a summary report of places on a chart
Summary reports provide a summarized count of places (not objects) in specific categories or sections. Note that this endpoint is not in the priority lane and should not be used within a ticket sales flow due to rate limits. To use a draft version of the chart, add theversion=draftquery parameter.Understand Seats.io Workspace concepts
A workspace in Seats.io serves as a container for a collection of seating charts and events. Each workspace is identified by a unique name and is secured using a secret key and a public key (referred to as the workspace key). Users can be associated with multiple workspaces, allowing them to switch contexts to manage different sets of charts and events or copy floor plans between workspaces.Understand and use hold tokens for temporary seat reservations
Seats.io uses hold tokens to mark objects (such as seats) as unavailable for a short period, typically while a user completes a ticket purchase. This prevents other users from selecting the same seats.
Key characteristics of hold tokens:
- Temporary Nature: Unlike administrative holds in ticketing systems, hold tokens are short-term. When a hold token expires, all associated held objects are automatically released.
- Automatic Generation: Tokens are typically generated by the user's browser when rendering a floor plan with
session: 'start'orsession: 'continue'. - Programmatic Generation: Tokens can be generated via the API, which is useful for 'best available' booking flows where no floor plan is shown to the user.
Note: For long-term or permanent holds (e.g., admin-reserved seats), use the channels functionality instead of hold tokens.