{"openapi":"3.1.0","info":{"title":"Tidio (BYOK) API","version":"0.1.0","description":"Tidio (BYOK) lets an AI assistant read your own Tidio data through the Tidio API with a key you supply (Tidio OpenAPI client id (starts with ci_)). Read-only: 8 tools (list_contacts, get_contact, list_contact_messages, list_contact_properties, list_operators, list_departments, list_tickets, get_ticket). The BYOK key travels with each request, is used for that one call only and is never stored,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-tidio.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-tidio/docs"},"termsOfService":"https://connectorbay.com/byok-tidio/terms"},"servers":[{"url":"https://byok-tidio.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-tidio/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_contacts":{"post":{"operationId":"list_contacts","summary":"List Tidio contacts (identified widget visitors) with name, email, phone, country, email consent and custom properties. ","description":"List Tidio contacts (identified widget visitors) with name, email, phone, country, email consent and custom properties. Use for \"Who are my newest Tidio contacts\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the contact with this email address.","title":"Email"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"meta.cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_contactsArguments","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_contact":{"post":{"operationId":"get_contact","summary":"Get one Tidio contact by id. Use for \"Show Tidio contact ctc_0000000000000000\".","description":"Get one Tidio contact by id. Use for \"Show Tidio contact ctc_0000000000000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"contact_id":{"description":"Tidio contact id (get it from list_contacts).","maxLength":80,"title":"Contact Id","type":"string"}},"required":["contact_id"],"title":"get_contactArguments","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_contact_messages":{"post":{"operationId":"list_contact_messages","summary":"List the messages of one contact's Tidio conversation with author type (operator, contact, bot), text and time. Use for ","description":"List the messages of one contact's Tidio conversation with author type (operator, contact, bot), text and time. Use for \"What did Tidio contact ctc_0000000000000000 write\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"contact_id":{"description":"Tidio contact id (get it from list_contacts).","maxLength":80,"title":"Contact Id","type":"string"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"meta.cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"required":["contact_id"],"title":"list_contact_messagesArguments","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_contact_properties":{"post":{"operationId":"list_contact_properties","summary":"List the contact properties defined in Tidio (default and custom) with label and type. Use for \"Which contact properties","description":"List the contact properties defined in Tidio (default and custom) with label and type. Use for \"Which contact properties are defined in Tidio\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"meta.cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_contact_propertiesArguments","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_operators":{"post":{"operationId":"list_operators","summary":"List Tidio operators (chat agents) with email, role, active flag and last seen time. Use for \"Which Tidio operators were","description":"List Tidio operators (chat agents) with email, role, active flag and last seen time. Use for \"Which Tidio operators were active recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"meta.cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"title":"list_operatorsArguments","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_departments":{"post":{"operationId":"list_departments","summary":"List Tidio departments with id and name. Use for \"What departments does Tidio have\".","description":"List Tidio departments with id and name. Use for \"What departments does Tidio have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_departmentsArguments","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 Tidio tickets with subject, status (open, pending, solved), priority, contact email and assignee. Use for \"Which Ti","description":"List Tidio tickets with subject, status (open, pending, solved), priority, contact email and assignee. Use for \"Which Tidio tickets are still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"meta.cursor from the previous answer, to get the next page. Leave empty for the first page.","title":"Cursor"}},"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/get_ticket":{"post":{"operationId":"get_ticket","summary":"Get one Tidio ticket by id with its messages. Use for \"Show Tidio ticket tck_0000000000000000\".","description":"Get one Tidio ticket by id with its messages. Use for \"Show Tidio ticket tck_0000000000000000\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"ticket_id":{"description":"Tidio ticket id (get it from list_tickets).","maxLength":80,"title":"Ticket Id","type":"string"}},"required":["ticket_id"],"title":"get_ticketArguments","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}}}}