{"openapi":"3.1.0","info":{"title":"Seats.io (BYOK) API","version":"0.1.0","description":"Seats.io (BYOK) lets an AI assistant read your own Seats.io data through the Seats.io API with a key you supply (Seats.io secret workspace key). Read-only: 8 tools (list_events, get_event, list_charts, get_chart, get_event_availability_summary, get_event_status_summary, get_chart_category_summary, list_status_changes). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-seatsio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-seatsio/docs"},"termsOfService":"https://connectorbay.com/byok-seatsio/terms"},"servers":[{"url":"https://byok-seatsio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-seatsio/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_events":{"post":{"operationId":"list_events","summary":"List a workspace's events, newest first, with key, chart key, season flags and creation time. Page with start_after_id. ","description":"List a workspace's events, newest first, with key, chart key, season flags and creation time. Page with start_after_id. Use for \"Which events do I have in Seats.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 1000).","title":"Limit"},"start_after_id":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_page_starts_after value of the previous answer.","title":"Start After Id"}},"required":["region"],"title":"list_eventsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_event":{"post":{"operationId":"get_event","summary":"Get one event with its chart key, categories, channels, for-sale configuration and season flags. Use for \"Show the Seats","description":"Get one event with its chart key, categories, channels, for-sale configuration and season flags. Use for \"Show the Seats.io event summer-gala-2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"event_key":{"description":"Key of the event, for example 'summer-gala-2026' (the key field from list_events).","maxLength":100,"title":"Event Key","type":"string"}},"required":["region","event_key"],"title":"get_eventArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_charts":{"post":{"operationId":"list_charts","summary":"List the seating charts of a workspace, newest first, with key, name, status, tags and archive flag. Can filter by name ","description":"List the seating charts of a workspace, newest first, with key, name, status, tags and archive flag. Can filter by name or tag. Use for \"Which seating charts do I have in Seats.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"filter":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only charts whose name contains this text (case insensitive).","title":"Filter"},"tag":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only charts with this tag.","title":"Tag"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 1000).","title":"Limit"},"start_after_id":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_page_starts_after value of the previous answer.","title":"Start After Id"}},"required":["region"],"title":"list_chartsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_chart":{"post":{"operationId":"get_chart","summary":"Get one seating chart with name, status, tags, venue type and validation errors and warnings. Use for \"Show Seats.io cha","description":"Get one seating chart with name, status, tags, venue type and validation errors and warnings. Use for \"Show Seats.io chart 6451436c-24fb-11e7-93ae-92361f002671\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"chart_key":{"description":"Key of the chart (a UUID, the key field from list_charts).","maxLength":100,"title":"Chart Key","type":"string"}},"required":["region","chart_key"],"title":"get_chartArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_event_availability_summary":{"post":{"operationId":"get_event_availability_summary","summary":"Count the available and unavailable seats of an event, with breakdowns by section, category and status. Use for \"How man","description":"Count the available and unavailable seats of an event, with breakdowns by section, category and status. Use for \"How many seats are still available for Seats.io event summer-gala-2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"event_key":{"description":"Key of the event, for example 'summer-gala-2026' (the key field from list_events).","maxLength":100,"title":"Event Key","type":"string"}},"required":["region","event_key"],"title":"get_event_availability_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_event_status_summary":{"post":{"operationId":"get_event_status_summary","summary":"Count the objects of an event per status (free, booked, held and so on), with breakdowns by section and category. The ke","description":"Count the objects of an event per status (free, booked, held and so on), with breakdowns by section and category. The keys of the answer are the statuses. Use for \"How many seats are booked for Seats.io event summer-gala-2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"event_key":{"description":"Key of the event, for example 'summer-gala-2026' (the key field from list_events).","maxLength":100,"title":"Event Key","type":"string"}},"required":["region","event_key"],"title":"get_event_status_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_chart_category_summary":{"post":{"operationId":"get_chart_category_summary","summary":"Count the bookable objects of a chart per category label, with a breakdown by section. The keys of the answer are the ca","description":"Count the bookable objects of a chart per category label, with a breakdown by section. The keys of the answer are the category labels. Use for \"How many seats per category does Seats.io chart 6451436c have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"chart_key":{"description":"Key of the chart (a UUID, the key field from list_charts).","maxLength":100,"title":"Chart Key","type":"string"}},"required":["region","chart_key"],"title":"get_chart_category_summaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_status_changes":{"post":{"operationId":"list_status_changes","summary":"List the booking, hold and release changes of an event's seats, newest first, with object label, status, order id and ti","description":"List the booking, hold and release changes of an event's seats, newest first, with object label, status, order id and time. Use for \"What seat status changes happened for Seats.io event summer-gala-2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Region of the Seats.io account: api-eu (Europe), api-na (North America), api-sa (South America) or api-oc (Oceania). It is shown on the company settings page.","enum":["api-eu","api-na","api-sa","api-oc"],"title":"Region","type":"string"},"event_key":{"description":"Key of the event, for example 'summer-gala-2026' (the key field from list_events).","maxLength":100,"title":"Event Key","type":"string"},"filter":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only changes of the object with this label, for example 'A-1'.","title":"Filter"},"sort":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Order, for example objectLabel:desc.","title":"Sort"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return (1 to 1000).","title":"Limit"},"start_after_id":{"anyOf":[{"maximum":2147483647,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Cursor for the next page: the next_page_starts_after value of the previous answer.","title":"Start After Id"}},"required":["region","event_key"],"title":"list_status_changesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}