{"openapi":"3.1.0","info":{"title":"Hund (BYOK) API","version":"0.1.0","description":"Hund (BYOK) lets an AI assistant read your own Hund data through the Hund API with a key you supply (API key with global (account-wide) permissions). Read-only: 9 tools (list_status_pages, get_status_page, list_components, list_groups, list_issues, get_issue, list_issue_updates, list_watchdogs, list_events). The BYOK key travels with each request, is used for that one call only and is never...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hund.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hund/docs"},"termsOfService":"https://connectorbay.com/byok-hund/terms"},"servers":[{"url":"https://byok-hund.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hund/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_status_pages":{"post":{"operationId":"list_status_pages","summary":"List the account's status pages with name, subdomain, time zone, website, locale and enabled upgrades. Use for \"Which Hu","description":"List the account's status pages with name, subdomain, time zone, website, locale and enabled upgrades. Use for \"Which Hund status pages do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"title":"list_status_pagesArguments","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_status_page":{"post":{"operationId":"get_status_page","summary":"Get one status page's settings by ID. Use for \"Show Hund status page 5f1\".","description":"Get one status page's settings by ID. Use for \"Show Hund status page 5f1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"status_page_id":{"description":"The status page ObjectId, from list_status_pages.","maxLength":200,"title":"Status Page Id","type":"string"}},"required":["status_page_id"],"title":"get_status_pageArguments","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_components":{"post":{"operationId":"list_components","summary":"List monitored components with name, current status, uptime percentage, last event time and watchdog. Use for \"Which Hun","description":"List monitored components with name, current status, uptime percentage, last event time and watchdog. Use for \"Which Hund components are currently down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only components of this group ID.","title":"Group"},"issue":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only components affected by this issue ID.","title":"Issue"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"title":"list_componentsArguments","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 component groups with name, status, position and member component IDs. Use for \"How are my Hund components grouped\"","description":"List component groups with name, status, position and member component IDs. Use for \"How are my Hund components grouped\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"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_issues":{"post":{"operationId":"list_issues","summary":"List incidents and maintenances with title, label, specialization, timing and resolved or cancelled flags; filter to ong","description":"List incidents and maintenances with title, label, specialization, timing and resolved or cancelled flags; filter to ongoing, upcoming or resolved. Use for \"Are there any ongoing Hund incidents\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"component":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only issues affecting this component ID.","title":"Component"},"standing":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True for only ongoing issues.","title":"Standing"},"upcoming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True for only upcoming scheduled issues.","title":"Upcoming"},"resolved":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True for only resolved issues.","title":"Resolved"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"title":"list_issuesArguments","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_issue":{"post":{"operationId":"get_issue","summary":"Get one incident or maintenance with title, label, timing and flags. Use for \"Show Hund issue i1\".","description":"Get one incident or maintenance with title, label, timing and flags. Use for \"Show Hund issue i1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"issue_id":{"description":"The issue ObjectId, from list_issues.","maxLength":200,"title":"Issue Id","type":"string"}},"required":["issue_id"],"title":"get_issueArguments","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_issue_updates":{"post":{"operationId":"list_issue_updates","summary":"List the updates posted on one incident with label, time and whether they are in effect. Use for \"What updates were post","description":"List the updates posted on one incident with label, time and whether they are in effect. Use for \"What updates were posted on Hund issue i1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"issue_id":{"description":"The issue ObjectId, from list_issues.","maxLength":200,"title":"Issue Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"required":["issue_id"],"title":"list_issue_updatesArguments","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_watchdogs":{"post":{"operationId":"list_watchdogs","summary":"List watchdogs (the monitors behind components) with service type, high-frequency flag and latest status. Use for \"Which","description":"List watchdogs (the monitors behind components) with service type, high-frequency flag and latest status. Use for \"Which Hund watchdogs are failing\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"service_type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only watchdogs with this service.type, for example native.","title":"Service Type"},"high_frequency":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True or false to filter on high-frequency watchdogs.","title":"High Frequency"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"title":"list_watchdogsArguments","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_events":{"post":{"operationId":"list_events","summary":"List the account's event log (status changes, notifications) with kind, state, downtime and related object. Use for \"Wha","description":"List the account's event log (status changes, notifications) with kind, state, downtime and related object. Use for \"What status events did Hund record recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"kind":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only events of this kind.","title":"Kind"},"eventable_type":{"anyOf":[{"enum":["component","metric_provider","issue","notifier","subscription","status"],"type":"string"},{"type":"null"}],"default":null,"description":"Only events about this object type: component, metric_provider, issue, notifier, subscription or status.","title":"Eventable Type"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many results per page (1 to 100, default 10).","title":"Limit"},"starting_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor: the ID of the last item of the previous page, to get the next page.","title":"Starting After"}},"title":"list_eventsArguments","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}}}}