Get an event
Returns a single event by `eventKey`, including `chartKey` of the bound chart (the same value `/hold` and `/book` return). The `chartPublishedVersion` is resolved LIVE from the bound chart at read time (per Phase 12 INNER JOIN) — if the chart has been unpublished after the event was created, `chartPublishedVersion` will be `null`.
curl -X GET "https://seatbuilder.org/api/v1/events/string"{
"id": "5b0f7c1e-2d4a-4f8e-9c3b-1a2b3c4d5e6f",
"workspaceId": "9e8d7c6b-5a4f-4e3d-8c2b-1a0f9e8d7c6b",
"environment": "production",
"chartId": "3c2b1a0f-9e8d-4c7b-8a6f-5e4d3c2b1a0f",
"chartKey": "chart_8a2b1c",
"eventKey": "evt_q3-2026-jazz-night",
"chartPublishedVersion": {
"version": 2,
"categories": [],
"sections": [],
"gaAreas": []
},
"name": "Friday jazz night, October 2026",
"createdAt": "2026-09-18T11:30:00.000Z",
"updatedAt": "2026-09-18T11:30:00.000Z"
}{
"statusCode": 0,
"error": "string",
"message": "string",
"code": "validation_failed",
"failed": [
{
"objectLabel": "string",
"reason": "string",
"eventKey": "string",
"environment": "string",
"booked": 0,
"held": 0
}
],
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}{
"statusCode": 0,
"error": "string",
"message": "string",
"code": "validation_failed",
"failed": [
{
"objectLabel": "string",
"reason": "string",
"eventKey": "string",
"environment": "string",
"booked": 0,
"held": 0
}
],
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}{
"statusCode": 0,
"error": "string",
"message": "string",
"code": "validation_failed",
"failed": [
{
"objectLabel": "string",
"reason": "string",
"eventKey": "string",
"environment": "string",
"booked": 0,
"held": 0
}
],
"errors": {
"property1": [
"string"
],
"property2": [
"string"
]
}
}List events GET
Returns a paginated list of events in the calling workspace and environment. Use `?page` and `?limit` (1-100, default 20) to page through results.
Create an event POST
Creates a new event bound to a published chart. The event starts with all seats in `free` status and has its own independent inventory: events created from the same chart share no seat state and no general-admission capacity (create one event per performance). The bound chart's `publishedVersion` is resolved LIVE at every read — events do not pin a chart version, so republishing the chart updates the layout of every event bound to it (use `move-to-new-chart-copy` to give one event its own chart). Pass your own `eventKey` to make the call safe to retry: a repeat with the same `eventKey` + `chartKey` returns the existing event with `200`.