{"openapi":"3.1.0","info":{"title":"venuery Seating API","version":"1","description":"Seating charts, events and inventory for ticketing platforms. Send a secret key (`sk_live_…`, `sk_test_…`) as `Authorization: Bearer`, or HTTP Basic with the key as the username. Test keys act on separate test data."},"servers":[{"url":"https://www.venuery.com/v1"}],"tags":[{"name":"Keys"},{"name":"Venues"},{"name":"Charts"},{"name":"Events"},{"name":"Seasons"},{"name":"Inventory"},{"name":"Channels"},{"name":"Gates"},{"name":"Webhooks"},{"name":"Staff embeds"},{"name":"Usage"},{"name":"Migration"}],"components":{"securitySchemes":{"secretKey":{"type":"http","scheme":"bearer","description":"`sk_live_…` or `sk_test_…`"},"publishableKey":{"type":"http","scheme":"bearer","description":"`pk_live_…` or `pk_test_…`: only the endpoints the seat map needs"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"type":{"type":"string","enum":["invalid_request","authentication_failed","permission_denied","not_found","conflict","idempotency_error","rate_limited","server_error"]},"message":{"type":"string"},"request_id":{"type":"string"},"param":{"type":"string","description":"The request field at fault."},"conflicts":{"type":"array","items":{"type":"string"},"description":"Objects that weren't available."},"statuses":{"type":"object","additionalProperties":{"type":"string"},"description":"The status each conflicting object is in."},"change":{"type":"integer","description":"Batches: the index of the change that failed."},"errors":{"type":"array","items":{"type":"object"},"description":"Publishing: the chart's errors."},"unknown":{"type":"array","items":{"type":"string"},"description":"Names that didn't match an object."}},"required":["type","message","request_id"]}}}}},"paths":{"/me":{"get":{"tags":["Keys"],"summary":"The key you're using","description":"Which organization, workspace (live or test) and venues the key acts on.","operationId":"getMe","security":[{"secretKey":[]},{"publishableKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"api_key","id":"key_8f3k2m9q1x7c4b0d","kind":"secret","livemode":true,"organization":{"id":"org_1","name":"Cape Fear Ghost Crabs"},"workspace":{"id":"wsp_1","mode":"live"},"venues":"all"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/venues":{"get":{"tags":["Venues"],"summary":"List venues","operationId":"getVenues","security":[{"secretKey":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"1–100 (default 25)","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"ven_8f3k2m9q1x7c4b0d","object":"venue","name":"Brooks Field","slug":"brooks-field","address":"601 S College Rd, Wilmington NC","timezone":"America/New_York","livemode":true,"created_at":"2026-10-14T12:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Venues"],"summary":"Create a venue","operationId":"postVenues","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120,"description":"A name people will see."},"address":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"description":"Street address."},"timezone":{"type":"string","description":"IANA time zone, like `America/New_York` (default: the organization's)."}},"required":["name"]},"example":{"name":"Brooks Field","address":"601 S College Rd, Wilmington NC","timezone":"America/New_York"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"ven_8f3k2m9q1x7c4b0d","object":"venue","name":"Brooks Field","slug":"brooks-field","address":"601 S College Rd, Wilmington NC","timezone":"America/New_York","livemode":true,"created_at":"2026-10-14T12:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/venues/{id}":{"get":{"tags":["Venues"],"summary":"Get a venue","operationId":"getVenuesById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"ven_8f3k2m9q1x7c4b0d","object":"venue","name":"Brooks Field","slug":"brooks-field","address":"601 S College Rd, Wilmington NC","timezone":"America/New_York","livemode":true,"created_at":"2026-10-14T12:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Venues"],"summary":"Update a venue","operationId":"patchVenuesById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120,"description":"A name people will see."},"address":{"anyOf":[{"type":"string","maxLength":300},{"type":"null"}],"description":"Street address."},"timezone":{"type":"string","description":"IANA time zone, like `America/New_York` (default: the organization's)."}}},"example":{"address":"601 S College Rd, Wilmington NC 28403"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"ven_8f3k2m9q1x7c4b0d","object":"venue","name":"Brooks Field","slug":"brooks-field","address":"601 S College Rd, Wilmington NC","timezone":"America/New_York","livemode":true,"created_at":"2026-10-14T12:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts":{"get":{"tags":["Charts"],"summary":"List charts","operationId":"getCharts","security":[{"secretKey":[]}],"parameters":[{"name":"venue","in":"query","required":false,"description":"Only this venue's charts","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1–100 (default 25)","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"cht_4k9q2m8f1x7c3b0d","object":"chart","venue":"ven_8f3k2m9q1x7c4b0d","name":"Baseball","latest_version":3,"draft_revision":41,"created_at":"2026-10-14T12:00:00.000Z","updated_at":"2026-10-14T13:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Charts"],"summary":"Create a chart","description":"Empty, or from a `document`: a venuery chart document or a seats.io drawing, converted on the way in. Then publish it to use it for events.","operationId":"postCharts","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"venue":{"type":"string","minLength":1,"description":"A venue's id."},"name":{"type":"string","minLength":1,"maxLength":120,"description":"A name people will see."},"document":{"description":"A venuery chart document, or a seats.io drawing (converted on the way in)."}},"required":["venue","name"]},"example":{"venue":"ven_8f3k2m9q1x7c4b0d","name":"Baseball","document":{"…":"a seats.io drawing or venuery document"}}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cht_4k9q2m8f1x7c3b0d","object":"chart","venue":"ven_8f3k2m9q1x7c4b0d","name":"Baseball","latest_version":null,"draft_revision":0,"created_at":"2026-10-14T12:00:00.000Z","updated_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}":{"get":{"tags":["Charts"],"summary":"Get a chart","operationId":"getChartsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"expand","in":"query","required":false,"description":"`draft` to include the draft document","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cht_4k9q2m8f1x7c3b0d","object":"chart","venue":"ven_8f3k2m9q1x7c4b0d","name":"Baseball","latest_version":3,"draft_revision":41,"created_at":"2026-10-14T12:00:00.000Z","updated_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}/draft":{"put":{"tags":["Charts"],"summary":"Replace the draft","description":"Pass the `revision` you started from to be refused (409) if someone saved in between.","operationId":"putChartsByIdDraft","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"document":{"description":"A venuery chart document, or a seats.io drawing (converted on the way in)."},"revision":{"type":"integer","minimum":0,"description":"The `draft_revision` you started from: refused (409) if the draft changed since."}},"required":["document"]},"example":{"document":{"format":"venuery.chart-doc/v2","…":"…"},"revision":41}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"cht_4k9q2m8f1x7c3b0d","object":"chart","venue":"ven_8f3k2m9q1x7c4b0d","name":"Baseball","latest_version":3,"draft_revision":42,"created_at":"2026-10-14T12:00:00.000Z","updated_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}/draft/validate":{"post":{"tags":["Charts"],"summary":"Check the draft","description":"Runs the checks publishing runs, with your organization's settings (Settings → Chart checks).","operationId":"postChartsByIdDraftValidate","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"chart_validation","chart":"cht_4k9q2m8f1x7c3b0d","ok":true,"errors":[],"warnings":[{"rule":"noFocalPoint","message":"No focal point: best available can't rank seats.","object_ids":[]}],"stats":{"seats":980,"places":2480,"capacity_by_category":{"club":171,"reserved":769,"lawn":1500,"tables":40}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}/publish":{"post":{"tags":["Charts"],"summary":"Publish the draft","description":"Compiles the draft into a new version that events can pin. Versions never change. 422 with the errors when the draft can't be published.","operationId":"postChartsByIdPublish","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"chv_2m8f4k9q1x7c3b0d","object":"chart_version","chart":"cht_4k9q2m8f1x7c3b0d","version":3,"capacity":2480,"compiler":"compile@1","diff":{"added":12,"removed":0,"relabeled":4,"recategorized":0,"safe_for_auto_upgrade":true},"published_at":"2026-10-14T13:00:00.000Z","warnings":[]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}/versions":{"get":{"tags":["Charts"],"summary":"List versions","operationId":"getChartsByIdVersions","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"chv_2m8f4k9q1x7c3b0d","object":"chart_version","chart":"cht_4k9q2m8f1x7c3b0d","version":3,"capacity":2480,"compiler":"compile@1","diff":{"added":12,"removed":0,"relabeled":4,"recategorized":0,"safe_for_auto_upgrade":true},"published_at":"2026-10-14T13:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}/versions/{n}":{"get":{"tags":["Charts"],"summary":"Get a version","operationId":"getChartsByIdVersionsByN","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"n","in":"path","required":true,"schema":{"type":"string"}},{"name":"expand","in":"query","required":false,"description":"`layout`, `document` and/or `labels` (label → id for every seat, table, booth and GA area), comma-separated","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"chv_2m8f4k9q1x7c3b0d","object":"chart_version","chart":"cht_4k9q2m8f1x7c3b0d","version":3,"capacity":2480,"compiler":"compile@1","diff":{"added":12,"removed":0,"relabeled":4,"recategorized":0,"safe_for_auto_upgrade":true},"published_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/charts/{id}/copy":{"post":{"tags":["Charts"],"summary":"Copy a chart","description":"A new chart with this one's draft.","operationId":"postChartsByIdCopy","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120,"description":"The copy's name (default: “… (copy)”)."}}},"example":{"name":"Baseball – playoffs"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"cht_7c3b0d4k9q2m8f1x","object":"chart","venue":"ven_8f3k2m9q1x7c4b0d","name":"Baseball – playoffs","latest_version":null,"draft_revision":0,"created_at":"2026-10-14T12:00:00.000Z","updated_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events":{"get":{"tags":["Events"],"summary":"List events","operationId":"getEvents","security":[{"secretKey":[]}],"parameters":[{"name":"venue","in":"query","required":false,"description":"Venue id","schema":{"type":"string"}},{"name":"season","in":"query","required":false,"description":"Season id","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"`draft`, `on_sale` or `cancelled`","schema":{"type":"string"}},{"name":"starts_after","in":"query","required":false,"description":"ISO 8601 date-time","schema":{"type":"string"}},{"name":"starts_before","in":"query","required":false,"description":"ISO 8601 date-time","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1–100 (default 25)","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"on_sale","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Events"],"summary":"Create an event","description":"Pins a published chart version and makes the event's inventory: every seat, table and GA place, available. Give it your own `key` to find it by later.","operationId":"postEvents","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chart":{"type":"string","minLength":1,"description":"A chart's id."},"version":{"type":"integer","exclusiveMinimum":0,"description":"The published version to pin (default: the latest)."},"key":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,80}$","description":"Your own id for it, unique in the workspace (letters, digits and `. _ : -`). Use it anywhere an id goes."},"name":{"type":"string","minLength":1,"maxLength":200,"description":"A name people will see."},"subtitle":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"A second line, like the opponent."},"starts_at":{"type":"string","format":"date-time","description":"When it starts, ISO 8601 with an offset (`2027-05-28T19:05:00-04:00`)."},"kind":{"default":"inventory","type":"string","enum":["inventory","ticketed"],"description":"`inventory`: you sell, and book seats through this API. `ticketed`: venuery's checkout sells them at `prices`."},"status":{"default":"on_sale","type":"string","enum":["draft","on_sale"],"description":"`on_sale` (default) or `draft`."},"prices":{"default":{},"type":"object","additionalProperties":{"type":"integer","minimum":0,"maximum":10000000},"description":"Ticketed events: price per chart category, in cents (`{\"reserved\": 1500}`)."},"max_tickets_per_order":{"type":"integer","minimum":1,"maximum":500,"description":"The most places one order may take."},"season":{"type":"string","minLength":1,"description":"A season (id or key) on the same chart. The event gets the season's booked seats."}},"required":["chart","name","starts_at"]},"example":{"chart":"cht_4k9q2m8f1x7c3b0d","key":"2027-05-28-opening-night","name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T19:05:00-04:00"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"on_sale","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/bulk":{"post":{"tags":["Events"],"summary":"Create up to 100 events","description":"All of them, or none.","operationId":"postEventsBulk","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"events":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"chart":{"type":"string","minLength":1,"description":"A chart's id."},"version":{"type":"integer","exclusiveMinimum":0,"description":"The published version to pin (default: the latest)."},"key":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,80}$","description":"Your own id for it, unique in the workspace (letters, digits and `. _ : -`). Use it anywhere an id goes."},"name":{"type":"string","minLength":1,"maxLength":200,"description":"A name people will see."},"subtitle":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"A second line, like the opponent."},"starts_at":{"type":"string","format":"date-time","description":"When it starts, ISO 8601 with an offset (`2027-05-28T19:05:00-04:00`)."},"kind":{"default":"inventory","type":"string","enum":["inventory","ticketed"],"description":"`inventory`: you sell, and book seats through this API. `ticketed`: venuery's checkout sells them at `prices`."},"status":{"default":"on_sale","type":"string","enum":["draft","on_sale"],"description":"`on_sale` (default) or `draft`."},"prices":{"default":{},"type":"object","additionalProperties":{"type":"integer","minimum":0,"maximum":10000000},"description":"Ticketed events: price per chart category, in cents (`{\"reserved\": 1500}`)."},"max_tickets_per_order":{"type":"integer","minimum":1,"maximum":500,"description":"The most places one order may take."},"season":{"type":"string","minLength":1,"description":"A season (id or key) on the same chart. The event gets the season's booked seats."}},"required":["chart","name","starts_at"]},"description":"Events, each as for Create an event."}},"required":["events"]},"example":{"events":[{"chart":"cht_4k9q2m8f1x7c3b0d","key":"2027-05-29","name":"Game 2","starts_at":"2027-05-29T19:05:00-04:00"},{"chart":"cht_4k9q2m8f1x7c3b0d","key":"2027-05-30","name":"Game 3","starts_at":"2027-05-30T14:05:00-04:00"}]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"on_sale","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}":{"get":{"tags":["Events"],"summary":"Get an event","description":"By id or by your key.","operationId":"getEventsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"on_sale","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Events"],"summary":"Update an event","operationId":"patchEventsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":200,"description":"A name people will see."},"subtitle":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"A second line, like the opponent."},"starts_at":{"type":"string","format":"date-time","description":"When it starts, ISO 8601 with an offset (`2027-05-28T19:05:00-04:00`)."},"max_tickets_per_order":{"type":"integer","minimum":1,"maximum":500,"description":"The most places one order may take."},"season":{"anyOf":[{"type":"string","minLength":1},{"type":"null"}],"description":"Move it into a season (id or key), where it gets the season's booked seats, or `null` to take it out. Seats stay booked either way."}}},"example":{"starts_at":"2027-05-28T18:35:00-04:00"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"on_sale","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/layout":{"get":{"tags":["Events"],"summary":"The event's chart","description":"The compiled chart version the event uses: sections, rows, seats with their labels and positions, tables, booths and GA areas. For drawing your own map.","operationId":"getEventsByIdLayout","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"event_layout","event":"evt_9q1x7c4b0d8f3k2m","chart_version":"chv_2m8f4k9q1x7c3b0d","layout":{"format":"venuery.layout/v2","sections":["…"],"seats":["…"],"pools":["…"]}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/on_sale":{"post":{"tags":["Events"],"summary":"Put an event on sale","operationId":"postEventsByIdOnSale","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"on_sale","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/cancel":{"post":{"tags":["Events"],"summary":"Cancel an event","description":"Releases every active hold. Booked seats stay booked, for your records.","operationId":"postEventsByIdCancel","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"evt_9q1x7c4b0d8f3k2m","object":"event","key":"2027-05-28-opening-night","kind":"inventory","venue":"ven_8f3k2m9q1x7c4b0d","chart_version":"chv_2m8f4k9q1x7c3b0d","season":null,"name":"Opening Night","subtitle":"vs. the Sharks","starts_at":"2027-05-28T23:05:00.000Z","status":"cancelled","max_tickets_per_order":10,"livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons":{"get":{"tags":["Seasons"],"summary":"List seasons","operationId":"getSeasons","security":[{"secretKey":[]}],"parameters":[{"name":"venue","in":"query","required":false,"description":"Only this venue's seasons","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1–100 (default 25)","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"ssn_3k2m9q1x7c4b0d8f","object":"season","key":"2027","name":"2027 Season","venue":"ven_8f3k2m9q1x7c4b0d","chart":"cht_4k9q2m8f1x7c3b0d","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"],"livemode":true,"created_at":"2026-10-14T13:10:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Seasons"],"summary":"Create a season","operationId":"postSeasons","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chart":{"type":"string","minLength":1,"description":"A chart's id."},"key":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,80}$","description":"Your own id for it, unique in the workspace (letters, digits and `. _ : -`). Use it anywhere an id goes."},"name":{"type":"string","minLength":2,"maxLength":80,"description":"A name people will see."},"events":{"maxItems":200,"type":"array","items":{"type":"string","minLength":1},"description":"Events (ids or keys) on the same chart to put in it. Add more later."}},"required":["chart","name"]},"example":{"chart":"cht_4k9q2m8f1x7c3b0d","key":"2027","name":"2027 Season","events":["2027-05-28-opening-night","2027-05-29"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"ssn_3k2m9q1x7c4b0d8f","object":"season","key":"2027","name":"2027 Season","venue":"ven_8f3k2m9q1x7c4b0d","chart":"cht_4k9q2m8f1x7c3b0d","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"],"livemode":true,"created_at":"2026-10-14T13:10:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons/{id}":{"get":{"tags":["Seasons"],"summary":"Get a season","description":"By id or by your key.","operationId":"getSeasonsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"ssn_3k2m9q1x7c4b0d8f","object":"season","key":"2027","name":"2027 Season","venue":"ven_8f3k2m9q1x7c4b0d","chart":"cht_4k9q2m8f1x7c3b0d","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"],"livemode":true,"created_at":"2026-10-14T13:10:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Seasons"],"summary":"Update a season","operationId":"patchSeasonsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":80,"description":"A name people will see."},"key":{"anyOf":[{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,80}$"},{"type":"null"}],"description":"Your own id for it, unique in the workspace (letters, digits and `. _ : -`). Use it anywhere an id goes."}}},"example":{"name":"2027 Regular Season"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"ssn_3k2m9q1x7c4b0d8f","object":"season","key":"2027","name":"2027 Regular Season","venue":"ven_8f3k2m9q1x7c4b0d","chart":"cht_4k9q2m8f1x7c3b0d","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"],"livemode":true,"created_at":"2026-10-14T13:10:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons/{id}/events":{"post":{"tags":["Seasons"],"summary":"Add events","description":"Puts events in the season. Upcoming ones get the season's booked seats; if one of those seats is taken at an event, nothing changes (409 names the event and seats).","operationId":"postSeasonsByIdEvents","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"events":{"minItems":1,"maxItems":200,"type":"array","items":{"type":"string","minLength":1},"description":"Events (ids or keys) on the season's chart."}},"required":["events"]},"example":{"events":["2027-08-30"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"ssn_3k2m9q1x7c4b0d8f","object":"season","key":"2027","name":"2027 Season","venue":"ven_8f3k2m9q1x7c4b0d","chart":"cht_4k9q2m8f1x7c3b0d","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"],"livemode":true,"created_at":"2026-10-14T13:10:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons/{id}/events/{event}":{"delete":{"tags":["Seasons"],"summary":"Remove an event","description":"Takes an event out of the season. Seats booked at it stay booked.","operationId":"deleteSeasonsByIdEventsByEvent","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"event","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"ssn_3k2m9q1x7c4b0d8f","object":"season","key":"2027","name":"2027 Season","venue":"ven_8f3k2m9q1x7c4b0d","chart":"cht_4k9q2m8f1x7c3b0d","events":["evt_9q1x7c4b0d8f3k2m"],"livemode":true,"created_at":"2026-10-14T13:10:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons/{id}/book":{"post":{"tags":["Seasons"],"summary":"Book for the season","description":"Books seats and GA places at every upcoming event in the season, all or nothing, and at events added to it later. Without an `order_ref` they're booked under `season:<season id>`. To give up one game, release the seat at that event: the season booking stays.","operationId":"postSeasonsByIdBook","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"order_ref":{"type":"string","maxLength":200,"description":"Your order reference. It's stored on each object, comes back from `/objects`, and `release` can free everything under it."},"metadata":{"type":"object","additionalProperties":{},"description":"Your own key–value data, stored on each booked object."}}},"example":{"objects":["204-C-12","204-C-13"],"order_ref":"STH-0042","metadata":{"holder":"Sam"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"season_booking","season":"ssn_3k2m9q1x7c4b0d8f","objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m"],"ga":[],"order_ref":"STH-0042","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons/{id}/release":{"post":{"tags":["Seasons"],"summary":"Release season seats","description":"Frees season seats at every upcoming event where they're still booked under the season booking's order. Games already played keep their history.","operationId":"postSeasonsByIdRelease","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"order_ref":{"type":"string","maxLength":200,"description":"Release everything booked for the season under this order reference."}}},"example":{"order_ref":"STH-0042"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"season_release","season":"ssn_3k2m9q1x7c4b0d8f","objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m"],"ga":[],"order_ref":"STH-0042","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/seasons/{id}/availability":{"get":{"tags":["Seasons"],"summary":"Season availability","description":"What's left to sell for the whole season: a seat is unavailable if it's taken at any upcoming event, and a GA area has the fewest places left at any of them.","operationId":"getSeasonsByIdAvailability","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"season_availability","season":"ssn_3k2m9q1x7c4b0d8f","events":["evt_9q1x7c4b0d8f3k2m","evt_0d8f3k2m9q1x7c4b"],"booked_for_season":412,"counts":{"booked":431,"held":3},"unavailable":{"s_4k9q2m8f1x7c":"booked"},"general_admission":{"p_lawn":{"label":"Lawn","category":"lawn","capacity":1500,"booked_for_season":0,"available":1180}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/availability":{"get":{"tags":["Inventory"],"summary":"Availability","description":"Every object that isn't available, with its status (`held`, `booked`, `not_for_sale` or your own), counts by status, and general admission by pool. Free seats kept for a channel you don't name show as `channel`. Poll it, or keep it fresh with webhooks.","operationId":"getEventsByIdAvailability","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"channels","in":"query","required":false,"description":"Comma-separated channel keys whose seats count as available (`NO_CHANNEL` for seats in none)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"availability","event":"evt_9q1x7c4b0d8f3k2m","counts":{"available":938,"booked":40,"held":2},"unavailable":{"s_4k9q2m8f1x7c":"booked"},"general_admission":{"p_lawn":{"label":"Lawn","category":"lawn","capacity":1500,"booked":120,"held":4,"blocked":50,"available":1326}}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/objects":{"get":{"tags":["Inventory"],"summary":"Object details","description":"Label parts, category, status, section, entrance, accessibility, hold, `order_ref` and metadata: what a ticket needs. Up to 500 at a time.","operationId":"getEventsByIdObjects","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"ids","in":"query","required":false,"description":"Comma-separated object ids","schema":{"type":"string"}},{"name":"labels","in":"query","required":false,"description":"Comma-separated labels (`204-C-12,Lawn`)","schema":{"type":"string"}},{"name":"order_ref","in":"query","required":false,"description":"Everything booked under this order reference (general admission pools carry `order_quantity`)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"s_4k9q2m8f1x7c","object":"event_object","kind":"seat","label":"204-C-12","displayed":{"section":"204","row":"C","seat":"12"},"category":"reserved","status":"booked","section":"sec_204","entrance":"Gate B","accessibility":[],"hold":null,"order_ref":"ORD-1042","metadata":{"buyer":"Sam"}}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/holds":{"post":{"tags":["Inventory"],"summary":"Hold seats","description":"Reserves objects and GA places while a buyer checks out. Publishable keys may call it: the seat map holds seats as buyers pick them. Book the hold when they pay; if you don't, it expires and the seats go back on sale.","operationId":"postHolds","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"event":{"type":"string","minLength":1,"description":"The event's id, or your key for it."},"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"ttl_seconds":{"default":900,"type":"integer","minimum":10,"maximum":7200,"description":"How long to hold, in seconds. A hold can't last past two hours after it was made."},"channels":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Sales channels whose seats this request may take. Without it, only seats in no channel; add `NO_CHANNEL` to the list to include those (and general admission, which is in no channel)."},"ignore_channels":{"type":"boolean","description":"Secret keys: take seats whatever channel they're in (back office)."}},"required":["event"]},"example":{"event":"2027-05-28-opening-night","objects":["204-C-12","204-C-13"],"ga":[{"pool":"Lawn","quantity":2}]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"hld_x7c4b0d8f3k2m9q1","object":"hold","event":"evt_9q1x7c4b0d8f3k2m","status":"active","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"expires_at":"2026-10-14T13:20:00.000Z","max_expires_at":"2026-10-14T15:05:00.000Z","livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/holds/{id}":{"get":{"tags":["Inventory"],"summary":"Get a hold","operationId":"getHoldsById","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"hld_x7c4b0d8f3k2m9q1","object":"hold","event":"evt_9q1x7c4b0d8f3k2m","status":"active","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"expires_at":"2026-10-14T13:20:00.000Z","max_expires_at":"2026-10-14T15:05:00.000Z","livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Inventory"],"summary":"Extend or change a hold","operationId":"patchHoldsById","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ttl_seconds":{"type":"integer","minimum":0,"maximum":7200,"description":"Hold for this many seconds from now (up to two hours after it was made)."},"add":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."}},"description":"Objects and GA places to add to the hold."},"remove":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."}},"description":"Objects and GA places to let go of."},"channels":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Sales channels whose seats this request may take. Without it, only seats in no channel; add `NO_CHANNEL` to the list to include those (and general admission, which is in no channel)."},"ignore_channels":{"type":"boolean","description":"Secret keys: take seats whatever channel they're in (back office)."}}},"example":{"ttl_seconds":600,"add":{"objects":["204-C-14"]}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"hld_x7c4b0d8f3k2m9q1","object":"hold","event":"evt_9q1x7c4b0d8f3k2m","status":"active","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"expires_at":"2026-10-14T13:20:00.000Z","max_expires_at":"2026-10-14T15:05:00.000Z","livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Inventory"],"summary":"Release a hold","operationId":"deleteHoldsById","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"hld_x7c4b0d8f3k2m9q1","object":"hold","event":"evt_9q1x7c4b0d8f3k2m","status":"released","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"expires_at":"2026-10-14T13:20:00.000Z","max_expires_at":"2026-10-14T15:05:00.000Z","livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/book":{"post":{"tags":["Inventory"],"summary":"Book","description":"Books a hold, or objects and GA places directly, under your `order_ref`. Objects must be available (or in the hold, or in a status in `if_status`); otherwise 409 with `conflicts` and nothing changes.","operationId":"postEventsByIdBook","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hold":{"type":"string","description":"A hold's id: books everything it holds (plus any `objects` or `ga` you add)."},"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"order_ref":{"type":"string","maxLength":200,"description":"Your order reference. It's stored on each object, comes back from `/objects`, and `release` can free everything under it."},"metadata":{"type":"object","additionalProperties":{},"description":"Your own key–value data, stored on each booked object."},"if_status":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Statuses the objects may also be in besides available, e.g. `[\"not_for_sale\"]` to book seats you'd blocked."},"channels":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Sales channels whose seats this request may take. Without it, only seats in no channel; add `NO_CHANNEL` to the list to include those (and general admission, which is in no channel)."},"ignore_channels":{"type":"boolean","description":"Secret keys: take seats whatever channel they're in (back office)."}}},"example":{"hold":"hld_x7c4b0d8f3k2m9q1","order_ref":"ORD-1042","metadata":{"buyer":"Sam"}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"status_change","event":"evt_9q1x7c4b0d8f3k2m","action":"book","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"order_ref":"ORD-1042"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/release":{"post":{"tags":["Inventory"],"summary":"Release","description":"Frees booked objects and GA places, by object and quantity or everything under an `order_ref`. Seats sold by venuery's own checkout are refunded there instead.","operationId":"postEventsByIdRelease","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"order_ref":{"type":"string","maxLength":200,"description":"Release everything booked under this order reference."}}},"example":{"order_ref":"ORD-1042"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"status_change","event":"evt_9q1x7c4b0d8f3k2m","action":"release","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"order_ref":"ORD-1042"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/move":{"post":{"tags":["Inventory"],"summary":"Edit an order","description":"Changes an order's seats: frees the ones in `remove` (they must be booked under `order_ref`) and books the ones in `add` under the same reference and metadata, in one transaction. A swap either happens whole or not at all (409 with `conflicts`).","operationId":"postEventsByIdMove","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"order_ref":{"type":"string","minLength":1,"maxLength":200,"description":"Your order reference. It's stored on each object, comes back from `/objects`, and `release` can free everything under it."},"remove":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Seats and tables to take out of the order; they go back on sale."},"add":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Seats and tables to add; they must be available."},"channels":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Sales channels whose seats this request may take. Without it, only seats in no channel; add `NO_CHANNEL` to the list to include those (and general admission, which is in no channel)."},"ignore_channels":{"type":"boolean","description":"Secret keys: take seats whatever channel they're in (back office)."}},"required":["order_ref"]},"example":{"order_ref":"ORD-1042","remove":["204-C-12","204-C-13"],"add":["204-A-5","204-A-6"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"order_change","event":"evt_9q1x7c4b0d8f3k2m","action":"move","order_ref":"ORD-1042","removed":["s_4k9q2m8f1x7c","s_4k9q2m8f1x7d"],"added":["s_2b7d1q0c9e3a","s_2b7d1q0c9e3b"]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/block":{"post":{"tags":["Inventory"],"summary":"Take seats off sale","description":"Puts available objects in `not_for_sale` or your own status (sponsor, camera…), and holds back GA places.","operationId":"postEventsByIdBlock","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"status":{"default":"not_for_sale","type":"string","pattern":"^[a-z0-9_]{1,40}$","description":"Where to put the objects: `not_for_sale` (default) or your own status, like `sponsor`."},"if_status":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Statuses the objects may also be in besides available, e.g. `[\"not_for_sale\"]` to book seats you'd blocked."}}},"example":{"objects":["101-A-1","101-A-2"],"status":"sponsor"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"status_change","event":"evt_9q1x7c4b0d8f3k2m","action":"block","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"order_ref":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/unblock":{"post":{"tags":["Inventory"],"summary":"Put seats back on sale","operationId":"postEventsByIdUnblock","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"status":{"default":"not_for_sale","type":"string","pattern":"^[a-z0-9_]{1,40}$","description":"The status they're in now (default `not_for_sale`)."},"if_status":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Statuses the objects may also be in besides available, e.g. `[\"not_for_sale\"]` to book seats you'd blocked."}}},"example":{"objects":["101-A-1","101-A-2"],"status":"sponsor"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"status_change","event":"evt_9q1x7c4b0d8f3k2m","action":"unblock","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"order_ref":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/status_changes/batch":{"post":{"tags":["Inventory"],"summary":"Many changes at once","description":"Up to 100 book, release, block and unblock changes, across events, in one transaction: all happen or none do. A failure says which `change` (its index) it was.","operationId":"postStatusChangesBatch","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"changes":{"minItems":1,"maxItems":100,"type":"array","items":{"oneOf":[{"type":"object","properties":{"hold":{"type":"string","description":"A hold's id: books everything it holds (plus any `objects` or `ga` you add)."},"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"order_ref":{"type":"string","maxLength":200,"description":"Your order reference. It's stored on each object, comes back from `/objects`, and `release` can free everything under it."},"metadata":{"type":"object","additionalProperties":{},"description":"Your own key–value data, stored on each booked object."},"if_status":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Statuses the objects may also be in besides available, e.g. `[\"not_for_sale\"]` to book seats you'd blocked."},"channels":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Sales channels whose seats this request may take. Without it, only seats in no channel; add `NO_CHANNEL` to the list to include those (and general admission, which is in no channel)."},"ignore_channels":{"type":"boolean","description":"Secret keys: take seats whatever channel they're in (back office)."},"event":{"type":"string","minLength":1,"description":"The event's id, or your key for it."},"action":{"type":"string","const":"book","description":"What to do: `book`, `release`, `block` or `unblock`."}},"required":["event","action"]},{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"order_ref":{"type":"string","maxLength":200,"description":"Your order reference. It's stored on each object, comes back from `/objects`, and `release` can free everything under it."},"event":{"type":"string","minLength":1,"description":"The event's id, or your key for it."},"action":{"type":"string","const":"release","description":"What to do: `book`, `release`, `block` or `unblock`."}},"required":["event","action"]},{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"status":{"default":"not_for_sale","type":"string","pattern":"^[a-z0-9_]{1,40}$","description":"block: the status to put them in (default `not_for_sale`). unblock: the status they're in now."},"if_status":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Statuses the objects may also be in besides available, e.g. `[\"not_for_sale\"]` to book seats you'd blocked."},"event":{"type":"string","minLength":1,"description":"The event's id, or your key for it."},"action":{"type":"string","const":"block","description":"What to do: `book`, `release`, `block` or `unblock`."}},"required":["event","action"]},{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."},"ga":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":120,"description":"A GA pool's id or label (`Lawn`)."},"quantity":{"type":"integer","minimum":1,"maximum":100000,"description":"How many places."}},"required":["pool","quantity"]},"description":"General admission places."},"status":{"default":"not_for_sale","type":"string","pattern":"^[a-z0-9_]{1,40}$","description":"block: the status to put them in (default `not_for_sale`). unblock: the status they're in now."},"if_status":{"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Statuses the objects may also be in besides available, e.g. `[\"not_for_sale\"]` to book seats you'd blocked."},"event":{"type":"string","minLength":1,"description":"The event's id, or your key for it."},"action":{"type":"string","const":"unblock","description":"What to do: `book`, `release`, `block` or `unblock`."}},"required":["event","action"]}]},"description":"Book, release, block or unblock changes, each with its `event` and `action` and that endpoint's fields."}},"required":["changes"]},"example":{"changes":[{"action":"book","event":"2027-05-28-opening-night","objects":["204-C-12"],"order_ref":"ORD-1043"},{"action":"release","event":"2027-05-29","order_ref":"ORD-0977"}]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"object":"status_change","event":"evt_9q1x7c4b0d8f3k2m","action":"book","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"order_ref":"ORD-1042"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/best_available":{"post":{"tags":["Inventory"],"summary":"Best available","description":"Picks the best places and holds (or books) them: side by side in one row without stranding a seat, closest to the chart's focal point; then nearby seats; then a whole table; then general admission. 409 when there aren't enough.","operationId":"postEventsByIdBestAvailable","security":[{"secretKey":[]},{"publishableKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"integer","minimum":1,"maximum":50,"description":"How many places."},"categories":{"maxItems":50,"type":"array","items":{"type":"string"},"description":"Only these category keys."},"sections":{"maxItems":200,"type":"array","items":{"type":"string"},"description":"Only these sections (ids or labels)."},"zone":{"type":"string","description":"Only this zone (id or name)."},"accessible_seats":{"default":0,"type":"integer","minimum":0,"maximum":50,"description":"How many of the places must be wheelchair spaces; their companion seats come with them."},"prevent_orphans":{"default":true,"type":"boolean","description":"Don't leave a single empty seat at a row's edge or between taken seats."},"action":{"default":"hold","type":"string","enum":["hold","book"],"description":"`hold` (default) or `book` the places found."},"ttl_seconds":{"type":"integer","minimum":10,"maximum":7200,"description":"For `hold`: how long, in seconds (default 900)."},"order_ref":{"type":"string","maxLength":200,"description":"Your order reference. It's stored on each object, comes back from `/objects`, and `release` can free everything under it."},"metadata":{"type":"object","additionalProperties":{},"description":"Your own key–value data, stored on each booked object."},"channels":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":40},"description":"Sales channels whose seats this request may take. Without it, only seats in no channel; add `NO_CHANNEL` to the list to include those (and general admission, which is in no channel)."},"ignore_channels":{"type":"boolean","description":"Secret keys: take seats whatever channel they're in (back office)."}},"required":["number"]},"example":{"number":4,"categories":["reserved"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"object":"best_available","next_to_each_other":true,"objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m"],"ga":[],"hold":{"id":"hld_x7c4b0d8f3k2m9q1","object":"hold","event":"evt_9q1x7c4b0d8f3k2m","status":"active","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"expires_at":"2026-10-14T13:20:00.000Z","max_expires_at":"2026-10-14T15:05:00.000Z","livemode":true,"created_at":"2026-10-14T13:05:00.000Z"}}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/channels":{"get":{"tags":["Channels"],"summary":"List channels","operationId":"getEventsByIdChannels","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"object":"channel","event":"evt_9q1x7c4b0d8f3k2m","key":"presale","name":"Season-holder presale","color":"#4f46e5","objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m"],"created_at":"2026-10-14T13:20:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Channels"],"summary":"Create a channel","description":"Keeps seats for one sales channel: a presale, a partner site, sponsors. Only holds, bookings and best-available requests that name the channel can take them. For `inventory` events.","operationId":"postEventsByIdChannels","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"key":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,40}$","description":"Your name for it in requests (letters, digits, `_` and `-`)."},"name":{"type":"string","minLength":1,"maxLength":80,"description":"What staff see. Buyers never see channel names."},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"A hex color for staff views, like `#4f46e5`."},"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Seats, tables and booths to put in it (by id or label). Each object is in one channel at most."}},"required":["key","name"]},"example":{"key":"presale","name":"Season-holder presale","objects":["204-C-12","204-C-13"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"object":"channel","event":"evt_9q1x7c4b0d8f3k2m","key":"presale","name":"Season-holder presale","color":"#4f46e5","objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m"],"created_at":"2026-10-14T13:20:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/channels/{key}":{"patch":{"tags":["Channels"],"summary":"Update a channel","operationId":"patchEventsByIdChannelsByKey","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80,"description":"A name people will see."},"color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}],"description":"A hex color for staff views, like `#4f46e5`."}}},"example":{"name":"Members presale"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"channel","event":"evt_9q1x7c4b0d8f3k2m","key":"presale","name":"Members presale","color":"#4f46e5","objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m"],"created_at":"2026-10-14T13:20:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Channels"],"summary":"Delete a channel","description":"Its seats go back on general sale.","operationId":"deleteEventsByIdChannelsByKey","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"channel","event":"evt_9q1x7c4b0d8f3k2m","key":"presale","name":"Season-holder presale","color":"#4f46e5","objects":[],"created_at":"2026-10-14T13:20:00.000Z","deleted":true}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/channels/{key}/objects":{"post":{"tags":["Channels"],"summary":"Add seats to a channel","description":"Moves them out of any other channel.","operationId":"postEventsByIdChannelsByKeyObjects","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."}}},"example":{"objects":["204-C-14"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"channel","event":"evt_9q1x7c4b0d8f3k2m","key":"presale","name":"Season-holder presale","color":"#4f46e5","objects":["s_4k9q2m8f1x7c","s_8f1x7c4k9q2m","s_1x7c4k9q2m8f"],"created_at":"2026-10-14T13:20:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"put":{"tags":["Channels"],"summary":"Replace a channel's seats","description":"The channel ends up with exactly these; an empty list empties it.","operationId":"putEventsByIdChannelsByKeyObjects","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"key","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"objects":{"default":[],"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"description":"Object ids (`s_…`, `t_…`) or labels (`204-C-12`). A table books whole."}}},"example":{"objects":["204-C-12"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"channel","event":"evt_9q1x7c4b0d8f3k2m","key":"presale","name":"Season-holder presale","color":"#4f46e5","objects":["s_4k9q2m8f1x7c"],"created_at":"2026-10-14T13:20:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook_endpoints":{"get":{"tags":["Webhooks"],"summary":"List endpoints","operationId":"getWebhookEndpoints","security":[{"secretKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"whe_2m8f4k9q1x7c3b0d","object":"webhook_endpoint","url":"https://tickets.example.com/hooks/venuery","events":["objects.booked","hold.expired"],"description":"Production","enabled":true,"created_at":"2026-10-14T13:00:00.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"tags":["Webhooks"],"summary":"Create an endpoint","description":"The response includes the signing `secret`, this once. Keep it to check signatures.","operationId":"postWebhookEndpoints","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":500,"format":"uri","description":"A public https URL that accepts POSTs."},"events":{"default":["*"],"minItems":1,"type":"array","items":{"type":"string","enum":["hold.created","hold.expired","objects.booked","objects.released","objects.status_changed","season.booked","season.released","order.completed","order.refunded","event.updated","chart.published","*"]},"description":"Notification types to send, or `[\"*\"]` (default) for all."},"description":{"type":"string","maxLength":200,"description":"A note for yourself."}},"required":["url"]},"example":{"url":"https://tickets.example.com/hooks/venuery","events":["objects.booked","hold.expired"],"description":"Production"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"id":"whe_2m8f4k9q1x7c3b0d","object":"webhook_endpoint","url":"https://tickets.example.com/hooks/venuery","events":["objects.booked","hold.expired"],"description":"Production","enabled":true,"created_at":"2026-10-14T13:00:00.000Z","secret":"whsec_…"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook_endpoints/{id}":{"get":{"tags":["Webhooks"],"summary":"Get an endpoint","operationId":"getWebhookEndpointsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"whe_2m8f4k9q1x7c3b0d","object":"webhook_endpoint","url":"https://tickets.example.com/hooks/venuery","events":["objects.booked","hold.expired"],"description":"Production","enabled":true,"created_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"tags":["Webhooks"],"summary":"Update an endpoint","operationId":"patchWebhookEndpointsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":500,"format":"uri","description":"A public https URL that accepts POSTs."},"events":{"default":["*"],"minItems":1,"type":"array","items":{"type":"string","enum":["hold.created","hold.expired","objects.booked","objects.released","objects.status_changed","season.booked","season.released","order.completed","order.refunded","event.updated","chart.published","*"]},"description":"Notification types to send, or `[\"*\"]` for all."},"description":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"description":"A note for yourself."},"enabled":{"type":"boolean","description":"Whether deliveries are sent."}}},"example":{"enabled":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"whe_2m8f4k9q1x7c3b0d","object":"webhook_endpoint","url":"https://tickets.example.com/hooks/venuery","events":["objects.booked","hold.expired"],"description":"Production","enabled":false,"created_at":"2026-10-14T13:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"delete":{"tags":["Webhooks"],"summary":"Delete an endpoint","operationId":"deleteWebhookEndpointsById","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"id":"whe_2m8f4k9q1x7c3b0d","object":"webhook_endpoint","url":"https://tickets.example.com/hooks/venuery","events":["objects.booked","hold.expired"],"description":"Production","enabled":true,"created_at":"2026-10-14T13:00:00.000Z","deleted":true}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/webhook_endpoints/{id}/deliveries":{"get":{"tags":["Webhooks"],"summary":"Recent deliveries","description":"The last 50, newest first.","operationId":"getWebhookEndpointsByIdDeliveries","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":1,"object":"webhook_delivery","notification":"ntf_812","type":"objects.booked","status":"succeeded","attempts":1,"last_status_code":200,"last_error":null,"created_at":"2026-10-14T13:06:00.000Z","delivered_at":"2026-10-14T13:06:01.000Z"}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/notifications":{"get":{"tags":["Webhooks"],"summary":"Poll notifications","description":"Everything that happened in the workspace, oldest first, for platforms that would rather poll than receive webhooks. Types: `hold.created`, `hold.expired`, `objects.booked`, `objects.released`, `objects.status_changed`, `season.booked`, `season.released`, `order.completed`, `order.refunded`, `event.updated`, `chart.published`.","operationId":"getNotifications","security":[{"secretKey":[]}],"parameters":[{"name":"after","in":"query","required":false,"description":"A notification id: only later ones","schema":{"type":"string"}},{"name":"types","in":"query","required":false,"description":"Comma-separated types","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"1–100 (default 25)","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"`next_cursor` from the previous page","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"list","data":[{"id":"ntf_812","object":"notification","type":"objects.booked","created_at":"2026-10-14T13:06:00.000Z","livemode":true,"data":{"object":"status_change","event":"evt_9q1x7c4b0d8f3k2m","action":"book","objects":["s_4k9q2m8f1x7c"],"ga":[{"pool":"p_lawn","quantity":2}],"order_ref":"ORD-1042"}}],"has_more":false,"next_cursor":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/event_manager_tokens":{"post":{"tags":["Staff embeds"],"summary":"Mint an event manager token","description":"A short-lived token for the event manager embed (`venuery.EventManager`), so staff screens never hold a secret key. It works on one event, only in the modes you give it, and stops working if the key that minted it is revoked. Make one per staff session on your server.","operationId":"postEventManagerTokens","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"event":{"type":"string","minLength":1,"description":"The event's id, or your key for it."},"modes":{"default":["view","sell","book","block"],"minItems":1,"maxItems":4,"type":"array","items":{"type":"string","enum":["view","sell","book","block"]},"description":"`view` (live statuses and search; always included), `sell` (point of sale: picks are held for you to book), `book` (book and release), `block` (take seats off sale and put them back). Default: all."},"ttl_seconds":{"default":3600,"type":"integer","minimum":60,"maximum":43200,"description":"How long it works, in seconds: 60 to 43,200 (12 hours). Default an hour."},"user":{"type":"string","minLength":1,"maxLength":100,"description":"Who it's for (shown in the status log as the actor), like a staff email."}},"required":["event"]},"example":{"event":"2027-05-28-opening-night","modes":["view","book","block"],"user":"sam@tickets.example.com"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"object":"event_manager_token","token":"emt_eyJ2IjoxLC…","event":"evt_9q1x7c4b0d8f3k2m","modes":["view","book","block"],"user":"sam@tickets.example.com","expires_at":"2027-05-28T19:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/designer_tokens":{"post":{"tags":["Staff embeds"],"summary":"Mint a designer token","description":"A short-lived token for the embedded designer (`venuery.Designer`): your customers draw and edit their charts on your pages, white label. It works on one chart, saves drafts, and publishes only with `publish`. Live keys need the Growth plan; test keys work on any plan.","operationId":"postDesignerTokens","security":[{"secretKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"chart":{"type":"string","minLength":1,"description":"A chart's id."},"modes":{"default":["edit"],"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["edit","publish"]},"description":"`edit` (save drafts; default) and/or `publish` (make versions events can use)."},"ttl_seconds":{"default":3600,"type":"integer","minimum":60,"maximum":43200,"description":"How long it works, in seconds: 60 to 43,200 (12 hours). Default an hour."},"user":{"type":"string","minLength":1,"maxLength":100,"description":"Who it's for, like an email."}},"required":["chart"]},"example":{"chart":"cht_4k9q2m8f1x7c3b0d","modes":["edit","publish"],"user":"venue-admin@example.com"}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"example":{"object":"designer_token","token":"edt_eyJ2IjoxLC…","chart":"cht_4k9q2m8f1x7c3b0d","modes":["edit","publish"],"user":"venue-admin@example.com","expires_at":"2027-05-28T19:00:00.000Z"}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/usage":{"get":{"tags":["Usage"],"summary":"Booked seats this month","description":"What you're billed for, by calendar month (UTC): seats, tables and booths booked through the API, once per event and once per season for season seats, plus GA places (the most booked at once in each area). Live keys see live usage; test keys see test usage, which is never billed. Stripe invoices by your plan's billing period.","operationId":"getUsage","security":[{"secretKey":[]}],"parameters":[{"name":"month","in":"query","required":false,"description":"`2027-05` (default: this month)","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"usage","month":"2027-05","livemode":true,"booked_seats":1873,"breakdown":{"event_seats":1204,"season_seats":412,"general_admission":257},"events":[{"event":"evt_9q1x7c4b0d8f3k2m","key":"2027-05-28-opening-night","name":"Opening Night","seats":611,"general_admission":120}],"seasons":[{"season":"ssn_3k2m9q1x7c4b0d8f","key":"2027","name":"2027 Season","seats":412,"general_admission":0}],"plan":"launch","included":750,"over_allowance":1123}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/scans":{"post":{"tags":["Gates"],"summary":"Scan a ticket at a gate","description":"For turnstiles, RFID readers and other access control: send what the reader read and open the gate when `allow` is true. It decides exactly as venuery's scanner app does: a ticket gets in once (`duplicate` after that, with the earlier scan), can go `out` and back in, and refunded or sent-on tickets are refused. Every scan is logged with its gate and device. Wristbands and cards work when their id is the ticket's external code (imported tickets keep the barcode they came with). Secret keys only.","operationId":"postEventsByIdScans","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":200,"description":"What the reader read: venuery's QR payload (`VNY1:…`), a ticket code, or a ticket's external code (another system's barcode, a wristband id)."},"direction":{"default":"in","type":"string","enum":["in","out"],"description":"`in` (default) or `out`."},"gate":{"type":"string","maxLength":40,"description":"Which gate or lane, for the scan log."},"device":{"type":"string","maxLength":64,"description":"The reader's own id, for the scan log."},"scanned_at":{"type":"string","format":"date-time","description":"When it was read, for scans a gate stored while offline (default: now)."}},"required":["code"]},"example":{"code":"VNY1:8K2M4Q9X:3F7B1C0D2E","gate":"North 2","device":"turnstile-n2"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"scan","event":"evt_9q1x7c4b0d8f3k2m","result":"admitted","allow":true,"message":"Admit","ticket":{"id":"tkt_7c2f9d1k3m8q","label":"Section 204 · Row C · Seat 12","type":"Adult","checked_in_at":"2027-05-28T22:41:07.000Z"},"previous":null}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/scan_list":{"get":{"tags":["Gates"],"summary":"Ticket list for offline gates","description":"Every ticket for the game with its codes and whether it's valid and inside, for gates that must keep checking when the network drops. Match a QR payload `VNY1:<code>:<signature>` by its code. Refuse `moved_codes` (they were replaced when a ticket was sent to someone else). Send the scans afterwards with `scanned_at` so the log and counts catch up. No names or emails.","operationId":"getEventsByIdScanList","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"scan_list","event":"evt_9q1x7c4b0d8f3k2m","generated_at":"2027-05-28T21:00:00.000Z","tickets":[{"id":"tkt_7c2f9d1k3m8q","code":"8K2M4Q9X","external_code":null,"label":"Section 204 · Row C · Seat 12","type":"Adult","valid":true,"inside":false}],"moved_codes":["Q3T6V1B8"]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{id}/import":{"post":{"tags":["Migration"],"summary":"Import a seats.io event's state","description":"Books, blocks and takes off sale the objects a seats.io event report lists, matched by label, in one transaction: all or nothing. Free and held objects are left alone. Imported bookings aren't billed and send no webhooks. Try it with `dry_run` first.","operationId":"postEventsByIdImport","security":[{"secretKey":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":false,"description":"Retry safely: the same key replays the first response for 24 hours.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"report":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200},"status":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"objectType":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"orderId":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"extraData":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"forSale":{"type":["boolean","null"]},"numBooked":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"numNotForSale":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["label"],"additionalProperties":{}}},{"type":"object","additionalProperties":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":200},"status":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]},"objectType":{"anyOf":[{"type":"string","maxLength":60},{"type":"null"}]},"orderId":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}]},"extraData":{"anyOf":[{"type":"object","additionalProperties":{}},{"type":"null"}]},"forSale":{"type":["boolean","null"]},"numBooked":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]},"numNotForSale":{"anyOf":[{"type":"integer","minimum":0},{"type":"null"}]}},"required":["label"],"additionalProperties":{}}}}],"description":"The report as seats.io returns it (`GET /reports/events/{key}/byStatus`, `byLabel` or `byOrderId`), or a flat list of its objects. Each needs `label` and `status`; `orderId`, `extraData`, `forSale`, `objectType`, `numBooked` and `numNotForSale` are used when present."},"ga_bookings":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"pool":{"type":"string","minLength":1,"maxLength":200,"description":"The GA area's label."},"quantity":{"type":"integer","minimum":1,"maximum":100000},"order_ref":{"type":"string","maxLength":200,"description":"The order (default: `default_order_ref`)."},"metadata":{"type":"object","additionalProperties":{},"description":"Your own key–value data, stored on each booked object."}},"required":["pool","quantity"]},"description":"General admission bookings per order. Without them, each area's `numBooked` becomes one booking."},"booked_statuses":{"default":["booked","resale"],"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":100},"description":"seats.io statuses that mean someone owns the seat. Any other status (except free and held) becomes a blocked status of the same name here."},"default_order_ref":{"default":"seatsio-import","type":"string","minLength":1,"maxLength":200,"description":"Order reference for bookings without an `orderId`."},"skip_unknown":{"default":false,"type":"boolean","description":"Import what matches and ignore labels this chart doesn't have. Otherwise they're listed and nothing is imported."},"dry_run":{"default":false,"type":"boolean","description":"Check everything and report what would happen, changing nothing."}},"required":["report"]},"example":{"dry_run":true,"report":{"booked":[{"label":"204-C-12","status":"booked","orderId":"ORD-881","extraData":{"buyer":"Sam"}},{"label":"Lawn","status":"booked","objectType":"GeneralAdmissionArea","numBooked":120}],"Sponsor":[{"label":"101-A-1","status":"Sponsor"}]}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"object":"state_import","event":"evt_9q1x7c4b0d8f3k2m","dry_run":true,"booked":{"objects":1,"orders":1,"ga":[{"pool":"p_lawn","quantity":120,"order_ref":"seatsio-import"}]},"blocked":{"sponsor":1},"ga_blocked":[],"skipped":{"free":0,"held":0,"unknown":0},"unknown":[]}}}},"default":{"description":"Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}