{"openapi":"3.1.0","info":{"title":"Hyperping (BYOK) API","version":"0.1.0","description":"Hyperping (BYOK) lets an AI assistant read your own Hyperping data through the Hyperping API with a key you supply (Hyperping API key (a read-only key is enough)). Read-only: 8 tools (list_monitors, get_monitor, list_monitor_groups, list_outages, list_incidents, list_maintenance_windows, list_status_pages, list_monitor_reports). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-hyperping.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hyperping/docs"},"termsOfService":"https://connectorbay.com/byok-hyperping/terms"},"servers":[{"url":"https://byok-hyperping.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hyperping/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_monitors":{"post":{"operationId":"list_monitors","summary":"List uptime monitors with URL, protocol, check frequency, regions, up/down status, pause flag and TLS and domain expiry ","description":"List uptime monitors with URL, protocol, check frequency, regions, up/down status, pause flag and TLS and domain expiry days. Filter by protocol or group. Use for \"Which Hyperping monitors are down right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"protocol":{"anyOf":[{"enum":["http","port","icmp","dns","browser"],"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors of this type.","title":"Protocol"},"group_id":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only monitors in this monitor group id (from list_monitor_groups).","title":"Group Id"},"external_id":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only the monitor with this external id.","title":"External Id"}},"title":"list_monitorsArguments","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_monitor":{"post":{"operationId":"get_monitor","summary":"Get one monitor's configuration: URL, method, expected keyword, frequency, regions, status, certificate and domain expir","description":"Get one monitor's configuration: URL, method, expected keyword, frequency, regions, status, certificate and domain expiry settings. Use for \"What are the settings of Hyperping monitor mon_3GhAQMYGEQuyUH\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_uuid":{"description":"Monitor id as returned by list_monitors, for example 'mon_3GhAQMYGEQuyUH'.","maxLength":64,"title":"Monitor Uuid","type":"string"}},"required":["monitor_uuid"],"title":"get_monitorArguments","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_monitor_groups":{"post":{"operationId":"list_monitor_groups","summary":"List the named groups that monitors are organised into, in display order. Use for \"Which monitor groups do I have in Hyp","description":"List the named groups that monitors are organised into, in display order. Use for \"Which monitor groups do I have in Hyperping\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_monitor_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_outages":{"post":{"operationId":"list_outages","summary":"List detected and manual outages, newest first, with start and end time, duration, severity, monitor and acknowledgement","description":"List detected and manual outages, newest first, with start and end time, duration, severity, monitor and acknowledgement. Page numbers start at 0. Use for \"Which outages are ongoing in Hyperping\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"status":{"anyOf":[{"enum":["all","ongoing","resolved"],"type":"string"},{"type":"null"}],"default":"all","description":"Filter by outage status.","title":"Status"},"type":{"anyOf":[{"enum":["all","manual","monitor"],"type":"string"},{"type":"null"}],"default":"all","description":"Filter by outage type.","title":"Type"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Search by description or incident number such as 'INC-123'.","title":"Search"}},"title":"list_outagesArguments","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_incidents":{"post":{"operationId":"list_incidents","summary":"List status page incidents with date, type, affected components, status pages and timeline updates. Use for \"What incide","description":"List status page incidents with date, type, affected components, status pages and timeline updates. Use for \"What incidents has Hyperping recorded on our status pages\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_incidentsArguments","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_maintenance_windows":{"post":{"operationId":"list_maintenance_windows","summary":"List scheduled maintenance windows with start and end time, affected monitors and status pages, and status (upcoming, on","description":"List scheduled maintenance windows with start and end time, affected monitors and status pages, and status (upcoming, ongoing, completed). Use for \"Is any Hyperping maintenance window scheduled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_maintenance_windowsArguments","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_status_pages":{"post":{"operationId":"list_status_pages","summary":"List the project's status pages with name, hostnames and whether they are password protected (20 per page, pages start a","description":"List the project's status pages with name, hostnames and whether they are password protected (20 per page, pages start at 0). Use for \"Which status pages do we run on Hyperping\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page number, starting at 0.","title":"Page"},"search":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by name, hostname or subdomain.","title":"Search"}},"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/list_monitor_reports":{"post":{"operationId":"list_monitor_reports","summary":"Get SLA percentage, outage count, total downtime and mean time to recovery per monitor for a period (default last 7 days","description":"Get SLA percentage, outage count, total downtime and mean time to recovery per monitor for a period (default last 7 days). Use for \"What was our uptime SLA per monitor last month in Hyperping\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"date_from":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the period, ISO 8601, for example 2026-01-01T00:00:00.000Z.","title":"Date From"},"date_to":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the period, ISO 8601, for example 2026-01-31T23:59:59.999Z.","title":"Date To"}},"title":"list_monitor_reportsArguments","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}}}}