{"openapi":"3.1.0","info":{"title":"Instatus (BYOK) API","version":"0.1.0","description":"Instatus (BYOK) lets an AI assistant read your own Instatus data through the Instatus API with a key you supply (Instatus API key). Read-only: 7 tools (list_pages, list_components, get_component, list_incidents, get_incident, list_maintenances, get_maintenance). 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...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-instatus.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-instatus/docs"},"termsOfService":"https://connectorbay.com/byok-instatus/terms"},"servers":[{"url":"https://byok-instatus.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-instatus/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_pages":{"post":{"operationId":"list_pages","summary":"List the status pages of the account with name, subdomain, custom domain, overall status (UP, HASISSUES, ALLUNDERMAINTEN","description":"List the status pages of the account with name, subdomain, custom domain, overall status (UP, HASISSUES, ALLUNDERMAINTENANCE and the granular outage states) and dates. Use for \"Which Instatus status pages do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"title":"list_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_components":{"post":{"operationId":"list_components","summary":"List the components of a status page with status (OPERATIONAL, UNDERMAINTENANCE, DEGRADEDPERFORMANCE, PARTIALOUTAGE, MAJ","description":"List the components of a status page with status (OPERATIONAL, UNDERMAINTENANCE, DEGRADEDPERFORMANCE, PARTIALOUTAGE, MAJOROUTAGE), description and group. Use for \"Which Instatus components are not operational\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_id":{"description":"Status page id from list_pages (a cuid such as 'ckf01fonve9i40a32oas5b0uw').","maxLength":60,"title":"Page Id","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["page_id"],"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/get_component":{"post":{"operationId":"get_component","summary":"Get one component of a status page by id. Use for \"Show Instatus component details\".","description":"Get one component of a status page by id. Use for \"Show Instatus component details\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_id":{"description":"Status page id from list_pages (a cuid such as 'ckf01fonve9i40a32oas5b0uw').","maxLength":60,"title":"Page Id","type":"string"},"component_id":{"description":"Component id from list_components.","maxLength":60,"title":"Component Id","type":"string"}},"required":["page_id","component_id"],"title":"get_componentArguments","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 incidents of a status page with status (INVESTIGATING, IDENTIFIED, MONITORING, RESOLVED), start and resolve time. F","description":"List incidents of a status page with status (INVESTIGATING, IDENTIFIED, MONITORING, RESOLVED), start and resolve time. Filter by status. Use for \"What incidents has my Instatus page had\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_id":{"description":"Status page id from list_pages (a cuid such as 'ckf01fonve9i40a32oas5b0uw').","maxLength":60,"title":"Page Id","type":"string"},"status":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only incidents with one of these statuses, comma-separated, for example 'INVESTIGATING,IDENTIFIED'.","title":"Status"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["page_id"],"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/get_incident":{"post":{"operationId":"get_incident","summary":"Get one incident by id: name, status, start and resolve time. Use for \"Show Instatus incident details\".","description":"Get one incident by id: name, status, start and resolve time. Use for \"Show Instatus incident details\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_id":{"description":"Status page id from list_pages (a cuid such as 'ckf01fonve9i40a32oas5b0uw').","maxLength":60,"title":"Page Id","type":"string"},"incident_id":{"description":"Incident id from list_incidents.","maxLength":60,"title":"Incident Id","type":"string"}},"required":["page_id","incident_id"],"title":"get_incidentArguments","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_maintenances":{"post":{"operationId":"list_maintenances","summary":"List maintenances of a status page with status (NOTSTARTEDYET, INPROGRESS, COMPLETED), planned start and duration in min","description":"List maintenances of a status page with status (NOTSTARTEDYET, INPROGRESS, COMPLETED), planned start and duration in minutes. Use for \"What maintenance is planned on my Instatus page\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_id":{"description":"Status page id from list_pages (a cuid such as 'ckf01fonve9i40a32oas5b0uw').","maxLength":60,"title":"Page Id","type":"string"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Results per page (1 to 100, default 50).","title":"Per Page"},"page":{"anyOf":[{"maximum":10000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"}},"required":["page_id"],"title":"list_maintenancesArguments","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_maintenance":{"post":{"operationId":"get_maintenance","summary":"Get one maintenance by id: status, start, duration and notification settings. Use for \"Show Instatus maintenance details","description":"Get one maintenance by id: status, start, duration and notification settings. Use for \"Show Instatus maintenance details\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_id":{"description":"Status page id from list_pages (a cuid such as 'ckf01fonve9i40a32oas5b0uw').","maxLength":60,"title":"Page Id","type":"string"},"maintenance_id":{"description":"Maintenance id from list_maintenances.","maxLength":60,"title":"Maintenance Id","type":"string"}},"required":["page_id","maintenance_id"],"title":"get_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}}}}