Seat Availability API v2
The v2 API exposes one long-lived stream per event. Clients open the stream, read seat changes as they happen, and reconnect with the last sequence number they saw. There is no polling endpoint; the stream is the source of truth.
Base URL: https://api.100chairs.online. All requests use TLS. Responses are UTF-8.
Authentication
Sessions are cookie-based. A session is issued to a device by your account's provisioning integration and presented on every request as the sid cookie. Sessions do not expire while in use; a session idle for 30 days is revoked.
Requests without a valid session receive 401 with a JSON body. Do not retry a 401 without re-provisioning.
Quickstart
curl -N https://api.100chairs.online/api/v2/events/evt_9Ka2mQ7xTb4Y/seats \
-H 'Accept: text/event-stream' \
-b 'sid=…'
The connection stays open. Each seat change arrives as one server-sent event.
Seat stream
GET/api/v2/events/{event_id}/seats
Streams every change to the event's seat map from the moment the connection opens. The response is text/event-stream and is not cacheable.
| Event | Meaning | Data |
|---|---|---|
hold | A seat is held by a channel and cannot be sold elsewhere until until. | seat, by, until |
release | A hold lapsed or was cancelled. | seat |
sale | A seat was sold. | seat, order |
block | A seat was taken off sale by the venue. | seat, reason |
Resuming
Every message carries a sequence number in its id: line. To resume after a disconnect, reopen the stream with ?n=<last_seq> and the server replays what you missed before switching to live delivery. Sequence numbers are per event and monotonic.
GET /api/v2/events/evt_9Ka2mQ7xTb4Y/seats?n=1841
Replay is bounded to the current sales window; a sequence older than that returns the full current map as snapshot events before going live.
Errors
| Status | When |
|---|---|
400 | Malformed request or unknown query parameter. |
401 | Missing or revoked session. |
404 | The event does not exist or is not visible to this account. |
429 | Too many concurrent streams for one session. |
Limits
- Up to 8 concurrent streams per session.
- Messages are delivered in order and at most once per connection.
- Idle connections are kept open indefinitely; the server sends a comment line every 25 seconds.