{"openapi":"3.1.0","info":{"title":"PagerDuty Account Config (BYOK) API","version":"0.1.0","description":"PagerDuty Account Config (BYOK) lets an AI assistant read your own PagerDuty Account Config data through the PagerDuty Account Config API with a key you supply (REST API key (read-only is enough)). Read-only: 9 tools (list_teams, get_team, list_maintenance_windows, list_tags, list_vendors, list_alert_grouping_settings, list_change_events, list_standards, list_abilities). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pagerduty-account-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pagerduty-account-config/docs"},"termsOfService":"https://connectorbay.com/byok-pagerduty-account-config/terms"},"servers":[{"url":"https://byok-pagerduty-account-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pagerduty-account-config/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_teams":{"post":{"operationId":"list_teams","summary":"List PagerDuty teams with name, description and default role. Filter by name text. Use for \"Which teams exist in PagerDu","description":"List PagerDuty teams with name, description and default role. Filter by name text. Use for \"Which teams exist in PagerDuty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only teams whose name matches this text.","title":"Query"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging (the answer's 'more' field says whether another page exists).","title":"Offset"}},"title":"list_teamsArguments","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_team":{"post":{"operationId":"get_team","summary":"Get one PagerDuty team by id: name, description, default role and URL (no member list). Use for \"Describe PagerDuty team","description":"Get one PagerDuty team by id: name, description, default role and URL (no member list). Use for \"Describe PagerDuty team PT1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"team_id":{"description":"Team id from list_teams.","maxLength":40,"title":"Team Id","type":"string"}},"required":["team_id"],"title":"get_teamArguments","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 (periods when services do not alert) with start, end, description, the services and the teams a","description":"List maintenance windows (periods when services do not alert) with start, end, description, the services and the teams affected. Filter by state, team or service. Use for \"Which PagerDuty maintenance windows are ongoing or coming up\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter":{"anyOf":[{"enum":["past","future","ongoing","open","all"],"type":"string"},{"type":"null"}],"default":null,"description":"Window state: past, future, ongoing, open (ongoing and future) or all.","title":"Filter"},"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only windows whose description matches this text.","title":"Query"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging (the answer's 'more' field says whether another page exists).","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/list_tags":{"post":{"operationId":"list_tags","summary":"List the tags in the account (labels applied to teams, users and escalation policies). Filter by label text. Use for \"Wh","description":"List the tags in the account (labels applied to teams, users and escalation policies). Filter by label text. Use for \"Which tags are used in PagerDuty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only tags whose label matches this text.","title":"Query"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging (the answer's 'more' field says whether another page exists).","title":"Offset"}},"title":"list_tagsArguments","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_vendors":{"post":{"operationId":"list_vendors","summary":"List the integration vendors PagerDuty supports (for example monitoring tools) with description, website and integration","description":"List the integration vendors PagerDuty supports (for example monitoring tools) with description, website and integration guide URL. Use for \"Does PagerDuty have an integration for Honeycomb\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only vendors whose name matches this text.","title":"Query"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging (the answer's 'more' field says whether another page exists).","title":"Offset"}},"title":"list_vendorsArguments","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_alert_grouping_settings":{"post":{"operationId":"list_alert_grouping_settings","summary":"List alert grouping settings (how alerts are merged into incidents): name, type, services, configuration and dates. Curs","description":"List alert grouping settings (how alerts are merged into incidents): name, type, services, configuration and dates. Cursor paging with after. Use for \"How does PagerDuty group alerts for our services\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"after":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next_cursor to fetch the next page.","title":"After"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"}},"title":"list_alert_grouping_settingsArguments","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_change_events":{"post":{"operationId":"list_change_events","summary":"List change events (deploys, config changes) sent to PagerDuty with summary, source, time, affected services and links. ","description":"List change events (deploys, config changes) sent to PagerDuty with summary, source, time, affected services and links. Filter by time range. Use for \"What changes were recorded in PagerDuty last week\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"since":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Start of the range as UTC ISO 8601, for example 2026-10-01T00:00:00Z.","title":"Since"},"until":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"End of the range as UTC ISO 8601.","title":"Until"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"How many results to skip, for paging (the answer's 'more' field says whether another page exists).","title":"Offset"}},"title":"list_change_eventsArguments","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_standards":{"post":{"operationId":"list_standards","summary":"List service standards (rules that technical services should meet) with name, description, active flag, resource type an","description":"List service standards (rules that technical services should meet) with name, description, active flag, resource type and inclusion and exclusion lists. Use for \"Which service standards are active in PagerDuty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"active":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to show only active standards, false for inactive ones.","title":"Active"}},"title":"list_standardsArguments","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_abilities":{"post":{"operationId":"list_abilities","summary":"List the feature abilities enabled for the account by name, for example teams or sso, which tells what the plan supports","description":"List the feature abilities enabled for the account by name, for example teams or sso, which tells what the plan supports. Use for \"Which features does my PagerDuty plan include\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_abilitiesArguments","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}}}}