{"openapi":"3.1.0","info":{"title":"Healthchecks.io (BYOK) API","version":"0.1.0","description":"Healthchecks.io (BYOK) lets an AI assistant read your own Healthchecks.io data through the Healthchecks.io API with a key you supply (read-only API key of a project). Read-only: 4 tools (list_checks, get_check, list_flips, list_integrations). The BYOK key travels with each request, is used for that one call only and is never stored, logged or cached; it is only ever sent to healthchecks.io....\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-healthchecks.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-healthchecks/docs"},"termsOfService":"https://connectorbay.com/byok-healthchecks/terms"},"servers":[{"url":"https://byok-healthchecks.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-healthchecks/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_checks":{"post":{"operationId":"list_checks","summary":"List the checks of the key's project with name, status (new, up, grace, down, paused), schedule or timeout, grace time, ","description":"List the checks of the key's project with name, status (new, up, grace, down, paused), schedule or timeout, grace time, last and next expected ping. Filter by tag or slug. Use a read-only API key, which shows unique_key instead of the secret ping URLs. Use for \"Which of my Healthchecks.io checks are down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tag":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only checks with this tag.","title":"Tag"},"slug":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only checks with this slug.","title":"Slug"}},"title":"list_checksArguments","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_check":{"post":{"operationId":"get_check","summary":"Get one check by its unique_key: status, schedule, grace, tags, number of pings and last and next ping time. Use for \"Is","description":"Get one check by its unique_key: status, schedule, grace, tags, number of pings and last and next ping time. Use for \"Is my nightly-backup check on Healthchecks.io healthy\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_id":{"description":"The check's unique_key as returned by list_checks (a read-only API key shows unique_key instead of the ping UUID).","maxLength":64,"title":"Check Id","type":"string"}},"required":["check_id"],"title":"get_checkArguments","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_flips":{"post":{"operationId":"list_flips","summary":"List the status changes (up/down flips) of one check, newest first, within a time window: the last N seconds or between ","description":"List the status changes (up/down flips) of one check, newest first, within a time window: the last N seconds or between two Unix timestamps. Use for \"When did my Healthchecks.io check last go down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_id":{"description":"The check's unique_key as returned by list_checks (a read-only API key shows unique_key instead of the ping UUID).","maxLength":64,"title":"Check Id","type":"string"},"seconds":{"anyOf":[{"maximum":100000000,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Only flips from the last this-many seconds.","title":"Seconds"},"start":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only flips newer than this Unix timestamp (seconds).","title":"Start"},"end":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only flips older than this Unix timestamp (seconds).","title":"End"}},"required":["check_id"],"title":"list_flipsArguments","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_integrations":{"post":{"operationId":"list_integrations","summary":"List the notification integrations (channels) of the project with id, name and kind such as email, slack or webhook. Not","description":"List the notification integrations (channels) of the project with id, name and kind such as email, slack or webhook. Not available to read-only keys. Use for \"Which alert integrations are set up in Healthchecks.io\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_integrationsArguments","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}}}}