# List Escalation Policies — PagerDuty

> List 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…

- Key: `pagerduty-list-escalation-policies`
- Type: Action (Read-only)
- Version: 0.0.2
- App: PagerDuty (`pagerduty`) — https://pipedream.com/apps/pagerduty.md
- This page (HTML): https://pipedream.com/apps/pagerduty/actions/list-escalation-policies
- Hints: read-only · open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/pagerduty/actions/list-escalation-policies/list-escalation-policies.mjs

## Description

List 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 documentation](https://developer.pagerduty.com/api-reference/51b21014a4f5a-list-escalation-policies)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `name` | `string` | No | Filter to the policy with exactly this name. |
| `query` | `string` | No | Filter policies by name substring. |
| `teamIds` | `string[]` | No | Filter to policies belonging to these teams (e.g., ["PABC123","PDEF456"]). |
| `limit` | `integer` | No | Maximum number of results to return (1–100). Default: 25. |
| `offset` | `integer` | No | Pagination offset. Default: 0. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
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 accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_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()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "pagerduty-list-escalation-policies",
  arguments: {
    name: "Name (Exact)",
    query: "Search Query",
  },
})
```

**TypeScript**

```ts
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-list-escalation-policies",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    pagerduty: { authProvisionId: "apn_xxxxxxx" },
    name: "Name (Exact)",
    query: "Search Query",
  },
})

console.log(result)
```

**cURL**

```bash
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-list-escalation-policies",
    "configured_props": {
      "pagerduty": { "authProvisionId": "apn_xxxxxxx" },
      "name": "Name (Exact)",
      "query": "Search Query"
    }
  }'
```

---

- App: https://pipedream.com/apps/pagerduty.md · All apps: https://pipedream.com/apps
