> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modulex.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# PagerDuty Integration for AI Agents & Workflows

> Incident management and on-call scheduling platform

{/* Self-hosted logo — build-time vendored from modulex.json / Iconify (see scripts/lib/logo.js). */}

<img src="https://mintcdn.com/modulexaillc/df8MOr-hXotYLTh5/logos/pagerduty.svg?fit=max&auto=format&n=df8MOr-hXotYLTh5&q=85&s=75d66dfb9aaa3749855ebb1856e08c9b" alt="PagerDuty logo" width="72" height="72" data-path="logos/pagerduty.svg" />

## Overview

Add **PagerDuty** to any ModuleX agent or workflow. Incident management, on-call scheduling, and alerting via the PagerDuty REST API (`api.pagerduty.com`).

<Info>
  **Categories**: Monitoring & Observability · Incident Management · Developer Tools & Infrastructure · **Auth**: OAuth2 · **Actions**: 4
</Info>

## Authentication

### OAuth2 Authentication

Connect using PagerDuty OAuth (recommended)

#### Required Credentials

| Field         | Description                       | Required | Format |
| ------------- | --------------------------------- | -------- | ------ |
| Client ID     | PagerDuty OAuth App Client ID     | Yes      | `-`    |
| Client Secret | PagerDuty OAuth App Client Secret | Yes      | `-`    |

#### OAuth Configuration

* **Authorization URL**: `https://identity.pagerduty.com/oauth/authorize`
* **Token URL**: `https://identity.pagerduty.com/oauth/token`
* **Scopes**: `read`, `write`

## Available Actions

<AccordionGroup>
  <Accordion title="trigger_incident — Trigger a new incident on a PagerDuty service">
    ### Parameters

    <ResponseField name="title" type="string" required>
      A succinct description of the nature, symptoms, cause, or effect of the incident
    </ResponseField>

    <ResponseField name="service_id" type="string" required>
      The ID of the PagerDuty service to trigger the incident on
    </ResponseField>

    <ResponseField name="urgency" type="string">
      The urgency of the incident: high or low
    </ResponseField>

    <ResponseField name="body_details" type="string">
      Additional incident details
    </ResponseField>

    <ResponseField name="incident_key" type="string">
      A string which identifies the incident. Subsequent requests with the same key and service will be rejected if an open incident matches
    </ResponseField>

    <ResponseField name="escalation_policy_id" type="string">
      The ID of the escalation policy to assign
    </ResponseField>

    <ResponseField name="assignee_ids" type="array">
      List of user IDs to assign to the incident
    </ResponseField>

    <ResponseField name="conference_bridge_number" type="string">
      Phone number for the conference bridge (format: +1 415-555-1212,,,,1234#)
    </ResponseField>

    <ResponseField name="conference_bridge_url" type="string">
      URL for the conference bridge (e.g. a web conference or Slack channel link)
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "IncidentSummary": {
          "additionalProperties": false,
          "description": "Core fields returned for an incident by the PagerDuty API.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Type"
            },
            "summary": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Summary"
            },
            "status": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Status"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Title"
            },
            "urgency": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Urgency"
            },
            "incident_key": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Incident Key"
            },
            "html_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Html Url"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            },
            "service": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service"
            },
            "escalation_policy": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Escalation Policy"
            },
            "assignments": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Assignments",
              "type": "array"
            }
          },
          "title": "IncidentSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "incident": {
          "anyOf": [
            {
              "$ref": "#/$defs/IncidentSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "TriggerIncidentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="acknowledge_incident — Acknowledge a triggered incident in PagerDuty">
    ### Parameters

    <ResponseField name="incident_id" type="string" required>
      The ID of the incident to acknowledge
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "IncidentSummary": {
          "additionalProperties": false,
          "description": "Core fields returned for an incident by the PagerDuty API.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Type"
            },
            "summary": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Summary"
            },
            "status": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Status"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Title"
            },
            "urgency": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Urgency"
            },
            "incident_key": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Incident Key"
            },
            "html_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Html Url"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            },
            "service": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service"
            },
            "escalation_policy": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Escalation Policy"
            },
            "assignments": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Assignments",
              "type": "array"
            }
          },
          "title": "IncidentSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "incident": {
          "anyOf": [
            {
              "$ref": "#/$defs/IncidentSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "AcknowledgeIncidentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="resolve_incident — Resolve a triggered or acknowledged incident in PagerDuty">
    ### Parameters

    <ResponseField name="incident_id" type="string" required>
      The ID of the incident to resolve
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "IncidentSummary": {
          "additionalProperties": false,
          "description": "Core fields returned for an incident by the PagerDuty API.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Type"
            },
            "summary": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Summary"
            },
            "status": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Status"
            },
            "title": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Title"
            },
            "urgency": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Urgency"
            },
            "incident_key": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Incident Key"
            },
            "html_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Html Url"
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Created At"
            },
            "service": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Service"
            },
            "escalation_policy": {
              "anyOf": [
                {
                  "additionalProperties": true,
                  "type": "object"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Escalation Policy"
            },
            "assignments": {
              "items": {
                "additionalProperties": true,
                "type": "object"
              },
              "title": "Assignments",
              "type": "array"
            }
          },
          "title": "IncidentSummary",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "incident": {
          "anyOf": [
            {
              "$ref": "#/$defs/IncidentSummary"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "ResolveIncidentOutput",
      "type": "object"
    }
    ```
  </Accordion>

  <Accordion title="find_oncall_user — Find the user on call for a specific PagerDuty schedule">
    ### Parameters

    <ResponseField name="schedule_id" type="string" required>
      The ID of the on-call schedule
    </ResponseField>

    <ResponseField name="user_id" type="string" required>
      The ID of the user to search for in the schedule
    </ResponseField>

    ### Response

    ```json theme={null}
    {
      "$defs": {
        "OncallUser": {
          "additionalProperties": false,
          "description": "A user found on-call for a schedule.",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Id"
            },
            "name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Name"
            },
            "email": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Email"
            },
            "type": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Type"
            },
            "html_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ],
              "default": null,
              "title": "Html Url"
            }
          },
          "title": "OncallUser",
          "type": "object"
        }
      },
      "additionalProperties": false,
      "properties": {
        "success": {
          "title": "Success",
          "type": "boolean"
        },
        "found": {
          "default": false,
          "title": "Found",
          "type": "boolean"
        },
        "user": {
          "anyOf": [
            {
              "$ref": "#/$defs/OncallUser"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "success"
      ],
      "title": "FindOncallUserOutput",
      "type": "object"
    }
    ```
  </Accordion>
</AccordionGroup>

## Limits & Quotas

* **Rate limits**: PagerDuty REST API allows up to 960 requests per minute (varies by account tier).
* **Throttling**: Requests exceeding the rate limit receive HTTP 429; implement client-side backoff.
* **Error model**: non-2xx responses raise `httpx.HTTPStatusError` (Pattern A). The caller should handle retries.

## Related integrations

<CardGroup cols={3}>
  <Card title="Datadog" href="/integrations/tools/datadog" />

  <Card title="Sentry" href="/integrations/tools/sentry" />

  <Card title="Algolia" href="/integrations/tools/algolia" />
</CardGroup>

## Links

* [PagerDuty](https://www.pagerduty.com)
