{"openapi":"3.1.0","info":{"title":"LiveChat (BYOK) API","version":"0.1.0","description":"LiveChat (BYOK) lets an AI assistant read your own LiveChat data through the LiveChat API with a key you supply (LiveChat Account ID). Read-only: 9 tools (list_chats, list_archives, get_chat, list_threads, list_agents, list_groups, list_bots, list_canned_responses, list_channels). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-livechat.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-livechat/docs"},"termsOfService":"https://connectorbay.com/byok-livechat/terms"},"servers":[{"url":"https://byok-livechat.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-livechat/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_chats":{"post":{"operationId":"list_chats","summary":"List chat summaries the token can access (id, participants, last thread summary), newest first; filter active or inactiv","description":"List chat summaries the token can access (id, participants, last thread summary), newest first; filter active or inactive chats. Use for \"Which LiveChat chats are active right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for active chats only, false for inactive only; leave out for both.","title":"Active"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"desc (newest first, default) or asc (oldest first).","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100, default 10).","title":"Limit"},"page_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"next_page_id from the previous answer, to get the next page.","title":"Page Id"}},"title":"list_chatsArguments","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_archives":{"post":{"operationId":"list_archives","summary":"List archived chat threads with participants, messages (events), summary and group access, newest first. Can filter by d","description":"List archived chat threads with participants, messages (events), summary and group access, newest first. Can filter by date range, text query, customer email or group. Use for \"What did customers write in LiveChat last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search for in the chats.","title":"Query"},"from_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only threads from this time, RFC 3339 with microseconds, for example 2026-03-01T00:00:00.000000Z.","title":"From Time"},"to_time":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only threads up to this time, same format.","title":"To Time"},"customer_email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only chats of the customer with this email address.","title":"Customer Email"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"desc (newest first, default) or asc (oldest first).","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many records per page (1 to 100, default 10).","title":"Limit"},"page_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"next_page_id from the previous answer, to get the next page.","title":"Page Id"}},"title":"list_archivesArguments","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_chat":{"post":{"operationId":"get_chat","summary":"Get one chat thread by chat id (and optionally thread id) with its participants and messages. Use for \"Show LiveChat cha","description":"Get one chat thread by chat id (and optionally thread id) with its participants and messages. Use for \"Show LiveChat chat PJ0MRSHTDG\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chat_id":{"description":"LiveChat chat id (get it from list_chats).","maxLength":40,"title":"Chat Id","type":"string"},"thread_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Thread id inside the chat; the latest thread when left out.","title":"Thread Id"}},"required":["chat_id"],"title":"get_chatArguments","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_threads":{"post":{"operationId":"list_threads","summary":"List the threads of one LiveChat chat with their messages, newest first. Use for \"Show all threads of LiveChat chat PJ0M","description":"List the threads of one LiveChat chat with their messages, newest first. Use for \"Show all threads of LiveChat chat PJ0MRSHTDG\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chat_id":{"description":"LiveChat chat id (get it from list_chats).","maxLength":40,"title":"Chat Id","type":"string"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"desc (newest first, default) or asc (oldest first).","title":"Sort Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":3,"description":"How many records per page (1 to 100, default 10).","title":"Limit"},"page_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"next_page_id from the previous answer, to get the next page.","title":"Page Id"}},"required":["chat_id"],"title":"list_threadsArguments","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_agents":{"post":{"operationId":"list_agents","summary":"List the LiveChat agents with email, name, role, login status and job title. Use for \"Which LiveChat agents are acceptin","description":"List the LiveChat agents with email, name, role, login status and job title. Use for \"Which LiveChat agents are accepting chats\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"suspended":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for suspended agents only, false for not suspended; leave out for all.","title":"Suspended"}},"title":"list_agentsArguments","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_groups":{"post":{"operationId":"list_groups","summary":"List the LiveChat groups with name, language and routing status. Use for \"What groups does my LiveChat have\".","description":"List the LiveChat groups with name, language and routing status. Use for \"What groups does my LiveChat have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_groupsArguments","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_bots":{"post":{"operationId":"list_bots","summary":"List the bots created in the LiveChat license with id and name. Use for \"Which bots are set up in LiveChat\".","description":"List the bots created in the LiveChat license with id and name. Use for \"Which bots are set up in LiveChat\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"all":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True for every bot in the license, false for only the bots of the requester.","title":"All"}},"title":"list_botsArguments","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_canned_responses":{"post":{"operationId":"list_canned_responses","summary":"List canned responses with text, tags, group and privacy flag. Use for \"What canned responses does my LiveChat team use\"","description":"List canned responses with text, tags, group and privacy flag. Use for \"What canned responses does my LiveChat team use\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"include_private":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include private canned responses.","title":"Include Private"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"How many records per page (1 to 100, default 10).","title":"Limit"},"page_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"next_page_id from the previous answer, to get the next page.","title":"Page Id"}},"title":"list_canned_responsesArguments","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_channels":{"post":{"operationId":"list_channels","summary":"List the communication channels in use (code snippet, direct link, integrations) with their first activity time. Use for","description":"List the communication channels in use (code snippet, direct link, integrations) with their first activity time. Use for \"Which channels is LiveChat used on\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_channelsArguments","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}}}}