CONNECT APP
Build with PagerDuty
Developer Tools
- OAuth
MCP
Give your agent PagerDuty tools
Every PagerDuty action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's PagerDuty account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "pagerduty",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Acknowledge Incident:
const result = await mcp.callTool({
name: "pagerduty-acknowledge-incident",
arguments: {
incidentId: "Incident ID",
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "pagerduty",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Acknowledge Incident:
result = await session.call_tool("pagerduty-acknowledge-incident", {
"incidentId": "Incident ID",
})API PROXY
Call the PagerDuty API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the PagerDuty API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.pagerduty.com/users/me",
})
// Any allowed PagerDuty endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.pagerduty.com/users/me
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkucGFnZXJkdXR5LmNvbS91c2Vycy9tZQ?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run PagerDuty actions from your backend
Connect a user's PagerDuty account once, then run Acknowledge Incident on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "pagerduty-acknowledge-incident",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
pagerduty: { authProvisionId: "apn_xxxxxxx" },
incidentId: "Incident ID",
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="pagerduty-acknowledge-incident",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"pagerduty": {"authProvisionId": "apn_xxxxxxx"},
"incidentId": "Incident ID",
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "pagerduty-acknowledge-incident",
"configured_props": {
"pagerduty": { "authProvisionId": "apn_xxxxxxx" },
"incidentId": "Incident ID"
}
}'TOOLS
PagerDuty actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Acknowledge Incident
actionDeprecated — use Update Incident instead. Acknowledge an incident. See the documentationWritev0.0.5 -
Add Note to Incident
actionAdd a text note to an incident. Notes are visible in the incident timeline and useful for documenting investigation steps, resolution details, or handoff notes. Use List Incidents or Get Incident to find the incident ID. See the documentationWritev0.0.2 -
Create Incident
actionTrigger a new incident on a PagerDuty service. Use List Services to find a service ID and List Escalation Policies to find a policy ID. Use List Priorities to find priority IDs. SetincidentKeyto a stable value derived from the alert source (e.g. a hash of title + service ID) to prevent duplicate incidents on retry — PagerDuty deduplicates open incidents with the same key on the same service. See the documentationWritev0.0.2 -
Create Schedule Override
actionOverride a schedule layer to assign a specific user for a time window. Use List Schedules to find a schedule ID and List Users to find the user ID. Time params use ISO 8601 with explicit UTC offset, e.g.2026-06-02T15:00:00-07:00. Always include the UTC offset — do not assume UTC; using the wrong offset will place the override in the wrong time slot. See the documentationWritev0.0.2 -
Create Service
actionCreate a new PagerDuty service. A service represents a system or application that generates incidents. Use List Escalation Policies to find a valid escalation policy ID (required). SetautoResolveTimeoutto0to disable auto-resolve. SetacknowledgementTimeoutto0to disable re-triggering after acknowledgment. See the documentationWritev0.0.2 -
Find Oncall User
actionFind the user on call for a specific schedule. See the documentationRead-onlyv0.0.5 -
Get Event Orchestration for Service
actionGet the active event orchestration routing rules configured for a service. Event orchestration routes incoming events to the right responders based on conditions. Use List Services to discover service IDs. See the documentationRead-onlyv0.0.2 -
Get Incident
actionGet full details for a single incident by ID, including its current status, urgency, assignments, andhtml_url. Use List Incidents to find the incident ID. See the documentationRead-onlyv0.0.2 -
Get Service Analytics
actionGet incident volume and MTTR (mean time to resolve) metrics for one or more services over a time range. Use List Services to discover service IDs. Time params use ISO 8601 with explicit UTC offset, e.g.2026-06-02T15:00:00-07:00. See the documentationRead-onlyv0.0.2 -
List Escalation Policies
actionList escalation policies in the PagerDuty account. Supports both exact name match (name) and substring search (query), plus team filtering. Use policy IDs with Create Incident, Create Service, and Update Escalation Policy. See the documentationRead-onlyv0.0.2 -
List Escalation Policy ID Options
actionRetrieves available options for the Escalation Policy ID field.Read-onlyv0.0.2 -
List Incident Change Events
actionList change events (deployments, config changes) correlated to an incident. Change events show what changed in your systems around the time the incident was triggered. Use List Incidents or Get Incident to find the incident ID. See the documentationRead-onlyv0.0.2 -
List Incident Workflows
actionList available incident automation workflows. Use workflow IDs with Start Incident Workflow to run automation on an active incident. Requires Business+ plan — accounts without this plan will receive empty results or a 402 error. See the documentationRead-onlyv0.0.2 -
List Incidents
actionList and filter incidents by status, urgency, service, or team. Default statuses aretriggeredandacknowledged(open incidents). Use List Services to discover service IDs and List Teams for team IDs. Time params use ISO 8601 with explicit UTC offset, e.g.2026-06-02T15:00:00-07:00. See the documentationRead-onlyv0.0.2 -
List Log Entries
actionList log entries (the audit trail of actions taken on an incident or across the account). WhenincidentIdis provided, scopes results to that incident's log entries. Otherwise returns account-wide log entries. Use List Incidents or Get Incident to find incident IDs. Time params use ISO 8601 with explicit UTC offset, e.g.2026-06-02T15:00:00-07:00. SetisOverview: trueto get only the most recent action per incident. See the documentationRead-onlyv0.0.2 -
List On-Call Schedule ID Options
actionRetrieves available options for the On-Call Schedule ID field.Read-onlyv0.0.2 -
List On-Calls
actionList on-call entries — who is on call right now or during a given time window. Filterable by schedule IDs or escalation policy IDs. Use List Schedules to discover schedule IDs and List Escalation Policies to discover policy IDs. Time params use ISO 8601 with explicit UTC offset, e.g.2026-06-02T15:00:00-07:00. Setearliest: trueto get one on-call entry per unique (schedule, escalation policy, escalation level) combination. See the documentationRead-onlyv0.0.2 -
List Priorities
actionList the priority levels configured for this PagerDuty account. Returns priority IDs and names (e.g. P1, P2, critical) useful for Create Incident and Update Incident. See the documentationRead-onlyv0.0.2 -
List Schedules
actionList on-call schedules in the PagerDuty account, optionally filtered by name. Returns schedule IDs and names useful for List On-Calls and Create Schedule Override. See the documentationRead-onlyv0.0.2 -
List Service ID Options
actionRetrieves available options for the Service ID field.Read-onlyv0.0.2 -
List Services
actionList services, optionally filtered by team or searched by name. Returns service IDs, names, status, andhtml_url. Use List Teams to discover team IDs for filtering. See the documentationRead-onlyv0.0.2 -
List Status Page Posts
actionList posts on a PagerDuty status page. Use List Status Pages to discover status page IDs. SetactiveOnly: trueto filter to currently active posts (client-side filter). Requires Business+ plan — accounts without this plan will receive empty results or a 402 error. See the documentationRead-onlyv0.0.2 -
List Status Pages
actionList configured PagerDuty status pages. Use status page IDs with List Status Page Posts to retrieve posts on a specific page. Requires Business+ plan — accounts without this plan will receive empty results or a 402 error. See the documentationRead-onlyv0.0.2 -
List Teams
actionList teams in the PagerDuty account, optionally filtered by name. Returns team IDs and names useful for filtering incidents, users, and services. See the documentationRead-onlyv0.0.2 -
List User ID Options
actionRetrieves available options for the User ID field.Read-onlyv0.0.2 -
List Users
actionList users in the PagerDuty account, searchable by name or email. Returns user IDs, names, emails, and roles. Optionally filter by team membership using team IDs from List Teams. See the documentationRead-onlyv0.0.2 -
Resolve Incident
actionDeprecated — use Update Incident instead. Resolve an incident. See the documentationWritev0.0.5 -
Start Incident Workflow
actionStart an automation workflow on an active incident. Use List Incident Workflows to discover available workflow IDs. Use List Incidents or Get Incident to find the incident ID. Requires Business+ plan — accounts without this plan will receive a 402 error. See the documentationWritev0.0.2 -
Trigger Incident
actionDeprecated — use Create Incident instead. Trigger an incident. See the documentationWritev0.0.6 -
Update Escalation Policy
actionUpdate an escalation policy's name, description, loop count, or escalation rules. By default, performs a read-then-merge: fetches the current policy and merges your changes before writing, so you only need to specify the fields you want to change. SetfullReplacement: trueto replace all rules wholesale — use with caution as this is destructive. Use List Escalation Policies to find the policy ID. Each escalation rule targets one or more users or schedules: providetargetsas an array of objects withidandtype(user_referenceorschedule_reference). See the documentationWritev0.0.2 -
Update Incident
actionUpdate an incident's status, title, urgency, priority, escalation policy, or assignments. Use List Incidents or Get Incident to find the incident ID. To acknowledge: setstatustoacknowledged. To resolve: setstatustoresolved. Use List Users to find user IDs for assignments and List Priorities for priority IDs. See the documentationWritev0.0.2
EVENTS
PagerDuty triggers
Event sources your backend can deploy for users and receive through a webhook.
MULTI-APP
Use PagerDuty with other popular apps
Most products don't stop at one integration. Pair PagerDuty with the other apps your users rely on, and ship use cases that span both.
- App slug
- pagerduty
- Authentication
- OAuth
- Categories
- Developer Tools
- Actions
- 31
- Triggers
- 2
- API proxy
- Available