{"openapi":"3.1.0","info":{"title":"PagerDuty Incident Config (BYOK) API","version":"0.1.0","description":"PagerDuty Incident Config (BYOK) lets an AI assistant read your own PagerDuty Incident Config data through the PagerDuty Incident Config API with a key you supply (REST API key (read-only is enough)). Read-only: 8 tools (list_incident_types, get_incident_type, list_incident_type_custom_fields, list_incident_workflows, get_incident_workflow, list_workflow_triggers, list_workflow_actions,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-pagerduty-incident-config.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-pagerduty-incident-config/docs"},"termsOfService":"https://connectorbay.com/byok-pagerduty-incident-config/terms"},"servers":[{"url":"https://byok-pagerduty-incident-config.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-pagerduty-incident-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_incident_types":{"post":{"operationId":"list_incident_types","summary":"List incident types (categories such as major or security incident) with name, display name, description, enabled flag a","description":"List incident types (categories such as major or security incident) with name, display name, description, enabled flag and parent type. Use for \"Which incident types are defined in PagerDuty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"filter":{"anyOf":[{"enum":["enabled","disabled","all"],"type":"string"},{"type":"null"}],"default":"enabled","description":"Which types: enabled (default), disabled or all.","title":"Filter"}},"title":"list_incident_typesArguments","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_type":{"post":{"operationId":"get_incident_type","summary":"Get one incident type by id or name with description, enabled flag, parent and dates. Use for \"Describe the PagerDuty in","description":"Get one incident type by id or name with description, enabled flag, parent and dates. Use for \"Describe the PagerDuty incident type major_incident\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type_id_or_name":{"description":"Incident type id or name from list_incident_types, for example 'major_incident'.","maxLength":100,"title":"Type Id Or Name","type":"string"}},"required":["type_id_or_name"],"title":"get_incident_typeArguments","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_incident_type_custom_fields":{"post":{"operationId":"list_incident_type_custom_fields","summary":"List the custom fields of an incident type: name, display name, data type, field type, enabled flag and (optionally) all","description":"List the custom fields of an incident type: name, display name, data type, field type, enabled flag and (optionally) allowed options. Use for \"Which custom fields does the PagerDuty incident type major_incident have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type_id_or_name":{"description":"Incident type id or name from list_incident_types, for example 'major_incident'.","maxLength":100,"title":"Type Id Or Name","type":"string"}},"required":["type_id_or_name"],"title":"list_incident_type_custom_fieldsArguments","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_incident_workflows":{"post":{"operationId":"list_incident_workflows","summary":"List incident workflows with name, description, enabled flag, owning team and URL. Filter by name text; page with limit ","description":"List incident workflows with name, description, enabled flag, owning team and URL. Filter by name text; page with limit and offset. Use for \"Which incident workflows are set up in PagerDuty\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only workflows 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_incident_workflowsArguments","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_workflow":{"post":{"operationId":"get_incident_workflow","summary":"Get one incident workflow with its steps (action, description and configuration), enabled flag and owning team. Use for ","description":"Get one incident workflow with its steps (action, description and configuration), enabled flag and owning team. Use for \"Show the steps of PagerDuty incident workflow PWF1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"description":"Incident workflow id from list_incident_workflows.","maxLength":40,"title":"Workflow Id","type":"string"}},"required":["workflow_id"],"title":"get_incident_workflowArguments","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_workflow_triggers":{"post":{"operationId":"list_workflow_triggers","summary":"List incident workflow triggers (what starts a workflow): trigger type, condition, workflow, services covered and disabl","description":"List incident workflow triggers (what starts a workflow): trigger type, condition, workflow, services covered and disabled flag. Filter by workflow, service or type. Use for \"Which PagerDuty workflows start automatically on incidents\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only triggers that start this workflow id.","title":"Workflow Id"},"service_id":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only triggers configured for incidents of this service id.","title":"Service Id"},"trigger_type":{"anyOf":[{"enum":["manual","conditional","incident_type"],"type":"string"},{"type":"null"}],"default":null,"description":"Only this trigger type: manual, conditional or incident_type.","title":"Trigger Type"},"workflow_name_contains":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only triggers whose workflow name contains this text.","title":"Workflow Name Contains"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next_cursor to fetch the next page.","title":"Cursor"}},"title":"list_workflow_triggersArguments","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_workflow_actions":{"post":{"operationId":"list_workflow_actions","summary":"List the catalog of workflow actions that can be used in incident workflows: name, description, action type, tier, tags ","description":"List the catalog of workflow actions that can be used in incident workflows: name, description, action type, tier, tags and creation time. Filter by keyword. Use for \"Which actions can I use in PagerDuty incident workflows to post to Slack\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"keyword":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only actions tagged with this keyword.","title":"Keyword"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":25,"description":"How many results to return (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer's next_cursor to fetch the next page.","title":"Cursor"}},"title":"list_workflow_actionsArguments","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_workflow_action":{"post":{"operationId":"get_workflow_action","summary":"Get one workflow action by id with its description, tier, inputs and outputs. Use for \"What inputs does the PagerDuty wo","description":"Get one workflow action by id with its description, tier, inputs and outputs. Use for \"What inputs does the PagerDuty workflow action pagerduty.com:slack:post:1 take\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"action_id":{"description":"Workflow action id from list_workflow_actions.","maxLength":150,"title":"Action Id","type":"string"}},"required":["action_id"],"title":"get_workflow_actionArguments","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}}}}