{"openapi":"3.1.0","info":{"title":"Superchat (BYOK) API","version":"0.1.0","description":"Superchat (BYOK) lets an AI assistant read your own Superchat data through the Superchat API with a key you supply (Superchat API token). Read-only: 11 tools (get_workspace, list_channels, get_channel, list_inboxes, list_templates, list_template_folders, list_labels, list_label_folders, list_custom_attributes, list_contact_lists, list_webhook_subscriptions). 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-superchat.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-superchat/docs"},"termsOfService":"https://connectorbay.com/byok-superchat/terms"},"servers":[{"url":"https://byok-superchat.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-superchat/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_workspace":{"post":{"operationId":"get_workspace","summary":"Show the Superchat workspace the key belongs to and the user who owns the token (name, role). Use for \"Which Superchat w","description":"Show the Superchat workspace the key belongs to and the user who owns the token (name, role). Use for \"Which Superchat workspace is this API token for\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_workspaceArguments","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 connected messaging channels (WhatsApp, SMS, Instagram, email and others) with type, business phone number and ","description":"List the connected messaging channels (WhatsApp, SMS, Instagram, email and others) with type, business phone number and the inbox each belongs to. Use for \"Which messaging channels are connected to my Superchat workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"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}},"/v1/tools/get_channel":{"post":{"operationId":"get_channel","summary":"Get one channel: type, business phone number and inbox. Use for \"What is Superchat channel mc_1aBMS9FKwvSDjljRJI1aZ\".","description":"Get one channel: type, business phone number and inbox. Use for \"What is Superchat channel mc_1aBMS9FKwvSDjljRJI1aZ\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"channel_id":{"description":"Channel id with the mc_ prefix (from list_channels).","maxLength":60,"title":"Channel Id","type":"string"}},"required":["channel_id"],"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_inboxes":{"post":{"operationId":"list_inboxes","summary":"List inboxes with name, description and time zone. The agents assigned to each inbox are not returned. Use for \"Which in","description":"List inboxes with name, description and time zone. The agents assigned to each inbox are not returned. Use for \"Which inboxes does my Superchat workspace have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_inboxesArguments","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_templates":{"post":{"operationId":"list_templates","summary":"List message templates with approval status (for WhatsApp: submitted, approved, rejected, pending and others), type, bod","description":"List message templates with approval status (for WhatsApp: submitted, approved, rejected, pending and others), type, body text and folder. Filter by channel, folder or type. Use for \"Which of my Superchat WhatsApp templates are approved\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"channel_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only templates available on this channel id.","title":"Channel Id"},"folder_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only templates in this template folder id.","title":"Folder Id"},"template_type":{"anyOf":[{"enum":["generic_template","whats_app_template"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this content type.","title":"Template Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_templatesArguments","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_template_folders":{"post":{"operationId":"list_template_folders","summary":"List template folders with name and parent folder id. Use for \"How are my Superchat templates organised into folders\".","description":"List template folders with name and parent folder id. Use for \"How are my Superchat templates organised into folders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"parent_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only folders whose parent is this folder id.","title":"Parent Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_template_foldersArguments","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_labels":{"post":{"operationId":"list_labels","summary":"List conversation labels with name, colour and folder id. Use for \"Which labels can I put on Superchat conversations\".","description":"List conversation labels with name, colour and folder id. Use for \"Which labels can I put on Superchat conversations\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_labelsArguments","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_label_folders":{"post":{"operationId":"list_label_folders","summary":"List label folders with name and parent folder id. Use for \"How are my Superchat labels grouped into folders\".","description":"List label folders with name and parent folder id. Use for \"How are my Superchat labels grouped into folders\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"parent_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only folders whose parent is this folder id.","title":"Parent Id"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return (1 to 100, default 20).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_label_foldersArguments","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_custom_attributes":{"post":{"operationId":"list_custom_attributes","summary":"List the custom attributes defined for contacts, with data type and read-only flag. Use for \"Which custom contact fields","description":"List the custom attributes defined for contacts, with data type and read-only flag. Use for \"Which custom contact fields exist in my Superchat workspace\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_custom_attributesArguments","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_lists":{"post":{"operationId":"list_contact_lists","summary":"List contact lists with name and description (no contacts). Use for \"What contact lists do I have in Superchat\".","description":"List contact lists with name and description (no contacts). Use for \"What contact lists do I have in Superchat\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_contact_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_webhook_subscriptions":{"post":{"operationId":"list_webhook_subscriptions","summary":"List webhook subscriptions with target URL, delivery status and the event types they receive. Signing secrets are not re","description":"List webhook subscriptions with target URL, delivery status and the event types they receive. Signing secrets are not returned. Use for \"Which webhooks are set up in my Superchat workspace and are they delivering\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many items to return (1 to 100).","title":"Limit"},"after":{"anyOf":[{"maxLength":80,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: the pagination.next_cursor of the previous answer; returns items after that id (leave empty for the first page).","title":"After"}},"title":"list_webhook_subscriptionsArguments","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}}}}