{"openapi":"3.1.0","info":{"title":"Channel Talk (BYOK) API","version":"0.1.0","description":"Channel Talk (BYOK) lets an AI assistant read your own Channel Talk data through the Channel Talk API with a key you supply (API access key). Read-only: 12 tools (get_channel, list_managers, list_user_chats, get_user_chat, list_user_chat_messages, get_customer, list_chats_of_customer, list_groups, list_group_messages, list_chat_tags, list_campaigns, list_call_logs). The BYOK key travels with each...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-channeltalk.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-channeltalk/docs"},"termsOfService":"https://connectorbay.com/byok-channeltalk/terms"},"servers":[{"url":"https://byok-channeltalk.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-channeltalk/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/get_channel":{"post":{"operationId":"get_channel","summary":"Show the Channel Talk workspace the access key belongs to: name, domain, state, time zone, country and whether it is in ","description":"Show the Channel Talk workspace the access key belongs to: name, domain, state, time zone, country and whether it is in operation. Use for \"Which Channel Talk workspace is this key for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_channelArguments","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_managers":{"post":{"operationId":"list_managers","summary":"List the team members (managers) of the workspace with role, operator flag, status text and whether they were removed. E","description":"List the team members (managers) of the workspace with role, operator flag, status text and whether they were removed. Emails and phone numbers are not returned. Use for \"Who are the managers in my Channel Talk workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"}},"title":"list_managersArguments","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_user_chats":{"post":{"operationId":"list_user_chats","summary":"List customer conversations (user chats), newest first, filtered by state and an optional time range of at most 30 days.","description":"List customer conversations (user chats), newest first, filtered by state and an optional time range of at most 30 days. Use for \"Which Channel Talk customer chats are open right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"state":{"anyOf":[{"enum":["opened","closed","snoozed","queued","initial","missed"],"type":"string"},{"type":"null"}],"default":null,"description":"Chat state to keep.","title":"State"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Order of results: desc (newest first, default) or asc.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"},"time_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the time range as Unix milliseconds (give together with time_to; range up to 30 days).","title":"Time From"},"time_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End of the time range (exclusive) as Unix milliseconds.","title":"Time To"},"date_time_field_name":{"anyOf":[{"enum":["deskUpdatedAt","managedAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Which time the range filters on: deskUpdatedAt (default) or managedAt.","title":"Date Time Field Name"}},"title":"list_user_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/get_user_chat":{"post":{"operationId":"get_user_chat","summary":"Get one customer conversation with its state, assignee, tags, timestamps and the customer's name. Use for \"Show Channel ","description":"Get one customer conversation with its state, assignee, tags, timestamps and the customer's name. Use for \"Show Channel Talk chat 65f0c0a1d2e3f4a5b6c7d8e9\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_chat_id":{"description":"User chat id from list_user_chats.","maxLength":200,"title":"User Chat Id","type":"string"}},"required":["user_chat_id"],"title":"get_user_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_user_chat_messages":{"post":{"operationId":"list_user_chat_messages","summary":"List the messages of one customer conversation (text, sender type, time), newest first by default; a time range must be ","description":"List the messages of one customer conversation (text, sender type, time), newest first by default; a time range must be at most 30 days. Use for \"What was said in Channel Talk chat 65f0c0a1d2e3f4a5b6c7d8e9\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_chat_id":{"description":"User chat id from list_user_chats.","maxLength":200,"title":"User Chat Id","type":"string"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Order of results: desc (newest first, default) or asc.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"},"time_from":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the creation-time range as Unix milliseconds (give together with time_to).","title":"Time From"},"time_to":{"anyOf":[{"type":"integer"},{"type":"null"}],"default":null,"description":"End of the range (exclusive) as Unix milliseconds.","title":"Time To"}},"required":["user_chat_id"],"title":"list_user_chat_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/get_customer":{"post":{"operationId":"get_customer","summary":"Get one customer (user) by id: name, type, whether a member, location, language, last seen time, session count and tags.","description":"Get one customer (user) by id: name, type, whether a member, location, language, last seen time, session count and tags. Contact details are not returned. Use for \"Who is Channel Talk customer 65f0c0a1d2e3f4a5b6c7d8e0\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Customer (user) id, for example from a chat's userId.","maxLength":200,"title":"User Id","type":"string"}},"required":["user_id"],"title":"get_customerArguments","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_chats_of_customer":{"post":{"operationId":"list_chats_of_customer","summary":"List the conversations of one customer, with state, assignee, tags and timestamps. Use for \"What chats has Channel Talk ","description":"List the conversations of one customer, with state, assignee, tags and timestamps. Use for \"What chats has Channel Talk customer 65f0c0a1d2e3f4a5b6c7d8e0 had\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"user_id":{"description":"Customer (user) id.","maxLength":200,"title":"User Id","type":"string"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"}},"required":["user_id"],"title":"list_chats_of_customerArguments","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 public team-chat groups of the workspace, alphabetically, with title, description and member managers. Use for ","description":"List the public team-chat groups of the workspace, alphabetically, with title, description and member managers. Use for \"Which team chat groups exist in Channel Talk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"}},"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_group_messages":{"post":{"operationId":"list_group_messages","summary":"List messages posted in a team-chat group, newest first by default. Use for \"What was posted in Channel Talk group 65f0c","description":"List messages posted in a team-chat group, newest first by default. Use for \"What was posted in Channel Talk group 65f0c0a1d2e3f4a5b6c7d8f1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"Group id from list_groups.","maxLength":200,"title":"Group Id","type":"string"},"sort_order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":"desc","description":"Order of results: desc (newest first, default) or asc.","title":"Sort Order"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"}},"required":["group_id"],"title":"list_group_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_chat_tags":{"post":{"operationId":"list_chat_tags","summary":"List the chat tags defined in the workspace with name, key and description. Use for \"Which chat tags are defined in Chan","description":"List the chat tags defined in the workspace with name, key and description. Use for \"Which chat tags are defined in Channel Talk\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"}},"title":"list_chat_tagsArguments","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_campaigns":{"post":{"operationId":"list_campaigns","summary":"List marketing campaigns, most recently updated first, with name, state, send mode, start/end and medium. Use for \"Which","description":"List marketing campaigns, most recently updated first, with name, state, send mode, start/end and medium. Use for \"Which Channel Talk campaigns are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many items to return (1 to 500, default 25).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Opaque cursor (nextCursor) from the previous answer to get the next page.","title":"Cursor"}},"title":"list_campaignsArguments","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_call_logs":{"post":{"operationId":"list_call_logs","summary":"List voice call logs (Channel Meet) in a time range of at most 90 days: direction, state, missed reason and timestamps. ","description":"List voice call logs (Channel Meet) in a time range of at most 90 days: direction, state, missed reason and timestamps. Use for \"Which calls came in through Channel Talk last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"time_from":{"description":"Start of the range as Unix milliseconds.","title":"Time From","type":"integer"},"time_to":{"description":"End of the range as Unix milliseconds (at most 90 days after time_from).","title":"Time To","type":"integer"}},"required":["time_from","time_to"],"title":"list_call_logsArguments","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}}}}