{"openapi":"3.1.0","info":{"title":"HelpCrunch (BYOK) API","version":"0.1.0","description":"HelpCrunch (BYOK) lets an AI assistant read your own HelpCrunch data through the HelpCrunch API with a key you supply (HelpCrunch API key (Settings > Developers > Public API; not the legacy key)). Read-only: 9 tools (get_organization, list_agents, list_departments, list_applications, list_customers, get_customer, list_chats, get_chat, list_chat_messages). The BYOK key travels with each request,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-helpcrunch.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-helpcrunch/docs"},"termsOfService":"https://connectorbay.com/byok-helpcrunch/terms"},"servers":[{"url":"https://byok-helpcrunch.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-helpcrunch/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_organization":{"post":{"operationId":"get_organization","summary":"Show basic HelpCrunch team information: domain and whether the team is online and chat is enabled. Use for \"Is my HelpCr","description":"Show basic HelpCrunch team information: domain and whether the team is online and chat is enabled. Use for \"Is my HelpCrunch team online\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_organizationArguments","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 HelpCrunch agents (team members) with name, email and role. Use for \"Who are the agents in HelpCrunch\".","description":"List HelpCrunch agents (team members) with name, email and role. Use for \"Who are the agents in HelpCrunch\".","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 agents to return (1 to 100; the API caps it at 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many to skip, for paging; compare with the total in the answer.","title":"Offset"}},"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_departments":{"post":{"operationId":"list_departments","summary":"List HelpCrunch departments with their agents. Use for \"What departments does HelpCrunch have\".","description":"List HelpCrunch departments with their agents. Use for \"What departments does HelpCrunch 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 departments to return (1 to 100; the API caps it at 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many to skip, for paging; compare with the total in the answer.","title":"Offset"}},"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_applications":{"post":{"operationId":"list_applications","summary":"List the HelpCrunch applications and channels (web, iOS, Android, Facebook, Instagram, Viber) with active flag. Use for ","description":"List the HelpCrunch applications and channels (web, iOS, Android, Facebook, Instagram, Viber) with active flag. Use for \"Which channels are connected to HelpCrunch\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_applicationsArguments","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_customers":{"post":{"operationId":"list_customers","summary":"List HelpCrunch customers (up to 100 per call) with name, email, company, phone, first and last seen time, country and t","description":"List HelpCrunch customers (up to 100 per call) with name, email, company, phone, first and last seen time, country and tags. Use for \"Who are my newest HelpCrunch customers\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort":{"anyOf":[{"enum":["customers.firstSeen","customers.lastSeen"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort customers by one of: customers.firstSeen, customers.lastSeen.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many customers to return (1 to 100; the API caps it at 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many to skip, for paging; compare with the total in the answer.","title":"Offset"}},"title":"list_customersArguments","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 HelpCrunch customer by numeric id. Use for \"Show HelpCrunch customer 542335\".","description":"Get one HelpCrunch customer by numeric id. Use for \"Show HelpCrunch customer 542335\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer_id":{"description":"Numeric HelpCrunch customer id.","maximum":999999999999,"minimum":1,"title":"Customer Id","type":"integer"}},"required":["customer_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":{"post":{"operationId":"list_chats","summary":"List HelpCrunch chats (up to 100 per call) with status, customer, assignee, department, rating and last message text. Us","description":"List HelpCrunch chats (up to 100 per call) with status, customer, assignee, department, rating and last message text. Use for \"Which HelpCrunch chats are still open\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"sort":{"anyOf":[{"enum":["chats.createdAt","chats.lastCustomerMessageAt","chats.lastMessageAt","chats.closedAt"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort chats by one of: chats.createdAt, chats.lastCustomerMessageAt, chats.lastMessageAt, chats.closedAt.","title":"Sort"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"asc or desc.","title":"Order"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many chats to return (1 to 100; the API caps it at 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many to skip, for paging; compare with the total in the answer.","title":"Offset"}},"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/get_chat":{"post":{"operationId":"get_chat","summary":"Get one HelpCrunch chat by numeric id: status, customer, assignee, department, rating and last message. Use for \"Show He","description":"Get one HelpCrunch chat by numeric id: status, customer, assignee, department, rating and last message. Use for \"Show HelpCrunch chat 1568834\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chat_id":{"description":"Numeric HelpCrunch chat id.","maximum":999999999999,"minimum":1,"title":"Chat Id","type":"integer"}},"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_chat_messages":{"post":{"operationId":"list_chat_messages","summary":"List the messages of a HelpCrunch chat, newest first (up to 100 per call), with sender, text and time. Use for \"What was","description":"List the messages of a HelpCrunch chat, newest first (up to 100 per call), with sender, text and time. Use for \"What was said in HelpCrunch chat 1568834\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"chat_id":{"description":"Numeric HelpCrunch chat id.","maximum":999999999999,"minimum":1,"title":"Chat Id","type":"integer"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many messages to return (1 to 100; the API caps it at 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many to skip, for paging; compare with the total in the answer.","title":"Offset"}},"required":["chat_id"],"title":"list_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}}}}