{"openapi":"3.1.0","info":{"title":"Pingdom (BYOK) API","version":"0.1.0","description":"Pingdom (BYOK) lets an AI assistant read your own Pingdom data through the Pingdom API with a key you supply (Pingdom API token (Read access level is enough)). Read-only: 7 tools (list_checks, get_check, list_results, get_summary_average, get_summary_outage, list_maintenance_windows, get_credits). The BYOK key travels with each request, is used for that one call only and is never stored, logged...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pingdom.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pingdom/docs"},"termsOfService":"https://connectorbay.com/byok-pingdom/terms"},"servers":[{"url":"https://byok-pingdom.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pingdom/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 uptime checks with status (up, down, unconfirmed_down, unknown, paused), hostname, check interval in minutes, last ","description":"List uptime checks with status (up, down, unconfirmed_down, unknown, paused), hostname, check interval in minutes, last test and last error time and last response time in ms. Use for \"Which of my Pingdom checks are down\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":25000,"minimum":1,"type":"integer"},{"type":"null"}],"default":100,"description":"Maximum number of checks (default and maximum 25000).","title":"Limit"},"offset":{"anyOf":[{"maximum":1000000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of checks to skip (needs limit).","title":"Offset"},"tags":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only checks with these tags, comma-separated, for example 'nginx,apache'.","title":"Tags"},"include_tags":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include each check's tags.","title":"Include Tags"}},"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 a detailed description of one check: hostname, status, interval, notification settings and probe filters. Use for \"S","description":"Get a detailed description of one check: hostname, status, interval, notification settings and probe filters. Use for \"Show details of my Pingdom check 1234567\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_id":{"description":"Numeric check id from list_checks.","maximum":1000000000000,"minimum":1,"title":"Check Id","type":"integer"}},"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_results":{"post":{"operationId":"list_results","summary":"List raw test results of a check (default last 24 hours) with probe id, time, status, response time in ms and a status d","description":"List raw test results of a check (default last 24 hours) with probe id, time, status, response time in ms and a status description. Up to 1000 per call. Use for \"What were the latest Pingdom test results for my check\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_id":{"description":"Numeric check id from list_checks.","maximum":1000000000000,"minimum":1,"title":"Check Id","type":"integer"},"from_ts":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp (seconds).","title":"From Ts"},"to_ts":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp (seconds). Default: now.","title":"To Ts"},"status":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only results with these statuses, comma-separated from down, up, unconfirmed, unknown.","title":"Status"},"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Number of results (max 1000).","title":"Limit"},"offset":{"anyOf":[{"maximum":43200,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Results to skip (max 43200).","title":"Offset"}},"required":["check_id"],"title":"list_resultsArguments","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_summary_average":{"post":{"operationId":"get_summary_average","summary":"Get the average response time and the up/down/unknown totals for a check over a period. Use for \"What was the uptime and","description":"Get the average response time and the up/down/unknown totals for a check over a period. Use for \"What was the uptime and average response time of my Pingdom check last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_id":{"description":"Numeric check id from list_checks.","maximum":1000000000000,"minimum":1,"title":"Check Id","type":"integer"},"from_ts":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp (seconds).","title":"From Ts"},"to_ts":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp (seconds). Default: now.","title":"To Ts"},"include_uptime":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True to include uptime totals (seconds up, down, unknown).","title":"Include Uptime"}},"required":["check_id"],"title":"get_summary_averageArguments","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_summary_outage":{"post":{"operationId":"get_summary_outage","summary":"List the state changes (up, down, unknown) of a check in a period, which shows the outages. Default period is the last w","description":"List the state changes (up, down, unknown) of a check in a period, which shows the outages. Default period is the last week. Use for \"When was my Pingdom check down recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"check_id":{"description":"Numeric check id from list_checks.","maximum":1000000000000,"minimum":1,"title":"Check Id","type":"integer"},"from_ts":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Start of the period as a Unix timestamp (seconds).","title":"From Ts"},"to_ts":{"anyOf":[{"maximum":4102444800,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"End of the period as a Unix timestamp (seconds). Default: now.","title":"To Ts"},"order":{"anyOf":[{"enum":["asc","desc"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort order of the states.","title":"Order"}},"required":["check_id"],"title":"get_summary_outageArguments","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 maintenance windows with description, start and end (Unix seconds), recurrence and the checks they cover. Use for \"","description":"List maintenance windows with description, start and end (Unix seconds), recurrence and the checks they cover. Use for \"Which Pingdom maintenance windows are planned\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":1000,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Number of windows to list.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Offset of the list.","title":"Offset"}},"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/get_credits":{"post":{"operationId":"get_credits","summary":"Show Pingdom plan usage: check limit, available checks, SMS credits and RUM site limits. Use for \"How many Pingdom check","description":"Show Pingdom plan usage: check limit, available checks, SMS credits and RUM site limits. Use for \"How many Pingdom checks and SMS credits do I have left\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_creditsArguments","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}}}}