> **Building with AI coding agents?** If you're using an AI coding agent, install the official Scalekit plugin. It gives your agent full awareness of the Scalekit API — reducing hallucinations and enabling faster, more accurate code generation.
>
> - **Claude Code**: `/plugin marketplace add scalekit-inc/claude-code-authstack` then `/plugin install <auth-type>@scalekit-auth-stack`
> - **GitHub Copilot CLI**: `copilot plugin marketplace add scalekit-inc/github-copilot-authstack` then `copilot plugin install <auth-type>@scalekit-auth-stack`
> - **Codex**: run the bash installer, restart, then open Plugin Directory and enable `<auth-type>`
> - **Skills CLI** (Windsurf, Cline, 40+ agents): `npx skills add scalekit-inc/skills --list` then `--skill <skill-name>`
>
> `<auth-type>` / `<skill-name>`: `agent-auth`, `full-stack-auth`, `mcp-auth`, `modular-sso`, `modular-scim` — [Full setup guide](https://docs.scalekit.com/dev-kit/build-with-ai/)

---

# PagerDuty

<div class="grid grid-cols-5 gap-4 items-center">
 <div class="col-span-4">
  Connect to PagerDuty to manage incidents, services, users, teams, escalation policies, schedules, and on-call rotations.
 </div>
 <div class="flex justify-center">
  <img src="https://cdn.scalekit.cloud/sk-connect/assets/provider-icons/pagerduty.svg" width="64" height="64" alt="PagerDuty logo" />
 </div>
</div>

Supports authentication: OAuth 2.0

## Tool list

## `pagerduty_escalation_policies_list`

List escalation policies in PagerDuty. Supports filtering by query, user, team, and includes.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `include` | string | No | Additional resources to include. Options: services, teams, targets. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by name. |
| `sort_by` | string | No | Used to specify a field to sort the response on. Options: name, name:asc, name:desc. |
| `team_ids` | string | No | Comma-separated list of team IDs to filter escalation policies by. |
| `user_ids` | string | No | Comma-separated list of user IDs to filter escalation policies for. |

## `pagerduty_escalation_policy_create`

Create a new escalation policy in PagerDuty. Escalation policies define who gets notified and in what order when an incident is triggered.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | A description of the escalation policy. |
| `name` | string | Yes | The name of the escalation policy. |
| `num_loops` | integer | No | The number of times the escalation policy will repeat after reaching the end of its escalation rules. |
| `on_call_handoff_notifications` | string | No | Determines how on call handoff notifications will be sent for users on the escalation policy. Options: if_has_services, always. |
| `rule_escalation_delay_in_minutes` | integer | No | The number of minutes before an unacknowledged incident escalates to the next rule. |
| `target_id` | string | Yes | The ID of the user or schedule to notify in the first escalation rule. |
| `target_type` | string | No | The type of the first escalation rule target. Options: user_reference, schedule_reference. |

## `pagerduty_escalation_policy_delete`

Delete a PagerDuty escalation policy. The policy must not be in use by any services or schedules.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the escalation policy to delete. |

## `pagerduty_escalation_policy_get`

Get details of a specific PagerDuty escalation policy by its ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the escalation policy to retrieve. |
| `include` | string | No | Additional resources to include. Options: services, teams, targets. |

## `pagerduty_escalation_policy_update`

Update an existing PagerDuty escalation policy's name, description, or loop settings.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated description of the escalation policy. |
| `id` | string | Yes | The ID of the escalation policy to update. |
| `name` | string | No | The updated name of the escalation policy. |
| `num_loops` | integer | No | The number of times the escalation policy will repeat after reaching the end. |
| `on_call_handoff_notifications` | string | No | Determines how on-call handoff notifications are sent. Options: if_has_services, always. |

## `pagerduty_incident_create`

Create a new incident in PagerDuty. Requires a title, service ID, and the email of the user creating the incident.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `body_details` | string | No | Additional details about the incident body (plain text). |
| `escalation_policy_id` | string | No | The ID of the escalation policy to assign to the incident. |
| `from_email` | string | Yes | The email address of the user creating the incident. Required by PagerDuty. |
| `incident_key` | string | No | A string that identifies the incident. Used for deduplication. |
| `priority_id` | string | No | The ID of the priority to assign to the incident. |
| `service_id` | string | Yes | The ID of the service the incident belongs to. |
| `title` | string | Yes | A brief description of the incident. |
| `urgency` | string | No | The urgency of the incident. Options: high, low. |

## `pagerduty_incident_get`

Get details of a specific PagerDuty incident by its ID, including status, assignments, services, and timeline.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the incident to retrieve. |

## `pagerduty_incident_manage`

Manage multiple PagerDuty incidents in bulk. Acknowledge, resolve, merge, or reassign multiple incidents at once.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `from_email` | string | Yes | The email address of the user performing the bulk action. Required by PagerDuty. |
| `incident_ids` | string | Yes | Comma-separated list of incident IDs to manage. |
| `status` | string | Yes | The status to apply to all specified incidents. Options: acknowledged, resolved. |

## `pagerduty_incident_note_create`

Add a note to a PagerDuty incident. Notes are visible to all responders on the incident.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | Yes | The content of the note to add to the incident. |
| `from_email` | string | Yes | The email address of the user creating the note. Required by PagerDuty. |
| `id` | string | Yes | The ID of the incident to add a note to. |

## `pagerduty_incident_update`

Update an existing PagerDuty incident. Can change status, urgency, title, priority, escalation policy, or reassign it.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `assignee_id` | string | No | The ID of the user to assign the incident to. |
| `escalation_policy_id` | string | No | The ID of the escalation policy to assign to the incident. |
| `from_email` | string | Yes | The email address of the user making the update. Required by PagerDuty. |
| `id` | string | Yes | The ID of the incident to update. |
| `priority_id` | string | No | The ID of the priority to assign to the incident. |
| `resolution` | string | No | The resolution note for the incident (used when resolving). |
| `status` | string | No | The new status of the incident. Options: acknowledged, resolved. |
| `title` | string | No | A brief description of the incident. |
| `urgency` | string | No | The urgency of the incident. Options: high, low. |

## `pagerduty_incidents_list`

List existing incidents in PagerDuty. Supports filtering by status, urgency, service, team, assigned user, and date range.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `date_range` | string | No | When set to 'all', the since and until parameters and defaults are ignored. |
| `include` | string | No | Array of additional resources to include. Options: acknowledgers, agents, assignees, conference_bridge, escalation_policies, first_trigger_log_entries, responders, services, teams, users. |
| `limit` | integer | No | The number of results to return per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `service_ids` | string | No | Comma-separated list of service IDs to filter incidents by. |
| `since` | string | No | The start of the date range to search (ISO 8601 format). |
| `sort_by` | string | No | Used to specify a field you would like to sort the response on. Options: incident_number, created_at, resolved_at, urgency. |
| `statuses` | string | No | Comma-separated list of statuses to filter by. Options: triggered, acknowledged, resolved. |
| `team_ids` | string | No | Comma-separated list of team IDs to filter incidents by. |
| `until` | string | No | The end of the date range to search (ISO 8601 format). |
| `urgencies` | string | No | Comma-separated list of urgencies to filter by. Options: high, low. |
| `user_ids` | string | No | Comma-separated list of user IDs to filter incidents assigned to. |

## `pagerduty_log_entries_list`

List log entries across all incidents in PagerDuty. Log entries record actions taken on incidents including notifications, acknowledgements, and assignments.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `include` | string | No | Additional resources to include. Options: incidents, services, channels, teams. |
| `is_overview` | boolean | No | If true, only show log entries of type 'notify_log_entry'. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `since` | string | No | The start of the date range (ISO 8601). |
| `team_ids` | string | No | Comma-separated list of team IDs to filter log entries by. |
| `time_zone` | string | No | Time zone for the log entries (IANA format). |
| `until` | string | No | The end of the date range (ISO 8601). |

## `pagerduty_log_entry_get`

Get details of a specific PagerDuty log entry by its ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the log entry to retrieve. |
| `include` | string | No | Additional resources to include. Options: incidents, services, channels, teams. |
| `time_zone` | string | No | Time zone for the log entry (IANA format). |

## `pagerduty_maintenance_window_create`

Create a new maintenance window in PagerDuty. During a maintenance window, no incidents will be created for the associated services.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | A description of the maintenance window. |
| `end_time` | string | Yes | The end time of the maintenance window (ISO 8601 format). |
| `from_email` | string | Yes | The email address of the user creating the maintenance window. Required by PagerDuty. |
| `service_ids` | string | Yes | Comma-separated list of service IDs to include in the maintenance window. |
| `start_time` | string | Yes | The start time of the maintenance window (ISO 8601 format). |

## `pagerduty_maintenance_window_delete`

Delete a PagerDuty maintenance window. Only future and ongoing maintenance windows may be deleted.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the maintenance window to delete. |

## `pagerduty_maintenance_window_get`

Get details of a specific PagerDuty maintenance window by its ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the maintenance window to retrieve. |
| `include` | string | No | Additional resources to include. Options: services, teams. |

## `pagerduty_maintenance_window_update`

Update an existing PagerDuty maintenance window's description, start time, or end time.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated description of the maintenance window. |
| `end_time` | string | No | Updated end time of the maintenance window (ISO 8601 format). |
| `id` | string | Yes | The ID of the maintenance window to update. |
| `start_time` | string | No | Updated start time of the maintenance window (ISO 8601 format). |

## `pagerduty_maintenance_windows_list`

List maintenance windows in PagerDuty. Maintenance windows disable incident notifications for services during scheduled maintenance periods.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `filter` | string | No | Filter maintenance windows by time. Options: past, future, ongoing. |
| `include` | string | No | Additional resources to include. Options: services, teams. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by description. |
| `service_ids` | string | No | Comma-separated list of service IDs to filter maintenance windows by. |
| `team_ids` | string | No | Comma-separated list of team IDs to filter maintenance windows by. |

## `pagerduty_notifications_list`

List notifications sent for incidents in a given time range. Notifications are messages sent to users when incidents are triggered, acknowledged, or resolved.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `filter` | string | No | Filters the results by notification type. Options: sms_notification, email_notification, phone_notification, push_notification. |
| `include` | string | No | Additional resources to include. Options: users. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `since` | string | Yes | The start of the date range (ISO 8601). Required. |
| `time_zone` | string | No | Time zone for the notification data (IANA format). |
| `until` | string | Yes | The end of the date range (ISO 8601). Required. |

## `pagerduty_oncalls_list`

List who is on call right now or within a date range. Supports filtering by schedule, escalation policy, and user.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `earliest` | boolean | No | When set to true, returns only the earliest on-call for each combination of escalation policy, escalation level, and user. |
| `escalation_policy_ids` | string | No | Comma-separated list of escalation policy IDs to filter by. |
| `include` | string | No | Additional resources to include. Options: users, schedules, escalation_policies. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `schedule_ids` | string | No | Comma-separated list of schedule IDs to filter by. |
| `since` | string | No | The start of the time range to retrieve on-call information (ISO 8601). |
| `time_zone` | string | No | Time zone for the on-call data (IANA format). |
| `until` | string | No | The end of the time range to retrieve on-call information (ISO 8601). |
| `user_ids` | string | No | Comma-separated list of user IDs to filter on-calls by. |

## `pagerduty_priorities_list`

List the priority options available for incidents in PagerDuty. Returns all configured priority levels.

## `pagerduty_schedule_create`

Create a new on-call schedule in PagerDuty with a single layer. Schedules determine who is on call at any given time.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | A description of the schedule. |
| `layer_name` | string | No | The name of the first schedule layer. |
| `layer_start` | string | Yes | The start time of the schedule layer (ISO 8601 format). |
| `name` | string | Yes | The name of the schedule. |
| `rotation_turn_length_seconds` | integer | No | The duration of each on-call rotation turn in seconds (e.g., 86400 = 1 day, 604800 = 1 week). |
| `rotation_virtual_start` | string | Yes | The effective start time of the rotation to align turn order (ISO 8601 format). |
| `time_zone` | string | Yes | The time zone of the schedule (IANA format, e.g., America/New_York). |
| `user_ids` | string | Yes | Comma-separated list of user IDs to include in the rotation. |

## `pagerduty_schedule_delete`

Delete a PagerDuty on-call schedule. The schedule must not be associated with any escalation policies.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the schedule to delete. |

## `pagerduty_schedule_get`

Get details of a specific PagerDuty on-call schedule by its ID, including layers and users.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the schedule to retrieve. |
| `since` | string | No | The start of the date range to show schedule entries for (ISO 8601). |
| `time_zone` | string | No | Time zone of the displayed schedule (IANA format). |
| `until` | string | No | The end of the date range to show schedule entries for (ISO 8601). |

## `pagerduty_schedule_update`

Update an existing PagerDuty on-call schedule's name, description, or time zone.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated description of the schedule. |
| `id` | string | Yes | The ID of the schedule to update. |
| `name` | string | No | Updated name of the schedule. |
| `time_zone` | string | No | Updated time zone (IANA format, e.g., America/New_York). |

## `pagerduty_schedules_list`

List on-call schedules in PagerDuty. Supports filtering by query string and pagination.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `include` | string | No | Additional resources to include. Options: schedule_layers, teams, users. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by name. |

## `pagerduty_service_create`

Create a new service in PagerDuty. A service represents something you monitor and manage incidents for.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `acknowledgement_timeout` | integer | No | Time in seconds that an incident is automatically re-triggered after being acknowledged. Set to 0 to disable. |
| `alert_creation` | string | No | Whether a service creates only incidents or creates both incidents and alerts. Options: create_incidents, create_alerts_and_incidents. |
| `auto_resolve_timeout` | integer | No | Time in seconds that an incident is automatically resolved if left open. Set to 0 to disable. |
| `description` | string | No | The user-provided description of the service. |
| `escalation_policy_id` | string | Yes | The ID of the escalation policy to assign to this service. |
| `name` | string | Yes | The name of the service. |

## `pagerduty_service_delete`

Delete an existing PagerDuty service. This action is irreversible. Only services without open incidents may be deleted.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the service to delete. |

## `pagerduty_service_get`

Get details of a specific PagerDuty service by its ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the service to retrieve. |
| `include` | string | No | Additional resources to include. Options: escalation_policies, teams, integrations. |

## `pagerduty_service_update`

Update an existing PagerDuty service. Can change name, description, escalation policy, timeouts, and alert creation settings.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `acknowledgement_timeout` | integer | No | Time in seconds that an incident is automatically re-triggered after being acknowledged. |
| `alert_creation` | string | No | Whether a service creates only incidents or also alerts. Options: create_incidents, create_alerts_and_incidents. |
| `auto_resolve_timeout` | integer | No | Time in seconds that an incident is automatically resolved if left open. |
| `description` | string | No | The user-provided description of the service. |
| `escalation_policy_id` | string | No | The ID of the escalation policy to assign to this service. |
| `id` | string | Yes | The ID of the service to update. |
| `name` | string | No | The name of the service. |
| `status` | string | No | The current state of the service. Options: active, warning, critical, maintenance, disabled. |

## `pagerduty_services_list`

List existing services in PagerDuty. Supports filtering by team, query string, and pagination.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `include` | string | No | Additional resources to include. Options: escalation_policies, teams, integrations, auto_pause_notifications_parameters. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by name. |
| `sort_by` | string | No | Sort results by this field. Options: name, name:asc, name:desc. |
| `team_ids` | string | No | Comma-separated list of team IDs to filter services by. |

## `pagerduty_team_create`

Create a new team in PagerDuty. Teams allow grouping of users and services.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | A description of the team. |
| `name` | string | Yes | The name of the team. |

## `pagerduty_team_delete`

Delete a PagerDuty team. The team must have no associated users, services, or escalation policies before it can be deleted.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the team to delete. |

## `pagerduty_team_get`

Get details of a specific PagerDuty team by its ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the team to retrieve. |

## `pagerduty_team_update`

Update an existing PagerDuty team's name or description.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `description` | string | No | Updated description of the team. |
| `id` | string | Yes | The ID of the team to update. |
| `name` | string | No | The updated name of the team. |

## `pagerduty_teams_list`

List teams in PagerDuty. Supports filtering by query string and pagination.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by name. |

## `pagerduty_user_create`

Create a new user in PagerDuty. Requires name, email, and the creating user's email in the From header.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | No | The schedule color for the user. |
| `email` | string | Yes | The user's email address. |
| `from_email` | string | Yes | The email address of the admin creating this user. Required by PagerDuty. |
| `name` | string | Yes | The name of the user. |
| `role` | string | No | The user's role. Options: admin, limited_user, observer, owner, read_only_user, restricted_access, read_only_limited_user, user. |
| `time_zone` | string | No | The time zone of the user (IANA format, e.g., America/New_York). |

## `pagerduty_user_delete`

Delete a PagerDuty user. Users cannot be deleted if they are the only remaining account owner.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the user to delete. |

## `pagerduty_user_get`

Get details of a specific PagerDuty user by their ID.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The ID of the user to retrieve. |
| `include` | string | No | Additional resources to include. Options: contact_methods, notification_rules, teams. |

## `pagerduty_user_update`

Update an existing PagerDuty user's profile including name, email, role, time zone, and color.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `color` | string | No | The schedule color for the user. |
| `email` | string | No | The user's updated email address. |
| `id` | string | Yes | The ID of the user to update. |
| `name` | string | No | The updated name of the user. |
| `role` | string | No | The user's role. Options: admin, limited_user, observer, owner, read_only_user, restricted_access, read_only_limited_user, user. |
| `time_zone` | string | No | The time zone of the user (IANA format, e.g., America/New_York). |

## `pagerduty_users_list`

List users in PagerDuty. Supports filtering by query, team, and includes.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `include` | string | No | Additional resources to include. Options: contact_methods, notification_rules, teams. |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by name. |
| `team_ids` | string | No | Comma-separated list of team IDs to filter users by. |

## `pagerduty_vendors_list`

List available PagerDuty vendors (integration types). Vendors represent the services or monitoring tools that can be integrated with PagerDuty.

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | No | The number of results per page. Maximum 100. |
| `offset` | integer | No | Offset to start pagination search results. |
| `query` | string | No | Filters the results by vendor name. |

---

## More Scalekit documentation

| Resource | What it contains | When to use it |
|----------|-----------------|----------------|
| [/llms.txt](/llms.txt) | Structured index with routing hints per product area | Start here — find which documentation set covers your topic before loading full content |
| [/llms-full.txt](/llms-full.txt) | Complete documentation for all Scalekit products in one file | Use when you need exhaustive context across multiple products or when the topic spans several areas |
| [sitemap-0.xml](https://docs.scalekit.com/sitemap-0.xml) | Full URL list of every documentation page | Use to discover specific page URLs you can fetch for targeted, page-level answers |
