{"openapi":"3.1.0","info":{"title":"Tito (BYOK) API","version":"0.1.0","description":"Tito (BYOK) lets an AI assistant read your own Tito data through the Tito API with a key you supply (Tito Admin API token (secret, live or test mode)). Read-only: 11 tools (check_connection, list_events, list_past_events, get_event, list_releases, list_tickets, list_registrations, list_activities, list_checkin_lists, list_questions, list_refunds). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tito.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tito/docs"},"termsOfService":"https://connectorbay.com/byok-tito/terms"},"servers":[{"url":"https://byok-tito.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tito/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/check_connection":{"post":{"operationId":"check_connection","summary":"Check that the token works: shows whether it is authenticated, its lookup mode (live or test) and the account slugs it c","description":"Check that the token works: shows whether it is authenticated, its lookup mode (live or test) and the account slugs it can reach. Use for \"Is my Tito token valid and which accounts can it see\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"check_connectionArguments","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_events":{"post":{"operationId":"list_events","summary":"List an account's upcoming Tito events with dates, location, currency, live and test-mode flags and public URL. Use for ","description":"List an account's upcoming Tito events with dates, location, currency, live and test-mode flags and public URL. Use for \"What upcoming events does my Tito account biscuit-box have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug"],"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/list_past_events":{"post":{"operationId":"list_past_events","summary":"List an account's past Tito events with dates, location, currency and URL. Use for \"Which past events has biscuit-box ru","description":"List an account's past Tito events with dates, location, currency and URL. Use for \"Which past events has biscuit-box run on Tito\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug"],"title":"list_past_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 Tito event: title, dates, location, currency, live and test-mode flags, URL and its ticket releases. Use for \"Sh","description":"Get one Tito event: title, dates, location, currency, live and test-mode flags, URL and its ticket releases. Use for \"Show the Tito event 2026 of biscuit-box\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"}},"required":["account_slug","event_slug"],"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_releases":{"post":{"operationId":"list_releases","summary":"List an event's ticket releases with price, quantity, tickets sold, sale state and sale window. Use for \"How many ticket","description":"List an event's ticket releases with price, quantity, tickets sold, sale state and sale window. Use for \"How many tickets of each release were sold for event 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_releasesArguments","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_tickets":{"post":{"operationId":"list_tickets","summary":"List an event's tickets (newest first) with reference, attendee name, state, release and price; email and phone are not ","description":"List an event's tickets (newest first) with reference, attendee name, state, release and price; email and phone are not returned. Use for \"Who has a completed ticket for Tito event 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"states":{"anyOf":[{"enum":["complete","incomplete","unassigned","void"],"type":"string"},{"type":"null"}],"default":null,"description":"Show only tickets in this state: complete, incomplete, unassigned or void (void tickets are hidden by default).","title":"States"},"release":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tickets of this release slug, for example 'early-bird'.","title":"Release"},"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search over name, reference, company, tag and similar fields.","title":"Query"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_ticketsArguments","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_registrations":{"post":{"operationId":"list_registrations","summary":"List an event's registrations (orders) newest first with reference, buyer name, state, total, ticket count and refund fl","description":"List an event's registrations (orders) newest first with reference, buyer name, state, total, ticket count and refund flag; email is not returned. Use for \"How many registrations are complete for Tito event 2026 and what do they total\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"states":{"anyOf":[{"enum":["cancelled","complete","confirmed","incomplete","paid","unpaid"],"type":"string"},{"type":"null"}],"default":null,"description":"Show only registrations in this state: cancelled, complete, confirmed, incomplete, paid or unpaid.","title":"States"},"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search over name, reference, company and similar fields.","title":"Query"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_registrationsArguments","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_activities":{"post":{"operationId":"list_activities","summary":"List an event's activities (sessions or workshops) with capacity, allocation count and sold-out flag. Use for \"Which act","description":"List an event's activities (sessions or workshops) with capacity, allocation count and sold-out flag. Use for \"Which activities of Tito event 2026 are sold out\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_activitiesArguments","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_checkin_lists":{"post":{"operationId":"list_checkin_lists","summary":"List an event's check-in lists with their slug and title. Use for \"What check-in lists exist for Tito event 2026\".","description":"List an event's check-in lists with their slug and title. Use for \"What check-in lists exist for Tito event 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_checkin_listsArguments","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_questions":{"post":{"operationId":"list_questions","summary":"List the registration questions of an event with title, field type, required flag and number of answers. Use for \"What q","description":"List the registration questions of an event with title, field type, required flag and number of answers. Use for \"What questions does Tito event 2026 ask attendees\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_questionsArguments","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_refunds":{"post":{"operationId":"list_refunds","summary":"List an event's refunds with id, amount and creation time. Use for \"What refunds were issued for Tito event 2026\".","description":"List an event's refunds with id, amount and creation time. Use for \"What refunds were issued for Tito event 2026\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"account_slug":{"description":"Tito account slug (the first part of your event URLs, for example 'biscuit-box').","maxLength":200,"title":"Account Slug","type":"string"},"event_slug":{"description":"Event slug within the account (for example '2026'); list_events returns it.","maxLength":200,"title":"Event Slug","type":"string"},"page_number":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page Number"},"page_size":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Records per page (1 to 1000; the API default is 100).","title":"Page Size"}},"required":["account_slug","event_slug"],"title":"list_refundsArguments","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}}}}