{"openapi":"3.1.0","info":{"title":"HetrixTools (BYOK) API","version":"0.1.0","description":"HetrixTools (BYOK) lets an AI assistant read your own HetrixTools data through the HetrixTools API with a key you supply (HetrixTools API key). Read-only: 9 tools (list_uptime_monitors, get_uptime_report, list_downtimes, get_location_fail_log, list_blacklist_monitors, get_blacklist_report, list_status_pages, list_scheduled_maintenance, get_account_limits). 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-hetrixtools.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-hetrixtools/docs"},"termsOfService":"https://connectorbay.com/byok-hetrixtools/terms"},"servers":[{"url":"https://byok-hetrixtools.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-hetrixtools/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_uptime_monitors":{"post":{"operationId":"list_uptime_monitors","summary":"List uptime monitors with type, target, current up/down status, check frequency, uptime percentage, SSL and domain expir","description":"List uptime monitors with type, target, current up/down status, check frequency, uptime percentage, SSL and domain expiry and last check time; filter by name, target, category, type or status. Use for \"Which of my HetrixTools monitors are down right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return per page (1 to 200).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors whose name contains this text.","title":"Name"},"target":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors whose target contains this text.","title":"Target"},"category":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors in a category whose name contains this text.","title":"Category"},"type":{"anyOf":[{"enum":["website","ping","service","smtp","heartbeat"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this monitor type.","title":"Type"},"uptime_status":{"anyOf":[{"enum":["up","down"],"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors currently up or down.","title":"Uptime Status"},"monitor_status":{"anyOf":[{"enum":["active","paused","disabled","maint","maint_dnd"],"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors with this state.","title":"Monitor Status"},"order_by":{"anyOf":[{"enum":["name","created_at","last_check","last_status_change","uptime_status","monitor_status"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Order By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Order"}},"title":"list_uptime_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_uptime_report":{"post":{"operationId":"get_uptime_report","summary":"Get the uptime report of one monitor: uptime percentage, downtime counts and response-time summary for the last 1 to 30 ","description":"Get the uptime report of one monitor: uptime percentage, downtime counts and response-time summary for the last 1 to 30 days or a given month. Use for \"What was the uptime of my HetrixTools monitor over the last 30 days\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"The uptime monitor id, from the list_uptime_monitors answer.","maxLength":64,"title":"Monitor Id","type":"string"},"days":{"anyOf":[{"maximum":30,"minimum":1,"type":"integer"},{"type":"null"}],"default":7,"description":"Number of recent days to cover (1 to 30).","title":"Days"},"month":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Report for this month instead, as YYYY-MM (days is then ignored).","title":"Month"},"timezone":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Time zone offset used for the report, for example +02:00 or -5:30 (default UTC).","title":"Timezone"}},"required":["monitor_id"],"title":"get_uptime_reportArguments","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_downtimes":{"post":{"operationId":"list_downtimes","summary":"List the downtime periods of one uptime monitor (start, end, whether it was maintenance), newest first, optionally withi","description":"List the downtime periods of one uptime monitor (start, end, whether it was maintenance), newest first, optionally within a time range. Use for \"When was my HetrixTools monitor last down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"The uptime monitor id, from the list_uptime_monitors answer.","maxLength":64,"title":"Monitor Id","type":"string"},"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return per page (1 to 200).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"start_after":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only downtimes that started at or after this Unix timestamp (seconds).","title":"Start After"},"start_before":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Only downtimes that started at or before this Unix timestamp (seconds).","title":"Start Before"}},"required":["monitor_id"],"title":"list_downtimesArguments","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_location_fail_log":{"post":{"operationId":"get_location_fail_log","summary":"Get the log of failed checks of one uptime monitor by monitoring location, scanning back from now or from a given time. ","description":"Get the log of failed checks of one uptime monitor by monitoring location, scanning back from now or from a given time. Use for \"Which locations failed to reach my HetrixTools monitor recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"monitor_id":{"description":"The uptime monitor id, from the list_uptime_monitors answer.","maxLength":64,"title":"Monitor Id","type":"string"},"timestamp":{"anyOf":[{"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Unix timestamp (seconds) to start scanning back from; default is now.","title":"Timestamp"},"minutes":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"How many minutes that contain log entries to return (1 to 100).","title":"Minutes"}},"required":["monitor_id"],"title":"get_location_fail_logArguments","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_blacklist_monitors":{"post":{"operationId":"list_blacklist_monitors","summary":"List blacklist monitors (IP addresses and domains) with their target, status, whether they are listed and on which block","description":"List blacklist monitors (IP addresses and domains) with their target, status, whether they are listed and on which blocklists, and last check time. Use for \"Is any of my monitored IPs on a blacklist in HetrixTools\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return per page (1 to 200).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors whose name contains this text.","title":"Name"},"target":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only monitors whose target contains this text.","title":"Target"},"type":{"anyOf":[{"enum":["ipv4","domain"],"type":"string"},{"type":"null"}],"default":null,"description":"Only IPv4 or domain monitors.","title":"Type"},"listed":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for only listed monitors, false for only clean ones.","title":"Listed"},"order_by":{"anyOf":[{"enum":["name","target","listed","created_at","last_check"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort field.","title":"Order By"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction.","title":"Order"}},"title":"list_blacklist_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_blacklist_report":{"post":{"operationId":"get_blacklist_report","summary":"Get the blacklist report of one monitor for a day: which blocklists list it, with delisting links. Use for \"On which blo","description":"Get the blacklist report of one monitor for a day: which blocklists list it, with delisting links. Use for \"On which blocklists is my HetrixTools monitor 203.0.113.5 listed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"identifier":{"description":"Blacklist monitor id, or its IP address or hostname.","maxLength":253,"title":"Identifier","type":"string"},"date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Report date as YYYY-MM-DD (default today).","title":"Date"}},"required":["identifier"],"title":"get_blacklist_reportArguments","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 status pages with their type, monitors, password protection flag and the current announcement. Use for \"What status","description":"List status pages with their type, monitors, password protection flag and the current announcement. Use for \"What status pages do I have in HetrixTools\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results per page (1 to 100).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only the status page with this name.","title":"Name"}},"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_scheduled_maintenance":{"post":{"operationId":"list_scheduled_maintenance","summary":"List scheduled maintenance windows (monitor, start, end, time zone, recurrence), optionally for one uptime monitor. Use ","description":"List scheduled maintenance windows (monitor, start, end, time zone, recurrence), optionally for one uptime monitor. Use for \"What maintenance is scheduled in HetrixTools\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many results to return per page (1 to 200).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"monitor_id":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only windows of this uptime monitor id.","title":"Monitor Id"}},"title":"list_scheduled_maintenanceArguments","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_account_limits":{"post":{"operationId":"get_account_limits","summary":"Get the account's usage and limits: uptime and blacklist monitors, blacklist check credits, SMS credits, sub-accounts an","description":"Get the account's usage and limits: uptime and blacklist monitors, blacklist check credits, SMS credits, sub-accounts and v1/v2 API calls. Use for \"How close am I to my HetrixTools monitor limits\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_account_limitsArguments","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}}}}