PagerDuty REST API v2 — incidents, on-calls and schedules core

This reference is readable without JavaScript. Download the OpenAPI document.

Runtime

/api/purple-suite/{instanceId}/contracts/itsm/pagerduty
[
  {
    "method": "get",
    "path": "/escalation_policies",
    "operationId": "listEscalationPolicies"
  },
  {
    "method": "get",
    "path": "/escalation_policies/:id",
    "operationId": "getEscalationPolicy"
  },
  {
    "method": "get",
    "path": "/incidents",
    "operationId": "listIncidents"
  },
  {
    "method": "put",
    "path": "/incidents",
    "operationId": "updateIncidents"
  },
  {
    "method": "post",
    "path": "/incidents",
    "operationId": "createIncident"
  },
  {
    "method": "get",
    "path": "/incidents/:id",
    "operationId": "getIncident"
  },
  {
    "method": "put",
    "path": "/incidents/:id",
    "operationId": "updateIncident"
  },
  {
    "method": "get",
    "path": "/incidents/:id/log_entries",
    "operationId": "listIncidentLogEntries"
  },
  {
    "method": "get",
    "path": "/incidents/:id/notes",
    "operationId": "listIncidentNotes"
  },
  {
    "method": "post",
    "path": "/incidents/:id/notes",
    "operationId": "createIncidentNote"
  },
  {
    "method": "get",
    "path": "/oncalls",
    "operationId": "listOnCalls"
  },
  {
    "method": "get",
    "path": "/priorities",
    "operationId": "listPriorities"
  },
  {
    "method": "get",
    "path": "/schedules",
    "operationId": "listSchedules"
  },
  {
    "method": "get",
    "path": "/schedules/:id",
    "operationId": "getSchedule"
  },
  {
    "method": "put",
    "path": "/schedules/:id",
    "operationId": "updateSchedule"
  },
  {
    "method": "get",
    "path": "/services",
    "operationId": "listServices"
  },
  {
    "method": "get",
    "path": "/services/:id",
    "operationId": "getService"
  },
  {
    "method": "get",
    "path": "/users",
    "operationId": "listUsers"
  },
  {
    "method": "get",
    "path": "/users/:id",
    "operationId": "getUser"
  },
  {
    "method": "get",
    "path": "/users/me",
    "operationId": "getCurrentUser"
  }
]

Credentials

Coverage and limitations

{
  "documentScope": "bounded",
  "runtimeFidelity": "modeled",
  "counts": {
    "operations": 20
  },
  "notes": [
    "19 modeled-core plus 1 unavailable operation of 157 in the pinned subset; 137 are outside executable scope. The pinned subset is itself nine whole path families of PagerDuty's 273-path REST catalog: Incidents, On-Calls, Schedules, Services, Escalation Policies, Users, Teams, Log Entries and Priorities. Event Orchestration, Automation Actions, Business Services, Analytics, Status Pages, Audit Records, Incident Workflows, Webhook Subscriptions, Rulesets, Custom Fields, V3 Schedules and the remaining families are absent from the pinned document; see source.lock.json x-purplesuite-subset.familiesAbsent.",
    "GET /oncalls is computed from the persisted escalation policies and schedule layers on every request — rotation turn boundaries from rotation_virtual_start plus rotation_turn_length_seconds, daily and weekly restriction windows evaluated in the schedule's own time zone, later layers overriding earlier ones, and schedule_reference versus user_reference escalation targets resolved separately. Reordering a layer's users through PUT /schedules/{id} changes the on-call answer for an unchanged time window. No on-call row is stored.",
    "Narrowed deliberately: include[] sideloading, per-request time_zone rendering, the escalation-policy and service sort_by orders, schedule overrides and previews, incident merge, snooze, responder requests, status updates, alerts, custom fields and incident types are removed from the served document rather than accepted and ignored. Bodies are closed to undeclared properties and bounded; the pinned schemas declare no additionalProperties and no length bounds anywhere.",
    "GET /users/me is unavailable, not modeled. A PagerDuty account-scoped REST API key has no requester user, so the adapter returns the vendor error envelope and never a synthetic user. The instance key is account-scoped by construction.",
    "Six defects in the vendor document constrain what can be emitted and are recorded verbatim in source.lock.json knownDefects: components.schemas.Channel has an unsatisfiable oneOf, so LogEntry.channel is omitted; AcknowledgeLogEntry's type enum contradicts its own LogEntry base, so no acknowledgement log entry can validate and none is emitted (acknowledgement state is recorded on the incident); Incident.resolved_at, Incident.priority, Oncall.schedule, Oncall.start, Oncall.end and ScheduleLayer.end are non-nullable while the document's own examples give them null, so the adapter omits them instead of emitting an undeclared null; header_Content-Type is required on bodyless GETs and is relaxed to optional there; statuses[] and urgencies[] declare type string while documenting repetition and are served as arrays; and IncidentBody.details is declared an object while the POST /incidents example sends a string, so the served request accepts either.",
    "Error envelopes use the document's `{ error: { code, message, errors[] } }` shape exactly. The pinned document constrains `code` only as an integer and carries no error examples, so the numeric code values are modeled, not pinned. Rate limiting (429), plan-ability gating (402), permission scoping (403) and request-size limits (413) stay declared and are never emitted. Handler-emitted statuses are a strict subset of the served declarations; the transport 401/404 and the unexpected-failure 500 sit outside that subset by design and are recorded in coverage.md.",
    "The served `api_key` scheme adds one key the pinned document does not carry: `x-default`, holding the literal `Token token=your-api-key` header value whose format the pinned scheme states in prose only. An apiKey credential is the whole Authorization value, so a docs console given only the pinned scheme prefills a bare key and its own cURL sample documents the transport wrongly. Every pinned field is unchanged and the pinned artifact is not mutated; `x-default` is the same vendor extension Klaviyo's own document ships.",
    "self and html_url are omitted from every response object. Both are declared nullable. The adapter will not emit an absolute vendor origin a client could follow off-instance, and the painted base is not a public PagerDuty origin."
  ]
}

This document describes the PagerDuty REST APIs. For guides and examples please visit our [Documentation.](https://developer.pagerduty.com/docs/get-started/getting-started/) Our REST APIs are defined in OpenAPI v3.x. You can view the schema at [github.com/PagerDuty/api-schema](https://github.com/PagerDuty/api-schema). Note that properties in some schemas have fields not shown by default such as `readOnly`, `format`, and `default`. Hover your cursor over the right column that looks like `optional+1` to see the full list of fields.

Servers

[
  {
    "url": "/api/purple-suite/{instanceId}/contracts/itsm/pagerduty",
    "variables": {
      "instanceId": {
        "default": "instance-id"
      }
    }
  }
]

Authentication schemes

{
  "api_key": {
    "type": "apiKey",
    "name": "Authorization",
    "in": "header",
    "description": "The API Key with format `Token token=<API_KEY>`",
    "x-default": "Token token=your-api-key"
  }
}

Each operation lists its security requirements. An empty security array permits an unauthenticated request. Use the scheme and headers declared for the selected contract.

Operations

GET /escalation_policies

List escalation policies

List all of the existing escalation policies. Escalation policies define which user should be alerted at which time. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#escalation-policies) Scoped OAuth requires: `escalation_policies.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Escalation Policies"
  ],
  "x-pd-requires-scope": "escalation_policies.read",
  "operationId": "listEscalationPolicies",
  "description": "List all of the existing escalation policies.\n\nEscalation policies define which user should be alerted at which time.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#escalation-policies)\n\nScoped OAuth requires: `escalation_policies.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List escalation policies",
  "parameters": [
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "query",
      "in": "query",
      "description": "Filters the result, showing only the records whose name matches the query.",
      "required": false,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "user_ids[]",
      "in": "query",
      "description": "Filters the results, showing only escalation policies on which any of the users is a target.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "team_ids[]",
      "in": "query",
      "description": "An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of escalation policy objects.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "escalation_policies": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/EscalationPolicy"
                    }
                  }
                },
                "required": [
                  "escalation_policies"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "escalation_policies": [
                  {
                    "id": "PANZZEQ",
                    "type": "escalation_policy",
                    "summary": "Engineering Escalation Policy",
                    "on_call_handoff_notifications": "if_has_services",
                    "self": "https://api.pagerduty.com/escalation_policies/PANZZEQ",
                    "html_url": "https://subdomain.pagerduty.com/escalation_policies/PANZZEQ",
                    "name": "Engineering Escalation Policy",
                    "escalation_rules": [
                      {
                        "id": "PANZZEQ",
                        "escalation_delay_in_minutes": 30,
                        "targets": [
                          {
                            "id": "PEYSGVF",
                            "summary": "PagerDuty Admin",
                            "type": "user_reference",
                            "self": "https://api.pagerduty.com/users/PEYSGVF",
                            "html_url": "https://subdomain.pagerduty.com/users/PEYSGVF"
                          },
                          {
                            "id": "PI7DH85",
                            "summary": "Daily Engineering Rotation",
                            "type": "schedule_reference",
                            "self": "https://api.pagerduty.com/schedules/PI7DH85",
                            "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85"
                          }
                        ]
                      }
                    ],
                    "services": [
                      {
                        "id": "PIJ90N7",
                        "type": "service_reference",
                        "summary": "My Mail Service",
                        "self": "https://api.pagerduty.com/services/PIJ90N7",
                        "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                      }
                    ],
                    "num_loops": 0,
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ]
                  }
                ],
                "limit": 25,
                "offset": 0,
                "more": false,
                "total": null
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /escalation_policies/{id}

Get an escalation policy

Get information about an existing escalation policy and its rules. Escalation policies define which user should be alerted at which time. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#escalation-policies) Scoped OAuth requires: `escalation_policies.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Escalation Policies"
  ],
  "x-pd-requires-scope": "escalation_policies.read",
  "operationId": "getEscalationPolicy",
  "description": "Get information about an existing escalation policy and its rules.\n\nEscalation policies define which user should be alerted at which time.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#escalation-policies)\n\nScoped OAuth requires: `escalation_policies.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Get an escalation policy",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    }
  ],
  "responses": {
    "200": {
      "description": "The escalation policy object.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "escalation_policy": {
                "$ref": "#/components/schemas/EscalationPolicy"
              }
            },
            "required": [
              "escalation_policy"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "escalation_policy": {
                  "id": "PT20YPA",
                  "type": "escalation_policy",
                  "summary": "Another Escalation Policy",
                  "on_call_handoff_notifications": "if_has_services",
                  "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                  "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA",
                  "name": "Another Escalation Policy",
                  "escalation_rules": [
                    {
                      "id": "PGHDV41",
                      "escalation_delay_in_minutes": 30,
                      "targets": [
                        {
                          "id": "PAM4FGS",
                          "summary": "Kyler Kuhn",
                          "type": "user_reference",
                          "self": "https://api.pagerduty.com/users/PAM4FGS",
                          "html_url": "https://subdomain.pagerduty.com/users/PAM4FGS"
                        },
                        {
                          "id": "PI7DH85",
                          "summary": "Daily Engineering Rotation",
                          "type": "schedule_reference",
                          "self": "https://api.pagerduty.com/schedules/PI7DH85",
                          "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85"
                        }
                      ]
                    }
                  ],
                  "services": [
                    {
                      "id": "PIJ90N7",
                      "type": "service_reference",
                      "summary": "My Mail Service",
                      "self": "https://api.pagerduty.com/services/PIJ90N7",
                      "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                    }
                  ],
                  "num_loops": 2,
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "description": "This is yet another escalation policy"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/responses/Conflict/content/application~1json/schema"
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /incidents

List incidents

List existing incidents. An incident represents a problem or an issue that needs to be addressed and resolved. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.read",
  "tags": [
    "Incidents"
  ],
  "operationId": "listIncidents",
  "description": "List existing incidents.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List incidents",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page. Maximum of 100.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "date_range",
      "in": "query",
      "description": "When set to all, the since and until parameters and defaults are ignored.",
      "schema": {
        "type": "string",
        "enum": [
          "all"
        ]
      }
    },
    {
      "name": "incident_key",
      "in": "query",
      "description": "Incident de-duplication key. Incidents with child alerts do not have an incident key; querying by incident key will return incidents whose alerts have alert_key matching the given incident key.",
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "service_ids[]",
      "in": "query",
      "description": "Returns only the incidents associated with the passed service(s). This expects one or more service IDs.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "team_ids[]",
      "in": "query",
      "description": "An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "user_ids[]",
      "in": "query",
      "description": "Returns only the incidents currently assigned to the passed user(s). This expects one or more user IDs. Note: When using the assigned_to_user filter, you will only receive incidents with statuses of triggered or acknowledged. This is because resolved incidents are not assigned to any user.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "urgencies[]",
      "in": "query",
      "description": "Array of the urgencies of the incidents to be returned. Defaults to all urgencies. Account must have the `urgencies` ability to do this.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 8,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "enum": [
            "high",
            "low"
          ]
        }
      },
      "style": "form"
    },
    {
      "name": "statuses[]",
      "in": "query",
      "description": "Return only incidents with the given statuses. To query multiple statuses, pass `statuses[]` more than once, for example: `https://api.pagerduty.com/incidents?statuses[]=triggered&statuses[]=acknowledged`. (More status codes may be introduced in the future.)",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 8,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "enum": [
            "triggered",
            "acknowledged",
            "resolved"
          ]
        }
      },
      "style": "form"
    },
    {
      "name": "sort_by",
      "in": "query",
      "description": "Used to specify both the field you wish to sort the results on (incident_number/created_at/resolved_at/urgency), as well as the direction (asc/desc) of the results. The sort_by field and direction should be separated by a colon. A maximum of two fields can be included, separated by a comma. Sort direction defaults to ascending. The account must have the `urgencies` ability to sort by the urgency.",
      "style": "form",
      "explode": false,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 2,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "enum": [
            "incident_number",
            "incident_number:asc",
            "incident_number:desc",
            "created_at",
            "created_at:asc",
            "created_at:desc",
            "resolved_at",
            "resolved_at:asc",
            "resolved_at:desc",
            "urgency",
            "urgency:asc",
            "urgency:desc"
          ]
        }
      }
    },
    {
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      },
      "in": "query",
      "name": "since",
      "description": "The start of the date range over which you want to search. Maximum range is 6 months and default is 1 month."
    },
    {
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      },
      "in": "query",
      "name": "until",
      "description": "The end of the date range over which you want to search. Maximum range is 6 months and default is 1 month."
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of incidents.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "incidents": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Incident"
                    }
                  }
                },
                "required": [
                  "incidents"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "incidents": [
                  {
                    "id": "PT4KHLK",
                    "type": "incident",
                    "summary": "[#1234] The server is on fire.",
                    "self": "https://api.pagerduty.com/incidents/PT4KHLK",
                    "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK",
                    "incident_number": 1234,
                    "title": "The server is on fire.",
                    "created_at": "2015-10-06T21:30:42Z",
                    "updated_at": "2015-10-06T21:40:23Z",
                    "status": "resolved",
                    "incident_key": "baf7cf21b1da41b4b0221008339ff357",
                    "service": {
                      "id": "PIJ90N7",
                      "type": "service_reference",
                      "summary": "My Mail Service",
                      "self": "https://api.pagerduty.com/services/PIJ90N7",
                      "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                    },
                    "assignments": [],
                    "assigned_via": "escalation_policy",
                    "last_status_change_at": "2015-10-06T21:38:23Z",
                    "resolved_at": "2015-10-06T21:38:23Z",
                    "first_trigger_log_entry": {
                      "id": "Q02JTSNZWHSEKV",
                      "type": "trigger_log_entry_reference",
                      "summary": "Triggered through the API",
                      "self": "https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK",
                      "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV"
                    },
                    "alert_counts": {
                      "all": 2,
                      "triggered": 0,
                      "resolved": 2
                    },
                    "is_mergeable": true,
                    "incident_type": {
                      "name": "incident_default"
                    },
                    "escalation_policy": {
                      "id": "PT20YPA",
                      "type": "escalation_policy_reference",
                      "summary": "Another Escalation Policy",
                      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                    },
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ],
                    "pending_actions": [],
                    "acknowledgements": [],
                    "alert_grouping": {
                      "grouping_type": "advanced",
                      "started_at": "2015-10-06T21:30:42Z",
                      "ended_at": null,
                      "alert_grouping_active": true
                    },
                    "last_status_change_by": {
                      "id": "PXPGF42",
                      "type": "user_reference",
                      "summary": "Earline Greenholt",
                      "self": "https://api.pagerduty.com/users/PXPGF42",
                      "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                    },
                    "priority": {
                      "id": "P53ZZH5",
                      "type": "priority_reference",
                      "summary": "P2",
                      "self": "https://api.pagerduty.com/priorities/P53ZZH5"
                    },
                    "resolve_reason": null,
                    "conference_bridge": {
                      "conference_number": "+1-415-555-1212,,,,1234#",
                      "conference_url": "https://example.com/acb-123"
                    },
                    "incidents_responders": [],
                    "responder_requests": [],
                    "urgency": "high"
                  }
                ],
                "limit": 1,
                "offset": 0,
                "more": true
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "402": {
      "$ref": "#/components/responses/PaymentRequired"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

PUT /incidents

Manage incidents

Acknowledge, resolve, escalate or reassign one or more incidents. An incident represents a problem or an issue that needs to be addressed and resolved. A maximum of 250 incidents may be updated at a time. If more than this number of incidents are given, the API will respond with status 413 (Request Entity Too Large). For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.write` This API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information. PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.write",
  "x-pd-operation-limit": true,
  "tags": [
    "Incidents"
  ],
  "operationId": "updateIncidents",
  "description": "Acknowledge, resolve, escalate or reassign one or more incidents.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nA maximum of 250 incidents may be updated at a time. If more than this number of incidents are given, the API will respond with status 413 (Request Entity Too Large).\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.write`\n\nThis API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information.\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Manage incidents",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "From",
      "in": "header",
      "description": "The email address of a valid user associated with the account making the request.",
      "required": true,
      "schema": {
        "type": "string",
        "format": "email",
        "minLength": 3,
        "maxLength": 255
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "incidents"
          ],
          "properties": {
            "incidents": {
              "type": "array",
              "minItems": 1,
              "maxItems": 100,
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "id",
                  "type"
                ],
                "properties": {
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "type": {
                    "type": "string",
                    "enum": [
                      "incident",
                      "incident_reference"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "triggered",
                      "acknowledged",
                      "resolved"
                    ]
                  },
                  "resolution": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 2000
                  },
                  "title": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "urgency": {
                    "type": "string",
                    "enum": [
                      "high",
                      "low"
                    ]
                  },
                  "priority": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "id",
                      "type"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "priority_reference"
                        ]
                      }
                    }
                  },
                  "assignments": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 10,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "required": [
                        "assignee"
                      ],
                      "properties": {
                        "assignee": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "id",
                            "type"
                          ],
                          "properties": {
                            "id": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "type": {
                              "type": "string",
                              "enum": [
                                "user_reference"
                              ]
                            }
                          }
                        }
                      }
                    }
                  },
                  "escalation_policy": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "id",
                      "type"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64
                      },
                      "type": {
                        "type": "string",
                        "enum": [
                          "escalation_policy_reference"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "All of the updates succeeded.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "incidents": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Incident"
                    }
                  }
                },
                "required": [
                  "incidents"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "incidents": [
                  {
                    "id": "PT4KHLK",
                    "type": "incident",
                    "summary": "[#1234] The server is on fire.",
                    "self": "https://api.pagerduty.com/incidents/PT4KHLK",
                    "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK",
                    "incident_number": 1234,
                    "created_at": "2015-10-06T21:30:42Z",
                    "updated_at": "2015-10-06T21:40:23Z",
                    "status": "resolved",
                    "title": "The server is on fire.",
                    "alert_counts": {
                      "all": 2,
                      "triggered": 0,
                      "resolved": 2
                    },
                    "pending_actions": [
                      {
                        "type": "unacknowledge",
                        "at": "2015-11-10T01:02:52Z"
                      },
                      {
                        "type": "resolve",
                        "at": "2015-11-10T04:31:52Z"
                      }
                    ],
                    "incident_key": "baf7cf21b1da41b4b0221008339ff357",
                    "service": {
                      "id": "PIJ90N7",
                      "type": "service_reference",
                      "summary": "My Mail Service",
                      "self": "https://api.pagerduty.com/services/PIJ90N7",
                      "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                    },
                    "assigned_via": "escalation_policy",
                    "assignments": [
                      {
                        "at": "2015-11-10T00:31:52Z",
                        "assignee": {
                          "id": "PXPGF42",
                          "type": "user_reference",
                          "summary": "Earline Greenholt",
                          "self": "https://api.pagerduty.com/users/PXPGF42",
                          "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                        }
                      }
                    ],
                    "acknowledgements": [
                      {
                        "at": "2015-11-10T00:32:52Z",
                        "acknowledger": {
                          "id": "PXPGF42",
                          "type": "user_reference",
                          "summary": "Earline Greenholt",
                          "self": "https://api.pagerduty.com/users/PXPGF42",
                          "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                        }
                      }
                    ],
                    "resolved_at": "2015-10-06T21:38:23Z",
                    "last_status_change_at": "2015-10-06T21:38:23Z",
                    "last_status_change_by": {
                      "id": "PXPGF42",
                      "type": "user_reference",
                      "summary": "Earline Greenholt",
                      "self": "https://api.pagerduty.com/users/PXPGF42",
                      "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                    },
                    "first_trigger_log_entry": {
                      "id": "Q02JTSNZWHSEKV",
                      "type": "trigger_log_entry_reference",
                      "summary": "Triggered through the API",
                      "self": "https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK",
                      "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV"
                    },
                    "incident_type": {
                      "name": "major_incident"
                    },
                    "escalation_policy": {
                      "id": "PT20YPA",
                      "type": "escalation_policy_reference",
                      "summary": "Another Escalation Policy",
                      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                    },
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ],
                    "urgency": "high"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "413": {
      "$ref": "#/components/responses/RequestEntityTooLarge"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

POST /incidents

Create an Incident

Create an incident synchronously without a corresponding event from a monitoring service. An incident represents a problem or an issue that needs to be addressed and resolved. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.write` This API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information. PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.write",
  "x-pd-operation-limit": true,
  "tags": [
    "Incidents"
  ],
  "operationId": "createIncident",
  "description": "Create an incident synchronously without a corresponding event from a monitoring service.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.write`\n\nThis API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information.\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Create an Incident",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "From",
      "in": "header",
      "description": "The email address of a valid user associated with the account making the request.",
      "required": true,
      "schema": {
        "type": "string",
        "format": "email",
        "minLength": 3,
        "maxLength": 255
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "incident"
          ],
          "properties": {
            "incident": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type",
                "title",
                "service"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "incident"
                  ]
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 1024
                },
                "service": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "service_reference"
                      ]
                    }
                  }
                },
                "priority": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "priority_reference"
                      ]
                    }
                  }
                },
                "urgency": {
                  "type": "string",
                  "enum": [
                    "high",
                    "low"
                  ]
                },
                "body": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "type"
                  ],
                  "properties": {
                    "type": {
                      "type": "string",
                      "enum": [
                        "incident_body"
                      ]
                    },
                    "details": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 8000
                        },
                        {
                          "type": "object"
                        }
                      ]
                    }
                  }
                },
                "incident_key": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                "assignments": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 10,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "assignee"
                    ],
                    "properties": {
                      "assignee": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "id",
                          "type"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "user_reference"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "escalation_policy": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "escalation_policy_reference"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "201": {
      "description": "The incident object created.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "incident": {
                "$ref": "#/components/schemas/Incident"
              }
            },
            "required": [
              "incident"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "incident": {
                  "id": "PT4KHLK",
                  "type": "incident",
                  "title": "The server is on fire.",
                  "summary": "[#1234] The server is on fire.",
                  "self": "https://api.pagerduty.com/incidents/PT4KHLK",
                  "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK",
                  "incident_number": 1234,
                  "created_at": "2015-10-06T21:30:42Z",
                  "updated_at": "2015-10-06T21:40:23Z",
                  "status": "triggered",
                  "incident_key": "baf7cf21b1da41b4b0221008339ff357",
                  "service": {
                    "id": "PWIXJZS",
                    "type": "service_reference",
                    "summary": "My Mail Service",
                    "self": "https://api.pagerduty.com/services/PWIXJZS",
                    "html_url": "https://subdomain.pagerduty.com/service-directory/PWIXJZS"
                  },
                  "priority": {
                    "id": "P53ZZH5",
                    "type": "priority_reference",
                    "summary": "P2",
                    "self": "https://api.pagerduty.com/priorities/P53ZZH5"
                  },
                  "assigned_via": "escalation_policy",
                  "assignments": [
                    {
                      "at": "2015-11-10T00:31:52Z",
                      "assignee": {
                        "id": "PXPGF42",
                        "type": "user_reference",
                        "summary": "Earline Greenholt",
                        "self": "https://api.pagerduty.com/users/PXPGF42",
                        "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                      }
                    }
                  ],
                  "resolved_at": null,
                  "last_status_change_at": "2015-10-06T21:38:23Z",
                  "last_status_change_by": {
                    "id": "PXPGF42",
                    "type": "user_reference",
                    "summary": "Earline Greenholt",
                    "self": "https://api.pagerduty.com/users/PXPGF42",
                    "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                  },
                  "first_trigger_log_entry": {
                    "id": "Q02JTSNZWHSEKV",
                    "type": "trigger_log_entry_reference",
                    "summary": "Triggered through the API",
                    "self": "https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK",
                    "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV"
                  },
                  "incident_type": {
                    "name": "major_incident"
                  },
                  "escalation_policy": {
                    "id": "PT20YPA",
                    "type": "escalation_policy_reference",
                    "summary": "Another Escalation Policy",
                    "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                    "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                  },
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "urgency": "high"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /incidents/{id}

Get an incident

Show detailed information about an incident. Accepts either an incident id, or an incident number. An incident represents a problem or an issue that needs to be addressed and resolved. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.read",
  "tags": [
    "Incidents"
  ],
  "operationId": "getIncident",
  "description": "Show detailed information about an incident. Accepts either an incident id, or an incident number.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Get an incident",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    }
  ],
  "responses": {
    "200": {
      "description": "The incident requested.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "incident": {
                "$ref": "#/components/schemas/Incident"
              }
            },
            "required": [
              "incident"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "incident": {
                  "id": "PT4KHLK",
                  "type": "incident",
                  "summary": "[#1234] The server is on fire.",
                  "self": "https://api.pagerduty.com/incidents/PT4KHLK",
                  "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK",
                  "incident_number": 1234,
                  "title": "The server is on fire.",
                  "created_at": "2015-10-06T21:30:42Z",
                  "updated_at": "2015-10-06T21:40:23Z",
                  "status": "acknowledged",
                  "incident_key": "baf7cf21b1da41b4b0221008339ff357",
                  "service": {
                    "id": "PIJ90N7",
                    "type": "service_reference",
                    "summary": "My Mail Service",
                    "self": "https://api.pagerduty.com/services/PIJ90N7",
                    "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                  },
                  "assignments": [
                    {
                      "at": "2015-11-10T00:31:52Z",
                      "assignee": {
                        "id": "PXPGF42",
                        "type": "user_reference",
                        "summary": "Earline Greenholt",
                        "self": "https://api.pagerduty.com/users/PXPGF42",
                        "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                      }
                    }
                  ],
                  "assigned_via": "escalation_policy",
                  "last_status_change_at": "2015-10-06T21:38:23Z",
                  "resolved_at": null,
                  "first_trigger_log_entry": {
                    "id": "Q02JTSNZWHSEKV",
                    "type": "trigger_log_entry_reference",
                    "summary": "Triggered through the API",
                    "self": "https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK",
                    "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV"
                  },
                  "alert_counts": {
                    "all": 2,
                    "triggered": 1,
                    "resolved": 1
                  },
                  "is_mergeable": true,
                  "incident_type": {
                    "name": "incident_default"
                  },
                  "escalation_policy": {
                    "id": "PT20YPA",
                    "type": "escalation_policy_reference",
                    "summary": "Another Escalation Policy",
                    "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                    "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                  },
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "pending_actions": [
                    {
                      "type": "unacknowledge",
                      "at": "2015-11-10T01:02:52Z"
                    },
                    {
                      "type": "resolve",
                      "at": "2015-11-10T04:31:52Z"
                    }
                  ],
                  "acknowledgements": [
                    {
                      "at": "2015-11-10T00:32:52Z",
                      "acknowledger": {
                        "id": "PXPGF42",
                        "type": "user_reference",
                        "summary": "Earline Greenholt",
                        "self": "https://api.pagerduty.com/users/PXPGF42",
                        "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                      }
                    }
                  ],
                  "alert_grouping": {
                    "grouping_type": "advanced",
                    "started_at": "2015-10-06T21:30:42Z",
                    "ended_at": null,
                    "alert_grouping_active": true
                  },
                  "last_status_change_by": {
                    "id": "PXPGF42",
                    "type": "user_reference",
                    "summary": "Earline Greenholt",
                    "self": "https://api.pagerduty.com/users/PXPGF42",
                    "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                  },
                  "priority": {
                    "id": "P53ZZH5",
                    "type": "priority_reference",
                    "summary": "P2",
                    "self": "https://api.pagerduty.com/priorities/P53ZZH5"
                  },
                  "resolve_reason": null,
                  "conference_bridge": {
                    "conference_number": "+1-415-555-1212,,,,1234#",
                    "conference_url": "https://example.com/acb-123"
                  },
                  "incidents_responders": [
                    {
                      "state": "pending",
                      "user": {
                        "id": "PL7A2O4",
                        "type": "user_reference",
                        "summary": "Lee Turner",
                        "self": "https://api.pagerduty.com/users/PL7A2O4",
                        "html_url": "https://subdomain.pagerduty.com/users/PL7A2O4",
                        "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png"
                      },
                      "incident": {
                        "id": "PXP12GZ",
                        "type": "incident_reference",
                        "summary": "Ongoing Incident in Mailroom",
                        "self": "https://api.pagerduty.com/incidents/PXP12GZ",
                        "html_url": "https://subdomain.pagerduty.com/incidents/PXP12GZ"
                      },
                      "updated_at": "2018-08-09T14:40:48-07:00",
                      "message": "Please help with issue - join bridge at +1(234)-567-8910",
                      "requester": {
                        "id": "P09TT3C",
                        "type": "user_reference",
                        "summary": "Jane Doe",
                        "self": "https://api.pagerduty.com/users/P09TT3C",
                        "html_url": "https://subdomain.pagerduty.com/users/P09TT3C",
                        "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png"
                      },
                      "requested_at": "2018-08-09T21:40:49Z"
                    }
                  ],
                  "responder_requests": [
                    {
                      "incident": {
                        "id": "PXP12GZ",
                        "type": "incident_reference",
                        "summary": "Ongoing Incident in Mailroom",
                        "self": "https://api.pagerduty.com/incidents/PXP12GZ",
                        "html_url": "https://subdomain.pagerduty.com/incidents/PXP12GZ"
                      },
                      "requester": {
                        "id": "P09TT3C",
                        "type": "user_reference",
                        "summary": "Jane Doe",
                        "self": "https://api.pagerduty.com/users/P09TT3C",
                        "html_url": "https://subdomain.pagerduty.com/users/P09TT3C"
                      },
                      "requested_at": "2018-08-16T14:55:17-07:00",
                      "message": "Please help with issue - join bridge at +1(234)-567-8910",
                      "responder_request_targets": [
                        {
                          "responder_request_target": {
                            "type": "user",
                            "id": "PL7A2O4",
                            "incidents_responders": [
                              {
                                "state": "pending",
                                "user": {
                                  "id": "PL7A2O4",
                                  "type": "user_reference",
                                  "summary": "Lee Turner",
                                  "self": "https://api.pagerduty.com/users/PL7A2O4",
                                  "html_url": "https://subdomain.pagerduty.com/users/PL7A2O4",
                                  "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png"
                                },
                                "incident": {
                                  "id": "PXP12GZ",
                                  "type": "incident_reference",
                                  "summary": "Ongoing Incident in Mailroom",
                                  "self": "https://api.pagerduty.com/incidents/PXP12GZ",
                                  "html_url": "https://subdomain.pagerduty.com/incidents/PXP12GZ"
                                },
                                "updated_at": "2018-08-09T14:40:48-07:00",
                                "message": "Please help with issue - join bridge at +1(234)-567-8910",
                                "requester": {
                                  "id": "P09TT3C",
                                  "type": "user_reference",
                                  "summary": "Jane Doe",
                                  "self": "https://api.pagerduty.com/users/P09TT3C",
                                  "html_url": "https://subdomain.pagerduty.com/users/P09TT3C",
                                  "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png"
                                },
                                "requested_at": "2018-08-09T21:40:49Z"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  ],
                  "urgency": "high",
                  "custom_fields": [
                    {
                      "id": "PT4KHEE",
                      "type": "field_value",
                      "name": "environment",
                      "display_name": "Runtime Environment",
                      "description": "environment where incident occurred",
                      "data_type": "string",
                      "field_type": "single_value_fixed",
                      "value": "production"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

PUT /incidents/{id}

Update an incident

Acknowledge, resolve, escalate or reassign an incident. An incident represents a problem or an issue that needs to be addressed and resolved. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.write` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.write",
  "tags": [
    "Incidents"
  ],
  "operationId": "updateIncident",
  "description": "Acknowledge, resolve, escalate or reassign an incident.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.write`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Update an incident",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    },
    {
      "name": "From",
      "in": "header",
      "description": "The email address of a valid user associated with the account making the request.",
      "required": true,
      "schema": {
        "type": "string",
        "format": "email",
        "minLength": 3,
        "maxLength": 255
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "incident"
          ],
          "properties": {
            "incident": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "incident",
                    "incident_reference"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "triggered",
                    "acknowledged",
                    "resolved"
                  ]
                },
                "resolution": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2000
                },
                "title": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 1024
                },
                "urgency": {
                  "type": "string",
                  "enum": [
                    "high",
                    "low"
                  ]
                },
                "priority": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "priority_reference"
                      ]
                    }
                  }
                },
                "assignments": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 10,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "assignee"
                    ],
                    "properties": {
                      "assignee": {
                        "type": "object",
                        "additionalProperties": false,
                        "required": [
                          "id",
                          "type"
                        ],
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "type": {
                            "type": "string",
                            "enum": [
                              "user_reference"
                            ]
                          }
                        }
                      }
                    }
                  }
                },
                "escalation_policy": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "id",
                    "type"
                  ],
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "escalation_policy_reference"
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "The incident was updated.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "type": "object",
                "properties": {
                  "incident": {
                    "$ref": "#/components/schemas/Incident"
                  }
                },
                "required": [
                  "incident"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "incident": {
                  "id": "PT4KHLK",
                  "type": "incident",
                  "summary": "[#1234] The server is on fire.",
                  "self": "https://api.pagerduty.com/incidents/PT4KHLK",
                  "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK",
                  "incident_number": 1234,
                  "created_at": "2015-10-06T21:30:42Z",
                  "updated_at": "2015-10-06T21:40:23Z",
                  "status": "resolved",
                  "title": "The server is on fire.",
                  "pending_actions": [
                    {
                      "type": "unacknowledge",
                      "at": "2015-11-10T01:02:52Z"
                    },
                    {
                      "type": "resolve",
                      "at": "2015-11-10T04:31:52Z"
                    }
                  ],
                  "incident_key": "baf7cf21b1da41b4b0221008339ff357",
                  "service": {
                    "id": "PIJ90N7",
                    "type": "service_reference",
                    "summary": "My Mail Service",
                    "self": "https://api.pagerduty.com/services/PIJ90N7",
                    "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                  },
                  "priority": {
                    "id": "P53ZZH5",
                    "type": "priority_reference",
                    "summary": "P2",
                    "self": "https://api.pagerduty.com/priorities/P53ZZH5"
                  },
                  "assigned_via": "escalation_policy",
                  "assignments": [
                    {
                      "at": "2015-11-10T00:31:52Z",
                      "assignee": {
                        "id": "PXPGF42",
                        "type": "user_reference",
                        "summary": "Earline Greenholt",
                        "self": "https://api.pagerduty.com/users/PXPGF42",
                        "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                      }
                    }
                  ],
                  "acknowledgements": [
                    {
                      "at": "2015-11-10T00:32:52Z",
                      "acknowledger": {
                        "id": "PXPGF42",
                        "type": "user_reference",
                        "summary": "Earline Greenholt",
                        "self": "https://api.pagerduty.com/users/PXPGF42",
                        "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                      }
                    }
                  ],
                  "resolved_at": "2015-10-06T21:38:23Z",
                  "last_status_change_at": "2015-10-06T21:38:23Z",
                  "last_status_change_by": {
                    "id": "PXPGF42",
                    "type": "user_reference",
                    "summary": "Earline Greenholt",
                    "self": "https://api.pagerduty.com/users/PXPGF42",
                    "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                  },
                  "first_trigger_log_entry": {
                    "id": "Q02JTSNZWHSEKV",
                    "type": "trigger_log_entry_reference",
                    "summary": "Triggered through the API",
                    "self": "https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK",
                    "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV"
                  },
                  "incident_type": {
                    "name": "major_incident"
                  },
                  "escalation_policy": {
                    "id": "PT20YPA",
                    "type": "escalation_policy_reference",
                    "summary": "Another Escalation Policy",
                    "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                    "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                  },
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "urgency": "high"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "description": "Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/responses/Conflict/content/application~1json/schema"
          }
        }
      }
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /incidents/{id}/log_entries

List log entries for an incident

List log entries for the specified incident. An incident represents a problem or an issue that needs to be addressed and resolved. A Log Entry are a record of all events on your account. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.read",
  "tags": [
    "Incidents"
  ],
  "operationId": "listIncidentLogEntries",
  "description": "List log entries for the specified incident.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nA Log Entry are a record of all events on your account.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List log entries for an incident",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    },
    {
      "name": "since",
      "in": "query",
      "description": "The start of the date range over which you want to search.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "until",
      "in": "query",
      "description": "The end of the date range over which you want to search.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "is_overview",
      "in": "query",
      "description": "If `true`, will return a subset of log entries that show only the most important changes to the incident.",
      "required": false,
      "schema": {
        "type": "boolean",
        "default": false
      }
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of the incident's log entries.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "log_entries": {
                    "type": "array",
                    "items": {
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/AcknowledgeLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/AnnotateLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/AssignLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/DelegateLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/EscalateLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/ExhaustEscalationPathLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/NotifyLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/ReachAckLimitLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/ReachTriggerLimitLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/RepeatEscalationPathLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/ResolveLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/SnoozeLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/TriggerLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/UnacknowledgeLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/UrgencyChangeLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/FieldValueChangeLogEntry"
                        },
                        {
                          "$ref": "#/components/schemas/CustomFieldValueChangeLogEntry"
                        }
                      ]
                    }
                  }
                },
                "required": [
                  "log_entries"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "log_entries": [
                  {
                    "id": "Q02JTSNZWHSEKV",
                    "type": "trigger_log_entry",
                    "summary": "Triggered through the API",
                    "self": "https://api.pagerduty.com/log_entries/Q02JTSNZWHSEKV?incident_id=PT4KHLK",
                    "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK/log_entries/Q02JTSNZWHSEKV",
                    "created_at": "2015-11-07T00:14:20Z",
                    "agent": {
                      "id": "PIJ90N7",
                      "type": "service_reference",
                      "summary": "My Mail Service",
                      "self": "https://api.pagerduty.com/services/PIJ90N7",
                      "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7"
                    },
                    "channel": {
                      "type": "api"
                    },
                    "incident": {
                      "id": "PT4KHLK",
                      "type": "incident_reference",
                      "summary": "[#1234] The server is on fire.",
                      "self": "https://api.pagerduty.com/incidents/PT4KHLK",
                      "html_url": "https://subdomain.pagerduty.com/incidents/PT4KHLK"
                    },
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ],
                    "contexts": [],
                    "event_details": {
                      "description": "Tasks::SFDCValidator - PD_Data__c - duplicates"
                    }
                  }
                ]
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /incidents/{id}/notes

List notes for an incident

List existing notes for the specified incident. An incident represents a problem or an issue that needs to be addressed and resolved. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "incidents.read",
  "tags": [
    "Incidents"
  ],
  "operationId": "listIncidentNotes",
  "description": "List existing notes for the specified incident.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List notes for an incident",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    }
  ],
  "responses": {
    "200": {
      "description": "An array of notes.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "notes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/IncidentNote"
                }
              }
            },
            "required": [
              "notes"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "notes": [
                  {
                    "id": "PWL7QXS",
                    "user": {
                      "id": "PXPGF42",
                      "type": "user_reference",
                      "summary": "Earline Greenholt",
                      "self": "https://api.pagerduty.com/users/PXPGF42",
                      "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                    },
                    "channel": {
                      "summary": "The PagerDuty website or APIs"
                    },
                    "content": "Firefighters are on the scene.",
                    "created_at": "2013-03-06T15:28:51-05:00",
                    "updated_at": "2023-10-01T12:00:00-05:00"
                  },
                  {
                    "id": "PCQC25",
                    "user": {
                      "id": "PXPGF42",
                      "type": "bot_user_reference",
                      "summary": "A Global Event Rule",
                      "self": "https://api.pagerduty.com/users/PXPGF42",
                      "html_url": "https://subdomain.pagerduty.com/event-rules/global/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b"
                    },
                    "channel": {
                      "id": "14e56445-ebab-4dd0-ba9d-fc28a41b7e7b",
                      "type": "event_rule_reference",
                      "summary": "A Global Event Rule",
                      "self": "https://api.pagerduty.com/rulesets/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b",
                      "html_url": "https://subdomain.pagerduty.com/event-rules/global/0e84de00-9511-4380-9f4f-a7b568bb49a0/rules/14e56445-ebab-4dd0-ba9d-fc28a41b7e7b"
                    },
                    "content": "Initial alert information indicates a 1-alarm fire",
                    "created_at": "2013-03-06T15:28:42-05:00",
                    "updated_at": "2023-10-01T12:00:00-05:00"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

POST /incidents/{id}/notes

Create a note on an incident

Create a new note for the specified incident. An incident represents a problem or an issue that needs to be addressed and resolved. A maximum of 2000 notes can be added to an incident. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents) Scoped OAuth requires: `incidents.write` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Incidents"
  ],
  "x-pd-requires-scope": "incidents.write",
  "operationId": "createIncidentNote",
  "description": "Create a new note for the specified incident.\n\nAn incident represents a problem or an issue that needs to be addressed and resolved.\n\nA maximum of 2000 notes can be added to an incident.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#incidents)\n\nScoped OAuth requires: `incidents.write`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Create a note on an incident",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    },
    {
      "name": "From",
      "in": "header",
      "description": "The email address of a valid user associated with the account making the request.",
      "required": true,
      "schema": {
        "type": "string",
        "format": "email",
        "minLength": 3,
        "maxLength": 255
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "note"
          ],
          "properties": {
            "note": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "content"
              ],
              "properties": {
                "content": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4000
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "The new note.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "note": {
                "$ref": "#/components/schemas/IncidentNote"
              }
            },
            "required": [
              "note"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "note": {
                  "id": "PWL7QXS",
                  "user": {
                    "id": "PXPGF42",
                    "type": "user_reference",
                    "summary": "Earline Greenholt",
                    "self": "https://api.pagerduty.com/users/PXPGF42",
                    "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                  },
                  "channel": {
                    "summary": "The PagerDuty website or APIs"
                  },
                  "content": "Firefighters are on the scene.",
                  "created_at": "2013-03-06T15:28:51-05:00",
                  "updated_at": "2023-10-01T12:00:00-05:00"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /oncalls

List all of the on-calls

List the on-call entries during a given time range. An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#on-calls) Scoped OAuth requires: `oncalls.read` This API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information. PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "On-Calls"
  ],
  "x-pd-requires-scope": "oncalls.read",
  "x-pd-operation-limit": true,
  "operationId": "listOnCalls",
  "description": "List the on-call entries during a given time range.\n\nAn on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#on-calls)\n\nScoped OAuth requires: `oncalls.read`\n\nThis API operation has operation specific rate limits. See the [Rate Limits](https://developer.pagerduty.com/docs/72d3b724589e3-rest-api-rate-limits) page for more information.\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List all of the on-calls",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "user_ids[]",
      "in": "query",
      "description": "Filters the results, showing only on-calls for the specified user IDs.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "escalation_policy_ids[]",
      "in": "query",
      "description": "Filters the results, showing only on-calls for the specified escalation policy IDs.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "schedule_ids[]",
      "in": "query",
      "description": "Filters the results, showing only on-calls for the specified schedule IDs. If `null` is provided in the array, it includes permanent on-calls due to direct user escalation targets.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "since",
      "in": "query",
      "description": "The start of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "until",
      "in": "query",
      "description": "The end of the time range over which you want to search. If an on-call period overlaps with the range, it will be included in the result. Defaults to current time. On-call shifts are limited to 90 days in the future, and the `until` time cannot be before the `since` time.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "earliest",
      "in": "query",
      "description": "This will filter on-calls such that only the earliest on-call for each combination of escalation policy, escalation level, and user is returned. This is useful for determining when the \"next\" on-calls are for a given set of filters.",
      "schema": {
        "type": "boolean",
        "default": false
      }
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of on-call objects.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "oncalls": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Oncall"
                    }
                  }
                },
                "required": [
                  "oncalls"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "oncalls": [
                  {
                    "user": {
                      "id": "PT23IWX",
                      "type": "user_reference",
                      "summary": "Tim Wright",
                      "self": "https://api.pagerduty.com/users/PT23IWX",
                      "html_url": "https://subdomain.pagerduty.com/users/PT23IWX"
                    },
                    "schedule": {
                      "id": "PI7DH85",
                      "type": "schedule_reference",
                      "summary": "Daily Engineering Rotation",
                      "self": "https://api.pagerduty.com/schedules/PI7DH85",
                      "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85"
                    },
                    "escalation_policy": {
                      "id": "PT20YPA",
                      "type": "escalation_policy_reference",
                      "summary": "Engineering Escalation Policy",
                      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                    },
                    "escalation_level": 2,
                    "start": "2015-03-06T15:28:51-05:00",
                    "end": "2015-03-07T15:28:51-05:00"
                  }
                ],
                "limit": 25,
                "offset": 0,
                "more": false,
                "total": null
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /priorities

List priorities

List existing priorities, in order (most to least severe). A priority is a label representing the importance and impact of an incident. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#priorities) Scoped OAuth requires: `priorities.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Priorities"
  ],
  "x-pd-requires-scope": "priorities.read",
  "operationId": "listPriorities",
  "description": "List existing priorities, in order (most to least severe).\n\nA priority is a label representing the importance and impact of an incident.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#priorities)\n\nScoped OAuth requires: `priorities.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List priorities",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of priorities.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "priorities": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Priority"
                    }
                  }
                },
                "required": [
                  "priorities"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "priorities": [
                  {
                    "id": "PSLWBL8",
                    "type": "priority",
                    "summary": "P1",
                    "self": "https://api.pagerduty.com/priorities/PSLWBL8",
                    "name": "P1",
                    "description": "Critical issue that warrants public notification and liaison with executive teams"
                  },
                  {
                    "id": "P53ZZH5",
                    "type": "priority",
                    "summary": "P2",
                    "self": "https://api.pagerduty.com/priorities/P53ZZH5",
                    "name": "P2",
                    "description": "Critical system issue actively impacting many customers' ability to use the product"
                  },
                  {
                    "id": "PGE9YCZ",
                    "type": "priority",
                    "summary": "P3",
                    "self": "https://api.pagerduty.com/priorities/PGE9YCZ",
                    "name": "P3",
                    "description": "Stability or minor customer-impacting issues that require immediate attention from service owners"
                  },
                  {
                    "id": "PVJPWYW",
                    "type": "priority",
                    "summary": "P4",
                    "self": "https://api.pagerduty.com/priorities/PVJPWYW",
                    "name": "P4",
                    "description": "Minor issues requiring action, but not affecting customer ability to use the product"
                  },
                  {
                    "id": "P81SUUT",
                    "type": "priority",
                    "summary": "P5",
                    "self": "https://api.pagerduty.com/priorities/P81SUUT",
                    "name": "P5",
                    "description": "Cosmetic issues or bugs, not affecting customer ability to use the product"
                  }
                ],
                "limit": 25,
                "offset": 0,
                "more": false,
                "total": null
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "402": {
      "$ref": "#/components/responses/PaymentRequired"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /schedules

List schedules

List the on-call schedules. A Schedule determines the time periods that users are On-Call. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#schedules) Scoped OAuth requires: `schedules.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Schedules"
  ],
  "x-pd-requires-scope": "schedules.read",
  "operationId": "listSchedules",
  "description": "List the on-call schedules.\n\nA Schedule determines the time periods that users are On-Call.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#schedules)\n\nScoped OAuth requires: `schedules.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List schedules",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "query",
      "in": "query",
      "description": "Filters the result, showing only the records whose name matches the query.",
      "required": false,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "since",
      "in": "query",
      "description": "The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. Optional parameter. When provided with include[] for schedule types, populates the rendered_schedule_entries fields in the response.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "until",
      "in": "query",
      "description": "The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. Optional parameter. When provided with include[] for schedule types, populates the rendered_schedule_entries fields in the response.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "team_ids[]",
      "in": "query",
      "description": "An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of schedule objects.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "schedules": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Schedule"
                    }
                  }
                },
                "required": [
                  "schedules"
                ]
              }
            ]
          },
          "examples": {
            "Basic Example": {
              "value": {
                "schedules": [
                  {
                    "id": "PI7DH85",
                    "type": "schedule",
                    "summary": "Daily Engineering Rotation",
                    "self": "https://api.pagerduty.com/schedules/PI7DH85",
                    "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85",
                    "name": "Daily Engineering Rotation",
                    "time_zone": "America/New_York",
                    "description": "Rotation schedule for engineering",
                    "escalation_policies": [
                      {
                        "id": "PT20YPA",
                        "type": "escalation_policy_reference",
                        "summary": "Another Escalation Policy",
                        "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                        "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                      }
                    ],
                    "users": [
                      {
                        "id": "PEYSGVF",
                        "type": "user_reference",
                        "summary": "PagerDuty Admin",
                        "self": "https://api.pagerduty.com/users/PEYSGVF",
                        "html_url": "https://subdomain.pagerduty.com/users/PEYSGVF"
                      }
                    ]
                  }
                ],
                "limit": 100,
                "offset": 0,
                "more": false,
                "total": null
              }
            },
            "With Schedule Layers": {
              "summary": "With Schedule Layers Included",
              "value": {
                "schedules": [
                  {
                    "id": "PI7DH85",
                    "type": "schedule",
                    "summary": "Daily Engineering Rotation",
                    "self": "https://api.pagerduty.com/schedules/PI7DH85",
                    "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85",
                    "name": "Daily Engineering Rotation",
                    "time_zone": "America/New_York",
                    "description": "Rotation schedule for engineering",
                    "escalation_policies": [
                      {
                        "id": "PT20YPA",
                        "type": "escalation_policy_reference",
                        "summary": "Another Escalation Policy",
                        "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                        "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                      }
                    ],
                    "users": [
                      {
                        "id": "PEYSGVF",
                        "type": "user_reference",
                        "summary": "PagerDuty Admin",
                        "self": "https://api.pagerduty.com/users/PEYSGVF",
                        "html_url": "https://subdomain.pagerduty.com/users/PEYSGVF"
                      }
                    ],
                    "schedule_layers": [
                      {
                        "name": "Night Shift",
                        "start": "2015-11-06T20:00:00-05:00",
                        "end": "2016-11-06T20:00:00-05:00",
                        "rotation_virtual_start": "2015-11-06T20:00:00-05:00",
                        "rotation_turn_length_seconds": 86400,
                        "users": [
                          {
                            "user": {
                              "id": "PEYSGVF",
                              "type": "user_reference",
                              "summary": "PagerDuty Admin",
                              "self": "https://api.pagerduty.com/users/PEYSGVF",
                              "html_url": "https://subdomain.pagerduty.com/users/PEYSGVF"
                            }
                          }
                        ],
                        "restrictions": [
                          {
                            "type": "daily_restriction",
                            "start_time_of_day": "08:00:00",
                            "duration_seconds": 32400
                          }
                        ]
                      }
                    ]
                  }
                ],
                "limit": 100,
                "offset": 0,
                "more": false,
                "total": null
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /schedules/{id}

Get a schedule

Show detailed information about a schedule, including entries for each layer. Scoped OAuth requires: `schedules.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Schedules"
  ],
  "x-pd-requires-scope": "schedules.read",
  "operationId": "getSchedule",
  "description": "Show detailed information about a schedule, including entries for each layer.\nScoped OAuth requires: `schedules.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Get a schedule",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "since",
      "in": "query",
      "description": "The start of the date range over which you want to show schedule entries. Defaults to 2 weeks before until if an until is given. Optional parameter. When provided with include[] for schedule types, populates the rendered_schedule_entries fields in the response.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "until",
      "in": "query",
      "description": "The end of the date range over which you want to show schedule entries. Defaults to 2 weeks after since if a since is given. Optional parameter. When provided with include[] for schedule types, populates the rendered_schedule_entries fields in the response.",
      "schema": {
        "type": "string",
        "format": "date-time",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
      }
    },
    {
      "name": "overflow",
      "in": "query",
      "description": "Any on-call schedule entries that pass the date range bounds will be truncated at the bounds, unless the parameter `overflow=true` is passed. This parameter defaults to false.\nFor instance, if your schedule is a rotation that changes daily at midnight UTC, and your date range is from `2011-06-01T10:00:00Z` to `2011-06-01T14:00:00Z`:\n\n\n- If you don't pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T10:00:00Z` and end of `2011-06-01T14:00:00Z`.\n- If you do pass the `overflow=true` parameter, you will get one schedule entry returned with a start of `2011-06-01T00:00:00Z` and end of `2011-06-02T00:00:00Z`.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "id",
      "description": "The ID of the schedule.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      },
      "example": "P2LJD7G"
    }
  ],
  "responses": {
    "200": {
      "description": "The schedule object.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "schedule": {
                "$ref": "#/components/schemas/Schedule"
              }
            },
            "required": [
              "schedule"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "schedule": {
                  "id": "PI7DH85",
                  "type": "schedule",
                  "summary": "Daily Engineering Rotation",
                  "self": "https://api.pagerduty.com/schedules/PI7DH85",
                  "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85",
                  "name": "Daily Engineering Rotation",
                  "time_zone": "America/New_York",
                  "description": "Rotation schedule for engineering",
                  "escalation_policies": [
                    {
                      "id": "PT20YPA",
                      "type": "escalation_policy_reference",
                      "summary": "Another Escalation Policy",
                      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                    }
                  ],
                  "users": [
                    {
                      "id": "PXPGF42",
                      "type": "user_reference",
                      "summary": "Regina Phalange",
                      "self": "https://api.pagerduty.com/users/PXPGF42",
                      "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                    }
                  ],
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "schedule_layers": [
                    {
                      "name": "Layer 1",
                      "rendered_schedule_entries": [
                        {
                          "start": "2015-11-09T08:00:00-05:00",
                          "end": "2015-11-09T17:00:00-05:00",
                          "user": {
                            "id": "PXPGF42",
                            "type": "user_reference",
                            "summary": "Regina Phalange",
                            "self": "https://api.pagerduty.com/users/PXPGF42",
                            "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                          }
                        }
                      ],
                      "rendered_coverage_percentage": 37.5,
                      "id": "PG68P1M",
                      "start": "2015-11-06T21:00:00-05:00",
                      "rotation_virtual_start": "2015-11-06T20:00:00-05:00",
                      "rotation_turn_length_seconds": 86400,
                      "users": [
                        {
                          "user": {
                            "id": "PXPGF42",
                            "type": "user_reference",
                            "summary": "Regina Phalange",
                            "self": "https://api.pagerduty.com/users/PXPGF42",
                            "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                          }
                        }
                      ],
                      "restrictions": [
                        {
                          "type": "daily_restriction",
                          "start_time_of_day": "08:00:00",
                          "duration_seconds": 32400
                        }
                      ]
                    }
                  ],
                  "overrides_subschedule": {
                    "name": "Overrides",
                    "rendered_schedule_entries": [],
                    "rendered_coverage_percentage": 0
                  },
                  "final_schedule": {
                    "name": "Final Schedule",
                    "rendered_schedule_entries": [
                      {
                        "start": "2015-11-10T08:00:00-05:00",
                        "end": "2015-11-10T17:00:00-05:00",
                        "user": {
                          "id": "PXPGF42",
                          "type": "user_reference",
                          "summary": "Regina Phalange",
                          "self": "https://api.pagerduty.com/users/PXPGF42",
                          "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                        }
                      }
                    ],
                    "rendered_coverage_percentage": 37.5
                  },
                  "next_oncall_for_user": {
                    "start": "2021-12-27T16:00:00-05:00",
                    "end": "2022-01-03T16:00:00-05:00",
                    "user": [
                      {
                        "id": "PCQNVHM",
                        "type": "user_reference",
                        "summary": "Jim Halpert",
                        "self": "https://api.pagerduty.com/users/PCQNVHM",
                        "html_url": "https://subdomain.pagerduty.com/users/PCQNVHM"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

PUT /schedules/{id}

Update a schedule

Update an existing on-call schedule. A Schedule determines the time periods that users are On-Call. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#schedules) Scoped OAuth requires: `schedules.write` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Schedules"
  ],
  "x-pd-requires-scope": "schedules.write",
  "operationId": "updateSchedule",
  "description": "Update an existing on-call schedule.\n\nA Schedule determines the time periods that users are On-Call.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#schedules)\n\nScoped OAuth requires: `schedules.write`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Update a schedule",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "schedule"
          ],
          "properties": {
            "schedule": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "type",
                "time_zone",
                "schedule_layers"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "schedule"
                  ]
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 255
                },
                "description": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 1024
                },
                "time_zone": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64
                },
                "schedule_layers": {
                  "type": "array",
                  "minItems": 1,
                  "maxItems": 8,
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "required": [
                      "start",
                      "users",
                      "rotation_virtual_start",
                      "rotation_turn_length_seconds"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 64
                      },
                      "name": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 255
                      },
                      "start": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
                      },
                      "end": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
                      },
                      "rotation_virtual_start": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,6})?(Z|[+-]\\d{2}:\\d{2})$"
                      },
                      "rotation_turn_length_seconds": {
                        "type": "integer",
                        "minimum": 3600,
                        "maximum": 31536000
                      },
                      "users": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 50,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "user"
                          ],
                          "properties": {
                            "user": {
                              "type": "object",
                              "additionalProperties": false,
                              "required": [
                                "id",
                                "type"
                              ],
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                "type": {
                                  "type": "string",
                                  "enum": [
                                    "user_reference"
                                  ]
                                }
                              }
                            }
                          }
                        }
                      },
                      "restrictions": {
                        "type": "array",
                        "minItems": 1,
                        "maxItems": 8,
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "required": [
                            "type",
                            "duration_seconds",
                            "start_time_of_day"
                          ],
                          "properties": {
                            "type": {
                              "type": "string",
                              "enum": [
                                "daily_restriction",
                                "weekly_restriction"
                              ]
                            },
                            "duration_seconds": {
                              "type": "integer",
                              "minimum": 60,
                              "maximum": 604800
                            },
                            "start_time_of_day": {
                              "type": "string",
                              "format": "partial-time",
                              "pattern": "^([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d$"
                            },
                            "start_day_of_week": {
                              "type": "integer",
                              "minimum": 1,
                              "maximum": 7
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "The updated schedule.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "schedule": {
                "$ref": "#/components/schemas/Schedule"
              }
            },
            "required": [
              "schedule"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "schedule": {
                  "id": "PI7DH85",
                  "type": "schedule",
                  "summary": "Daily Engineering Rotation",
                  "self": "https://api.pagerduty.com/schedules/PI7DH85",
                  "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85",
                  "name": "Daily Engineering Rotation",
                  "time_zone": "America/New_York",
                  "description": "Rotation schedule for engineering",
                  "escalation_policies": [
                    {
                      "id": "PT20YPA",
                      "type": "escalation_policy_reference",
                      "summary": "Another Escalation Policy",
                      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                    }
                  ],
                  "users": [
                    {
                      "id": "PXPGF42",
                      "type": "user_reference",
                      "summary": "Regina Phalange",
                      "self": "https://api.pagerduty.com/users/PXPGF42",
                      "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                    }
                  ],
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "schedule_layers": [
                    {
                      "name": "Layer 1",
                      "rendered_schedule_entries": [],
                      "id": "PG68P1M",
                      "start": "2015-11-06T20:00:00-05:00",
                      "rotation_virtual_start": "2015-11-06T20:00:00-05:00",
                      "rotation_turn_length_seconds": 86400,
                      "users": [
                        {
                          "user": {
                            "id": "PXPGF42",
                            "type": "user_reference",
                            "summary": "Regina Phalange",
                            "self": "https://api.pagerduty.com/users/PXPGF42",
                            "html_url": "https://subdomain.pagerduty.com/users/PXPGF42"
                          }
                        }
                      ],
                      "restrictions": [
                        {
                          "type": "daily_restriction",
                          "start_time_of_day": "08:00:00",
                          "duration_seconds": 32400
                        }
                      ]
                    }
                  ],
                  "overrides_subschedule": {
                    "name": "Overrides",
                    "rendered_schedule_entries": []
                  },
                  "final_schedule": {
                    "name": "Final Schedule",
                    "rendered_schedule_entries": []
                  }
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /services

List services

List existing Services. A service may represent an application, component, or team you wish to open incidents against. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#services) Scoped OAuth requires: `services.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Services"
  ],
  "operationId": "listServices",
  "x-pd-requires-scope": "services.read",
  "description": "List existing Services.\n\nA service may represent an application, component, or team you wish to open incidents against.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#services)\n\nScoped OAuth requires: `services.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List services",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "query",
      "in": "query",
      "description": "Filters the result, showing only the records whose name matches the query.",
      "required": false,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    },
    {
      "name": "team_ids[]",
      "in": "query",
      "description": "An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "name",
      "in": "query",
      "description": "Filters the results, showing only services with the specified name.",
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of services.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "services": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/Service"
                    }
                  }
                },
                "required": [
                  "services"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "services": [
                  {
                    "id": "PIJ90N7",
                    "summary": "My Application Service",
                    "type": "service",
                    "self": "https://api.pagerduty.com/services/PIJ90N7",
                    "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7",
                    "name": "My Application Service",
                    "auto_resolve_timeout": 14400,
                    "acknowledgement_timeout": 600,
                    "created_at": "2015-11-06T11:12:51-05:00",
                    "status": "active",
                    "alert_creation": "create_alerts_and_incidents",
                    "alert_grouping_parameters": {
                      "type": "intelligent"
                    },
                    "integrations": [
                      {
                        "id": "PQ12345",
                        "type": "generic_email_inbound_integration_reference",
                        "summary": "Email Integration",
                        "self": "https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345",
                        "html_url": "https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345"
                      }
                    ],
                    "escalation_policy": {
                      "id": "PT20YPA",
                      "type": "escalation_policy_reference",
                      "summary": "Another Escalation Policy",
                      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                    },
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ],
                    "incident_urgency_rule": {
                      "type": "use_support_hours",
                      "during_support_hours": {
                        "type": "constant",
                        "urgency": "high"
                      },
                      "outside_support_hours": {
                        "type": "constant",
                        "urgency": "low"
                      }
                    },
                    "support_hours": {
                      "type": "fixed_time_per_day",
                      "time_zone": "America/Lima",
                      "start_time": "09:00:00",
                      "end_time": "17:00:00",
                      "days_of_week": [
                        1,
                        2,
                        3,
                        4,
                        5
                      ]
                    },
                    "scheduled_actions": [
                      {
                        "type": "urgency_change",
                        "at": {
                          "type": "named_time",
                          "name": "support_hours_start"
                        },
                        "to_urgency": "high"
                      }
                    ],
                    "auto_pause_notifications_parameters": {
                      "enabled": true,
                      "timeout": 300
                    }
                  }
                ],
                "limit": 25,
                "offset": 0,
                "more": false,
                "total": null
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /services/{id}

Get a service

Get details about an existing service. A service may represent an application, component, or team you wish to open incidents against. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#services) Scoped OAuth requires: `services.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Services"
  ],
  "operationId": "getService",
  "x-pd-requires-scope": "services.read",
  "description": "Get details about an existing service.\n\nA service may represent an application, component, or team you wish to open incidents against.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#services)\n\nScoped OAuth requires: `services.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Get a service",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    }
  ],
  "responses": {
    "200": {
      "description": "The service requested.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "service": {
                "$ref": "#/components/schemas/Service"
              }
            },
            "required": [
              "service"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "service": {
                  "id": "PIJ90N7",
                  "type": "service",
                  "summary": "My Application Service",
                  "self": "https://api.pagerduty.com/services/PIJ90N7",
                  "html_url": "https://subdomain.pagerduty.com/service-directory/PIJ90N7",
                  "name": "My Application Service",
                  "auto_resolve_timeout": 14400,
                  "acknowledgement_timeout": 600,
                  "created_at": "2015-11-06T11:12:51-05:00",
                  "status": "active",
                  "alert_creation": "create_alerts_and_incidents",
                  "integrations": [
                    {
                      "id": "PQ12345",
                      "type": "generic_email_inbound_integration_reference",
                      "summary": "Email Integration",
                      "self": "https://api.pagerduty.com/services/PIJ90N7/integrations/PQ12345",
                      "html_url": "https://subdomain.pagerduty.com/services/PIJ90N7/integrations/PQ12345"
                    }
                  ],
                  "escalation_policy": {
                    "id": "PT20YPA",
                    "type": "escalation_policy_reference",
                    "summary": "Another Escalation Policy",
                    "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
                    "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
                  },
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "incident_urgency_rule": {
                    "type": "use_support_hours",
                    "during_support_hours": {
                      "type": "constant",
                      "urgency": "high"
                    },
                    "outside_support_hours": {
                      "type": "constant",
                      "urgency": "low"
                    }
                  },
                  "support_hours": {
                    "type": "fixed_time_per_day",
                    "time_zone": "America/Lima",
                    "start_time": "09:00:00",
                    "end_time": "17:00:00",
                    "days_of_week": [
                      1,
                      2,
                      3,
                      4,
                      5
                    ]
                  },
                  "scheduled_actions": [
                    {
                      "type": "urgency_change",
                      "at": {
                        "type": "named_time",
                        "name": "support_hours_start"
                      },
                      "to_urgency": "high"
                    }
                  ],
                  "auto_pause_notifications_parameters": {
                    "enabled": true,
                    "timeout": 300
                  }
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /users

List users

List users of your PagerDuty account, optionally filtered by a search query. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#users) Scoped OAuth requires: `users.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "users.read",
  "tags": [
    "Users"
  ],
  "operationId": "listUsers",
  "description": "List users of your PagerDuty account, optionally filtered by a search query.\n\nUsers are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#users)\n\nScoped OAuth requires: `users.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "List users",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "query",
      "in": "query",
      "description": "Filters the result, showing only the records whose name matches the query.",
      "required": false,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 255
      }
    },
    {
      "name": "team_ids[]",
      "in": "query",
      "description": "An array of team IDs. Only results related to these teams will be returned. Account must have the `teams` ability to use this parameter.",
      "explode": true,
      "schema": {
        "type": "array",
        "minItems": 1,
        "maxItems": 100,
        "uniqueItems": true,
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 64
        }
      },
      "style": "form"
    },
    {
      "name": "limit",
      "in": "query",
      "required": false,
      "description": "The number of results per page.",
      "schema": {
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      }
    },
    {
      "name": "offset",
      "in": "query",
      "required": false,
      "description": "Offset to start pagination search results.",
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 10000
      }
    },
    {
      "name": "total",
      "in": "query",
      "required": false,
      "description": "By default the `total` field in pagination responses is set to `null` to provide the fastest possible response times. Set `total` to `true` for this field to be populated.\n\nSee our [Pagination Docs](https://developer.pagerduty.com/docs/rest-api-v2/pagination/) for more information.\n",
      "schema": {
        "type": "boolean",
        "default": false
      }
    }
  ],
  "responses": {
    "200": {
      "description": "A paginated array of users.",
      "content": {
        "application/json": {
          "schema": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Pagination"
              },
              {
                "type": "object",
                "properties": {
                  "users": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/User"
                    }
                  }
                },
                "required": [
                  "users"
                ]
              }
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "users": [
                  {
                    "id": "PXPGF42",
                    "type": "user",
                    "summary": "Earline Greenholt",
                    "self": "https://api.pagerduty.com/users/PXPGF42",
                    "html_url": "https://subdomain.pagerduty.com/users/PXPGF42",
                    "name": "Earline Greenholt",
                    "email": "125.greenholt.earline@graham.name",
                    "time_zone": "America/Lima",
                    "color": "green",
                    "role": "admin",
                    "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png",
                    "description": "I'm the boss",
                    "invitation_sent": false,
                    "created_via_sso": true,
                    "contact_methods": [
                      {
                        "id": "PTDVERC",
                        "type": "email_contact_method_reference",
                        "summary": "Default",
                        "self": "https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC"
                      }
                    ],
                    "notification_rules": [
                      {
                        "id": "P8GRWKK",
                        "type": "assignment_notification_rule_reference",
                        "summary": "Default",
                        "self": "https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK",
                        "html_url": null
                      }
                    ],
                    "job_title": "Director of Engineering",
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ]
                  },
                  {
                    "id": "PAM4FGS",
                    "type": "user",
                    "summary": "Kyler Kuhn",
                    "self": "https://api.pagerduty.com/users/PAM4FGS",
                    "html_url": "https://subdomain.pagerduty.com/users/PAM4FGS",
                    "name": "Kyler Kuhn",
                    "email": "126_dvm_kyler_kuhn@beahan.name",
                    "time_zone": "Asia/Hong_Kong",
                    "color": "red",
                    "role": "admin",
                    "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png",
                    "description": "Actually, I am the boss",
                    "invitation_sent": false,
                    "created_via_sso": false,
                    "contact_methods": [
                      {
                        "id": "PVMGSML",
                        "type": "email_contact_method_reference",
                        "summary": "Work",
                        "self": "https://api.pagerduty.com/users/PAM4FGS/contact_methods/PVMGSMLL"
                      }
                    ],
                    "notification_rules": [
                      {
                        "id": "P8GRWKK",
                        "type": "assignment_notification_rule_reference",
                        "summary": "Default",
                        "self": "https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK",
                        "html_url": null
                      }
                    ],
                    "job_title": "Senior Engineer",
                    "teams": [
                      {
                        "id": "PQ9K7I8",
                        "type": "team_reference",
                        "summary": "Engineering",
                        "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                        "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                      }
                    ]
                  }
                ],
                "limit": 25,
                "offset": 0,
                "more": false,
                "total": null
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /users/{id}

Get a user

Get details about an existing user. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#users) Scoped OAuth requires: `users.read` PurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "x-pd-requires-scope": "users.read",
  "tags": [
    "Users"
  ],
  "operationId": "getUser",
  "description": "Get details about an existing user.\n\nUsers are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#users)\n\nScoped OAuth requires: `users.read`\n\nPurpleSuite executable core. Request bodies are closed to undeclared properties and bounded; `include[]`, `time_zone` and the unlisted sort orders are removed from this document rather than accepted and ignored. `self`/`html_url` are omitted from responses so no emitted link points at a vendor origin.",
  "summary": "Get a user",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    },
    {
      "name": "id",
      "description": "The ID of the resource.",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 1,
        "maxLength": 64
      }
    }
  ],
  "responses": {
    "200": {
      "description": "The user requested.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "user": {
                "$ref": "#/components/schemas/User"
              }
            },
            "required": [
              "user"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "user": {
                  "id": "PXPGF42",
                  "type": "user",
                  "summary": "Earline Greenholt",
                  "self": "https://api.pagerduty.com/users/PXPGF42",
                  "html_url": "https://subdomain.pagerduty.com/users/PXPGF42",
                  "name": "Earline Greenholt",
                  "email": "125.greenholt.earline@graham.name",
                  "time_zone": "America/Lima",
                  "color": "green",
                  "role": "admin",
                  "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png",
                  "description": "I'm the boss",
                  "invitation_sent": false,
                  "created_via_sso": true,
                  "contact_methods": [
                    {
                      "id": "PTDVERC",
                      "type": "email_contact_method_reference",
                      "summary": "Default",
                      "self": "https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC"
                    }
                  ],
                  "notification_rules": [
                    {
                      "id": "P8GRWKK",
                      "type": "assignment_notification_rule_reference",
                      "summary": "Default",
                      "self": "https://api.pagerduty.com/users/PXPGF42/notification_rules/P8GRWKK",
                      "html_url": null
                    }
                  ],
                  "job_title": "Director of Engineering",
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ],
                  "http_cal_url": "https://webcal.pagerduty.com/private/ABCDEFGHIJKLMNOP/feed",
                  "web_cal_url": "webcal://webcal.pagerduty.com/private/ABCDEFGHIJKLMNOP/feed"
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "403": {
      "$ref": "#/components/responses/Forbidden"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "modeled-core"
}

GET /users/me

Get the current user

Get details about the current user. This endpoint can only be used with a [user-level API key](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or a key generated through an OAuth flow. This will not work if the request is made with an account-level access token. Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account. For more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#users) Not available in PurpleSuite: the instance key stands in for an account-scoped REST API key, which has no requester user. This operation validates the request and returns the vendor's error envelope; it never returns a synthetic user.

Authentication

[
  {
    "api_key": []
  }
]

Request, responses and operation details

{
  "tags": [
    "Users"
  ],
  "operationId": "getCurrentUser",
  "description": "Get details about the current user.\n\nThis endpoint can only be used with a [user-level API key](https://support.pagerduty.com/docs/using-the-api#section-generating-a-personal-rest-api-key) or a key generated through an OAuth flow. This will not work if the request is made with an account-level access token.\n\nUsers are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account.\n\nFor more information see the [API Concepts Document](../../api-reference/a47605517c19a-api-concepts#users)\n\nNot available in PurpleSuite: the instance key stands in for an account-scoped REST API key, which has no requester user. This operation validates the request and returns the vendor's error envelope; it never returns a synthetic user.",
  "summary": "Get the current user",
  "parameters": [
    {
      "name": "Accept",
      "description": "The `Accept` header is used as a versioning header.",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "enum": [
          "application/vnd.pagerduty+json;version=2"
        ]
      }
    },
    {
      "name": "Content-Type",
      "in": "header",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "application/json"
        ]
      }
    }
  ],
  "responses": {
    "200": {
      "description": "The requesting user.",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "user": {
                "$ref": "#/components/schemas/User"
              }
            },
            "required": [
              "user"
            ]
          },
          "examples": {
            "response": {
              "summary": "Response Example",
              "value": {
                "user": {
                  "id": "PXPGF42",
                  "type": "user",
                  "summary": "Earline Greenholt",
                  "self": "https://api.pagerduty.com/users/PXPGF42",
                  "html_url": "https://subdomain.pagerduty.com/users/PXPGF42",
                  "name": "Earline Greenholt",
                  "email": "125.greenholt.earline@graham.name",
                  "time_zone": "America/Lima",
                  "color": "green",
                  "role": "admin",
                  "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png",
                  "description": null,
                  "invitation_sent": false,
                  "job_title": "Director of Engineering",
                  "created_via_sso": "true,",
                  "contact_methods": [
                    {
                      "id": "PTDVERC",
                      "type": "email_contact_method_reference",
                      "summary": "Default",
                      "self": "https://api.pagerduty.com/users/PXPGF42/contact_methods/PTDVERC",
                      "html_url": null
                    }
                  ],
                  "notification_rules": [
                    {
                      "id": "P8GRWKK",
                      "type": "assignment_notification_rule_reference",
                      "summary": "Default",
                      "self": "https://api.pagerduty.com/users/PXPGF42/notification_rules/PTDVERC",
                      "html_url": null
                    }
                  ],
                  "teams": [
                    {
                      "id": "PQ9K7I8",
                      "type": "team_reference",
                      "summary": "Engineering",
                      "self": "https://api.pagerduty.com/teams/PQ9K7I8",
                      "html_url": "https://subdomain.pagerduty.com/teams/PQ9K7I8"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "400": {
      "$ref": "#/components/responses/ArgumentError"
    },
    "429": {
      "$ref": "#/components/responses/TooManyRequests"
    }
  },
  "x-purplesuite-classification": "unavailable"
}

Schemas and reusable components

securitySchemes

api_key

{
  "type": "apiKey",
  "name": "Authorization",
  "in": "header",
  "description": "The API Key with format `Token token=<API_KEY>`",
  "x-default": "Token token=your-api-key"
}

responses

ArgumentError

{
  "description": "Caller provided invalid arguments. Please review the response for error details. Retrying with the same arguments will *not* work.",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

Conflict

{
  "description": "The request conflicts with the current state of the server.",
  "content": {
    "application/json": {
      "schema": {
        "description": "Generic error response from the PagerDuty API",
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "integer",
                "readOnly": true
              },
              "message": {
                "type": "string",
                "readOnly": true,
                "description": "Error message string"
              },
              "errors": {
                "type": "array",
                "readOnly": true,
                "items": {
                  "type": "string",
                  "readOnly": true,
                  "description": "Human-readable error details"
                }
              }
            },
            "example": {
              "message": "Not Found",
              "code": 2100
            }
          }
        }
      }
    }
  }
}

Forbidden

{
  "description": "Caller is not authorized to view the requested resource.\nWhile your authentication is valid, the authenticated user or token does not have permission to perform this action.\n",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

NotFound

{
  "description": "The requested resource was not found.",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

PaymentRequired

{
  "description": "Account does not have the abilities to perform the action. Please review the response for the required abilities.\nYou can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account.\n",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

RequestEntityTooLarge

{
  "description": "Caller provided a request that is too large to process.",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

TooManyRequests

{
  "description": "Too many requests have been made, the rate limit has been reached.",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

Unauthorized

{
  "description": "Caller did not supply credentials or did not provide the correct credentials.\nIf you are using an API key, it may be invalid or your Authorization header may be malformed.\n",
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/responses/Conflict/content/application~1json/schema"
      }
    }
  }
}

schemas

AcknowledgeLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "acknowledgement_timeout": {
          "type": "integer",
          "description": "Duration for which the acknowledgement lasts, in seconds. Services can contain an `acknowledgement_timeout` property, which specifies the length of time acknowledgements should last for. Each time an incident is acknowledged, this timeout is copied into the acknowledgement log entry. This property is optional, as older log entries may not contain it. It may also be `null`, as acknowledgements can be performed on incidents whose services have no `acknowledgement_timeout` set."
        },
        "type": {
          "type": "string",
          "enum": [
            "acknowledgement_log_entry"
          ]
        }
      }
    }
  ]
}

Acknowledgement

{
  "type": "object",
  "properties": {
    "at": {
      "type": "string",
      "format": "date-time",
      "description": "Time at which the acknowledgement was created."
    },
    "acknowledger": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/AcknowledgerReference"
        },
        {
          "$ref": "#/components/schemas/User"
        },
        {
          "$ref": "#/components/schemas/Service"
        }
      ]
    }
  },
  "required": [
    "at",
    "acknowledger"
  ]
}

AcknowledgerReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "description": "The acknowledger represents the entity that made the acknowledgement for an incident.",
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "user_reference",
            "service_reference"
          ],
          "type": "string"
        }
      }
    }
  ]
}

AddonReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "src": {
          "type": "string",
          "format": "url",
          "description": "The URL source of the Addon"
        },
        "name": {
          "type": "string",
          "description": "The user entered name of the Addon."
        },
        "type": {
          "type": "string",
          "enum": [
            "full_page_addon_reference",
            "incident_show_addon_reference"
          ]
        }
      }
    }
  ]
}

AgentReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "description": "The agent (user, service or integration) that created or modified the Incident Log Entry.",
      "properties": {
        "type": {
          "enum": [
            "user_reference",
            "service_reference",
            "integration_reference"
          ],
          "type": "string"
        }
      },
      "readOnly": true
    }
  ]
}

AlertCount

{
  "type": "object",
  "properties": {
    "triggered": {
      "type": "integer",
      "description": "The count of triggered alerts grouped into this incident"
    },
    "resolved": {
      "type": "integer",
      "description": "The count of resolved alerts grouped into this incident"
    },
    "all": {
      "type": "integer",
      "description": "The total count of alerts grouped into this incident"
    }
  }
}

AlertGroupingParameters

{
  "type": "object",
  "title": "Alert Grouping Parameters",
  "deprecated": true,
  "description": "Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. To turn grouping off set the type to null.\nThis attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged.\n",
  "properties": {
    "type": {
      "type": "string",
      "nullable": true,
      "enum": [
        "time",
        "intelligent",
        "content_based",
        null
      ]
    },
    "config": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/FlexibleTimeWindowIntelligentAlertGroupingConfig"
        },
        {
          "$ref": "#/components/schemas/TimeBasedAlertGroupingConfiguration"
        },
        {
          "$ref": "#/components/schemas/ContentBasedAlertGroupingConfiguration"
        }
      ]
    }
  }
}

AnnotateLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "annotate_log_entry"
          ]
        }
      }
    }
  ]
}

AssignLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "assignees": {
          "type": "array",
          "readOnly": true,
          "description": "An array of assigned Users for this log entry",
          "items": {
            "$ref": "#/components/schemas/UserReference"
          }
        },
        "type": {
          "type": "string",
          "enum": [
            "assign_log_entry"
          ]
        }
      }
    }
  ]
}

Assignment

{
  "type": "object",
  "properties": {
    "at": {
      "type": "string",
      "format": "date-time",
      "description": "Time at which the assignment was created."
    },
    "assignee": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/UserReference"
        },
        {
          "$ref": "#/components/schemas/User"
        }
      ]
    }
  },
  "required": [
    "at",
    "assignee"
  ]
}

AutoPauseNotificationsParameters

{
  "title": "AutoPauseNotificationsParameters",
  "type": "object",
  "description": "Defines how alerts on this service are automatically suspended for a period of time before triggering, when identified as likely being transient. Note that automatically pausing notifications is only available on certain plans.",
  "properties": {
    "enabled": {
      "type": "boolean",
      "default": false,
      "description": "Indicates whether alerts should be automatically suspended when identified as transient"
    },
    "timeout": {
      "type": "integer",
      "enum": [
        0,
        120,
        180,
        300,
        600,
        900
      ],
      "description": "Indicates in seconds how long alerts should be suspended before triggering. To automatically select the recommended timeout for a service, set this value to `0`."
    },
    "recommended_timeout": {
      "type": "integer",
      "enum": [
        120,
        180,
        300,
        600,
        900
      ],
      "description": "The recommended timeout setting for this service based on prior alert patterns."
    }
  },
  "example": {
    "enabled": true,
    "timeout": 300
  }
}

Channel

{
  "type": "object",
  "description": "Polymorphic object representation of the means by which the action was channeled. Has different formats depending on type, indicated by channel[type]. Will be one of `auto`, `email`, `api`, `nagios`, or `timeout` if `agent[type]` is `service`. Will be one of `email`, `sms`, `website`, `web_trigger`, or `note` if `agent[type]` is `user`.",
  "properties": {
    "type": {
      "type": "string",
      "description": "type"
    },
    "user": {
      "type": "object"
    },
    "team": {
      "type": "object"
    },
    "notification": {
      "$ref": "#/components/schemas/Notification"
    },
    "channel": {
      "type": "object",
      "description": "channel"
    },
    "changeset": {
      "type": "object",
      "description": "Changeset present in CustomFieldsValueChange and FieldValueChange log entries.",
      "properties": {
        "customer_fields": {
          "type": "array",
          "description": "Customer Fields present in CustomFieldsValueChange and FieldValueChange log entries.",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "PDB5RLI"
              },
              "name": {
                "type": "string",
                "example": "serial_number_hardware"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "namespace": {
                "type": "string",
                "example": "incidents"
              },
              "old_value": {
                "type": "string",
                "nullable": true,
                "example": null
              }
            }
          }
        },
        "application_fields": {
          "type": "array",
          "description": "Application Fields present in CustomFieldsValueChange and FieldValueChange log entries.",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "PIJ90N7"
              },
              "name": {
                "type": "string",
                "example": "service"
              },
              "value": {
                "oneOf": [
                  {
                    "type": "string",
                    "example": "PIZW265"
                  },
                  {
                    "type": "integer",
                    "example": 130
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ]
              },
              "namespace": {
                "type": "string",
                "example": "incidents"
              },
              "old_value": {
                "type": "string",
                "nullable": true,
                "example": null
              }
            }
          }
        },
        "custom_attributes": {
          "type": "object",
          "description": "Custom attributes for the changeset.",
          "additionalProperties": {
            "type": "string"
          }
        },
        "customer_schema": {
          "type": "object",
          "properties": {
            "old_value": {
              "type": "string",
              "nullable": true,
              "example": null
            }
          }
        }
      }
    }
  },
  "required": [
    "type"
  ],
  "oneOf": [
    {
      "title": "NagiosChannel",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Will be `nagios`"
        },
        "summary": {
          "type": "string",
          "description": "Same as `host`"
        },
        "host": {
          "type": "string",
          "description": "Nagios host"
        },
        "service": {
          "type": "string",
          "description": "Nagios service that created the event, if applicable"
        },
        "state": {
          "type": "string",
          "description": "State that caused the event"
        },
        "details": {
          "type": "object",
          "description": "Additional details of the incident"
        }
      }
    },
    {
      "title": "APIChannel",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Will be `api`"
        },
        "summary": {
          "type": "string",
          "description": "Same as `description`"
        },
        "service_key": {
          "type": "string",
          "description": "API service key"
        },
        "description": {
          "type": "string",
          "description": "Description of the event"
        },
        "incident_key": {
          "type": "string",
          "description": "Incident deduping string"
        },
        "details": {
          "type": "object",
          "description": "Additional details of the incident"
        }
      }
    },
    {
      "title": "EmailChannel",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Will be `email`"
        },
        "summary": {
          "type": "string",
          "description": "Same as `subject`"
        },
        "to": {
          "type": "string",
          "description": "To address of the email"
        },
        "from": {
          "type": "string",
          "description": "From address of the email"
        },
        "subject": {
          "type": "string",
          "description": "Subject of the email"
        },
        "body": {
          "type": "string",
          "description": "Body of the email"
        },
        "body_content_type": {
          "type": "string",
          "description": "Content type of the email body. Will be `text/plain` or `text/html`"
        },
        "raw_url": {
          "type": "string",
          "description": "URL for raw text of email"
        },
        "html_url": {
          "type": "string",
          "description": "URL for html rendered version of the email. Only present if `content_type` is `text/html`"
        }
      }
    },
    {
      "title": "WebTriggerChannel",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Will be `web_trigger`"
        },
        "summary": {
          "type": "string",
          "description": "Same as `subject`"
        },
        "subject": {
          "type": "string",
          "description": "Subject of the web trigger"
        },
        "details": {
          "type": "string",
          "description": "Details about the web trigger"
        }
      }
    },
    {
      "title": "WebsiteChannel",
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "Will be `website`"
        },
        "duration": {
          "type": "integer",
          "description": "For `snooze` log entries, this is the number of seconds that the incident was snoozed for."
        }
      },
      "required": [
        "type"
      ]
    }
  ]
}

ConferenceBridge

{
  "type": "object",
  "properties": {
    "conference_number": {
      "type": "string",
      "description": "The phone number of the conference call for the conference bridge. Phone numbers should be formatted like +1 415-555-1212,,,,1234#, where a comma (,) represents a one-second wait and pound (#) completes access code input."
    },
    "conference_url": {
      "type": "string",
      "format": "url",
      "description": "An URL for the conference bridge. This could be a link to a web conference or Slack channel."
    }
  }
}

ContactMethodReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "email_contact_method_reference",
            "phone_contact_method_reference",
            "push_notification_contact_method_reference",
            "sms_contact_method_reference",
            "whatsapp_contact_method_reference"
          ]
        }
      }
    }
  ]
}

ContentBasedAlertGroupingConfiguration

{
  "type": "object",
  "title": "Content Only Grouping",
  "description": "The configuration for Content Based Alert Grouping",
  "properties": {
    "aggregate": {
      "type": "string",
      "description": "Whether Alerts should be grouped if `all` or `any` specified fields match. If `all` is selected, an exact match on every specified field name must occur for Alerts to be grouped. If `any` is selected, Alerts will be grouped when there is an exact match on at least one of the specified fields.",
      "enum": [
        "all, any"
      ]
    },
    "fields": {
      "type": "array",
      "description": "An array of strings which represent the fields with which to group against. Depending on the aggregate, Alerts will group if some or all the fields match.",
      "items": {
        "type": "string"
      }
    },
    "time_window": {
      "type": "integer",
      "minimum": 300,
      "maximum": 86400,
      "description": "The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window up to 24 hours and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours (24 hours only applies to single-service settings). To use the \"recommended_time_window,\" set the value to 0, otherwise the value must be between 300 <= time_window <= 3600 or 86400(i.e. 24 hours)."
    },
    "recommended_time_window": {
      "readOnly": true,
      "type": "integer",
      "description": "In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`."
    }
  }
}

Context

{
  "type": "object",
  "discriminator": {
    "propertyName": "type"
  },
  "properties": {
    "type": {
      "type": "string",
      "description": "The type of context being attached to the incident.",
      "enum": [
        "link",
        "image"
      ]
    },
    "href": {
      "type": "string",
      "description": "The link's target url"
    },
    "src": {
      "type": "string",
      "description": "The image's source url"
    },
    "text": {
      "type": "string",
      "description": "The alternate display for an image"
    }
  },
  "required": [
    "type"
  ]
}

CustomFieldValueChangeLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "custom_field_value_change_log_entry"
          ]
        }
      }
    }
  ]
}

DelegateLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "assignees": {
          "type": "array",
          "readOnly": true,
          "description": "An array of assigned Users for this log entry",
          "items": {
            "$ref": "#/components/schemas/UserReference"
          }
        },
        "type": {
          "type": "string",
          "enum": [
            "delegate_log_entry"
          ]
        }
      }
    }
  ]
}

EscalateLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "assignees": {
          "type": "array",
          "readOnly": true,
          "description": "An array of assigned Users for this log entry",
          "items": {
            "$ref": "#/components/schemas/UserReference"
          }
        },
        "type": {
          "type": "string",
          "enum": [
            "escalate_log_entry"
          ]
        }
      }
    }
  ]
}

EscalationPolicy

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of object being created.",
          "default": "escalation_policy",
          "enum": [
            "escalation_policy"
          ]
        },
        "name": {
          "type": "string",
          "description": "The name of the escalation policy."
        },
        "description": {
          "type": "string",
          "description": "Escalation policy description."
        },
        "num_loops": {
          "type": "integer",
          "description": "The number of times the escalation policy will repeat after reaching the end of its escalation.",
          "default": 0,
          "minimum": 0
        },
        "on_call_handoff_notifications": {
          "type": "string",
          "description": "Determines how on call handoff notifications will be sent for users on the escalation policy. Defaults to \"if_has_services\".",
          "enum": [
            "if_has_services",
            "always"
          ]
        },
        "escalation_rules": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/EscalationRule"
          }
        },
        "services": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/ServiceReference"
          },
          "minLength": 0,
          "readOnly": true
        },
        "teams": {
          "type": "array",
          "description": "Team associated with the policy. Account must have the `teams` ability to use this parameter. Only one team may be associated with the policy.",
          "items": {
            "$ref": "#/components/schemas/TeamReference"
          },
          "minLength": 0
        }
      },
      "required": [
        "type",
        "name",
        "escalation_rules"
      ],
      "example": {
        "id": "PQIL2IX",
        "type": "escalation_policy",
        "name": "Engineering Escalation Policy",
        "escalation_rules": [
          {
            "escalation_delay_in_minutes": 30,
            "targets": [
              {
                "id": "PEYSGVF",
                "type": "user_reference"
              }
            ],
            "escalation_rule_assignment_strategy": [
              {
                "type": "round_robin"
              }
            ]
          }
        ],
        "services": [
          {
            "id": "PIJ90N7",
            "type": "service_reference"
          }
        ],
        "num_loops": 2,
        "on_call_handoff_notifications": "if_has_services",
        "teams": [
          {
            "id": "PQ9K7I8",
            "type": "team_reference"
          }
        ],
        "description": "Here is the ep for the engineering team."
      }
    }
  ]
}

EscalationPolicyReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "escalation_policy_reference"
          ]
        }
      }
    }
  ]
}

EscalationRule

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true
    },
    "escalation_delay_in_minutes": {
      "type": "integer",
      "description": "The number of minutes before an unacknowledged incident escalates away from this rule."
    },
    "targets": {
      "type": "array",
      "minItems": 1,
      "maxItems": 10,
      "description": "The targets an incident should be assigned to upon reaching this rule.",
      "items": {
        "$ref": "#/components/schemas/EscalationTargetReference"
      }
    },
    "escalation_rule_assignment_strategy": {
      "type": "string",
      "description": "The strategy used to assign the escalation rule to an incident.",
      "enum": [
        "round_robin",
        "assign_to_everyone"
      ]
    }
  },
  "required": [
    "escalation_delay_in_minutes",
    "targets"
  ],
  "example": {
    "escalation_delay_in_minutes": 30,
    "targets": [
      {
        "id": "PAM4FGS",
        "type": "user_reference"
      },
      {
        "id": "PI7DH85",
        "type": "schedule_reference"
      }
    ]
  }
}

EscalationTargetReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "description": "The escalation target is the entity that will be assigned an incident upon escalation.",
      "properties": {
        "type": {
          "enum": [
            "user",
            "schedule",
            "user_reference",
            "schedule_reference",
            "schedule_v3_reference"
          ],
          "type": "string"
        }
      }
    }
  ]
}

ExhaustEscalationPathLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "exhaust_escalation_path_log_entry"
          ]
        }
      }
    }
  ]
}

FieldValueChangeLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "field_value_change_log_entry"
          ]
        }
      }
    }
  ]
}

FlexibleTimeWindowIntelligentAlertGroupingConfig

{
  "type": "object",
  "title": "Intelligent Alert Grouping",
  "description": "The configuration for Intelligent Alert Grouping. Note that this configuration is only available for certain plans.",
  "properties": {
    "time_window": {
      "type": "integer",
      "minimum": 300,
      "maximum": 3600,
      "description": "The maximum amount of time allowed between Alerts. Any Alerts arriving greater than `time_window` seconds apart will not be grouped together. This is a rolling time window and is counted from the most recently grouped alert. The window is extended every time a new alert is added to the group, up to 24 hours. To use the \"recommended_time_window,\" set the value to 0, otherwise the value must be between 300 and 3600."
    },
    "recommended_time_window": {
      "readOnly": true,
      "type": "integer",
      "description": "In order to ensure your Service has the optimal grouping window, we use data science to calculate your Service's average Alert inter-arrival time. We encourage customers to use this value. Please set `time_window` to 0 to use the `recommended_time_window`."
    }
  }
}

Incident

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "incident_number": {
          "type": "integer",
          "readOnly": true,
          "description": "The number of the incident. This is unique across your account."
        },
        "title": {
          "type": "string",
          "readOnly": false,
          "description": "A succinct description of the nature, symptoms, cause, or effect of the incident."
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The time the incident was first triggered.",
          "example": "2019-12-01T20:00:00Z",
          "readOnly": true
        },
        "updated_at": {
          "type": "string",
          "format": "date-time",
          "example": "2019-12-01T21:02:00Z",
          "description": "The time the incident was last modified."
        },
        "status": {
          "type": "string",
          "description": "The current status of the incident.",
          "enum": [
            "triggered",
            "acknowledged",
            "resolved"
          ]
        },
        "incident_key": {
          "type": "string",
          "readOnly": true,
          "description": "The incident's de-duplication key."
        },
        "service": {
          "description": "The service the incident is on. If the `include[]=services` query parameter is provided, the full service definition will be returned.",
          "oneOf": [
            {
              "$ref": "#/components/schemas/ServiceReference"
            },
            {
              "$ref": "#/components/schemas/Service"
            }
          ]
        },
        "assignments": {
          "type": "array",
          "description": "List of all assignments for this incident. This list will be empty if the `Incident.status` is `resolved`. Returns a user reference for each assignment. Full user definitions will be returned if the `include[]=assignees` query parameter is provided.",
          "items": {
            "$ref": "#/components/schemas/Assignment"
          }
        },
        "assigned_via": {
          "type": "string",
          "description": "How the current incident assignments were decided.  Note that `direct_assignment` incidents will not escalate up the attached `escalation_policy`",
          "enum": [
            "escalation_policy",
            "direct_assignment"
          ],
          "readOnly": true
        },
        "last_status_change_at": {
          "type": "string",
          "format": "date-time",
          "description": "The time the status of the incident last changed. If the incident is not currently acknowledged or resolved, this will be the incident's `updated_at`.",
          "example": "2019-12-01T21:01:00Z",
          "readOnly": true
        },
        "resolved_at": {
          "type": "string",
          "format": "date-time",
          "example": "2019-12-01T21:01:00Z",
          "description": "The time the incident became \"resolved\" or `null` if the incident is not resolved."
        },
        "first_trigger_log_entry": {
          "description": "The first log entry on the incident. The log entry will be of type `TriggerLogEntry` and will represent information about how the incident was triggered. If the `include[]=first_trigger_log_entries` query parameter is provided, the full log entry definition will be returned.",
          "oneOf": [
            {
              "$ref": "#/components/schemas/LogEntryReference"
            },
            {
              "$ref": "#/components/schemas/TriggerLogEntry"
            }
          ]
        },
        "alert_counts": {
          "$ref": "#/components/schemas/AlertCount"
        },
        "is_mergeable": {
          "type": "boolean",
          "description": "Whether the incident is mergeable. Only incidents that have alerts, or that are manually created can be merged.",
          "readOnly": true
        },
        "incident_type": {
          "description": "The incident type of the incident.",
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of the Incident Type."
            }
          }
        },
        "escalation_policy": {
          "description": "The escalation policy attached to the service that the incident is on. If the `include[]=escalation_policies` query parameter is provided, the full escalation policy definition will be returned.",
          "oneOf": [
            {
              "$ref": "#/components/schemas/EscalationPolicyReference"
            },
            {
              "$ref": "#/components/schemas/EscalationPolicy"
            }
          ]
        },
        "teams": {
          "type": "array",
          "description": "The teams involved in the incident’s lifecycle. If the `include[]=teams` query parameter is provided, the full team definitions will be returned.",
          "items": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/TeamReference"
              },
              {
                "$ref": "#/components/schemas/Team"
              }
            ]
          }
        },
        "pending_actions": {
          "type": "array",
          "readOnly": true,
          "description": "The list of pending_actions on the incident. A pending_action object contains a type of action which can be escalate, unacknowledge, resolve or urgency_change. A pending_action object contains at, the time at which the action will take place. An urgency_change pending_action will contain to, the urgency that the incident will change to.",
          "items": {
            "$ref": "#/components/schemas/IncidentAction"
          }
        },
        "acknowledgements": {
          "type": "array",
          "description": "List of all acknowledgements for this incident. This list will be empty if the `Incident.status` is `resolved` or `triggered`. If the `include[]=acknowledgers` query parameter is provided, the full user or service definitions will be returned for each acknowledgement entry.",
          "items": {
            "$ref": "#/components/schemas/Acknowledgement"
          }
        },
        "alert_grouping": {
          "description": "Describes the alert grouping state of this incident. Will be null if the incident has no alerts.",
          "type": "object",
          "properties": {
            "grouping_type": {
              "type": "string",
              "enum": [
                "basic",
                "advanced",
                "rules"
              ]
            },
            "started_at": {
              "type": "string",
              "format": "date-time"
            },
            "ended_at": {
              "type": "string",
              "format": "date-time"
            },
            "alert_grouping_active": {
              "type": "boolean"
            }
          }
        },
        "last_status_change_by": {
          "description": "The entity that last changed the status of the incident. If the `include[]=agents` query parameter is provided, the full user/service/integration definition will be returned.",
          "oneOf": [
            {
              "$ref": "#/components/schemas/AgentReference"
            },
            {
              "$ref": "#/components/schemas/User"
            },
            {
              "$ref": "#/components/schemas/Service"
            }
          ]
        },
        "priority": {
          "$ref": "#/components/schemas/Priority"
        },
        "resolve_reason": {
          "$ref": "#/components/schemas/ResolveReason"
        },
        "conference_bridge": {
          "description": "The conference bridge information attached to the incident. Only returned if the `include[]=conference_bridge` query parameter is provided.",
          "allOf": [
            {
              "$ref": "#/components/schemas/ConferenceBridge"
            }
          ]
        },
        "incidents_responders": {
          "description": "The responders on the incident. Only returned if the account has access to the [responder requests](https://support.pagerduty.com/docs/add-responders) feature.",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/components/schemas/IncidentsRespondersReference"
          }
        },
        "responder_requests": {
          "description": "Previous responder requests made on this incident. Only returned if the account has access to the [responder requests](https://support.pagerduty.com/docs/add-responders) feature.",
          "type": "array",
          "readOnly": true,
          "items": {
            "$ref": "#/components/schemas/ResponderRequest"
          }
        },
        "urgency": {
          "type": "string",
          "enum": [
            "high",
            "low"
          ],
          "description": "The current urgency of the incident."
        },
        "body": {
          "description": "The additional incident body details. Only returned if the `include[]=body` query parameter is provided.",
          "allOf": [
            {
              "$ref": "#/components/schemas/IncidentBody"
            }
          ]
        }
      }
    }
  ]
}

IncidentAction

{
  "description": "An incident action is a pending change to an incident that will automatically happen at some future time.",
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "enum": [
        "unacknowledge",
        "escalate",
        "resolve",
        "urgency_change"
      ]
    },
    "at": {
      "type": "string",
      "format": "date-time"
    },
    "to": {
      "description": "The urgency that the incident will change to. This field is only present when the type is `urgency_change`.",
      "type": "string",
      "enum": [
        "high"
      ]
    }
  },
  "discriminator": {
    "propertyName": "type"
  },
  "required": [
    "type",
    "at"
  ]
}

IncidentBody

{
  "type": "object",
  "properties": {
    "details": {
      "type": "object",
      "description": "Additional incident details."
    }
  },
  "required": [
    "type"
  ]
}

IncidentNote

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true
    },
    "user": {
      "allOf": [
        {
          "$ref": "#/components/schemas/Reference"
        },
        {
          "type": "object",
          "description": "The user who created a Note. If a service created this Note the `user.type` will be \"bot_user_reference\" and `user.summary` will list the name of the service rather than the user.",
          "properties": {
            "type": {
              "type": "string",
              "enum": [
                "user_reference",
                "bot_user_reference"
              ]
            }
          }
        }
      ]
    },
    "channel": {
      "type": "object",
      "readOnly": true,
      "description": "The means by which this Note was created. Has different formats depending on type.",
      "properties": {
        "summary": {
          "type": "string",
          "description": "A string describing the source of the Note.",
          "readOnly": true
        },
        "id": {
          "type": "string",
          "readOnly": true
        },
        "type": {
          "type": "string",
          "description": "A string that determines the schema of the object",
          "readOnly": true
        },
        "self": {
          "type": "string",
          "format": "url",
          "description": "The API show URL at which the object is accessible",
          "readOnly": true
        },
        "html_url": {
          "type": "string",
          "format": "url",
          "description": "a URL at which the entity is uniquely displayed in the Web app",
          "readOnly": true
        }
      },
      "required": [
        "summary"
      ]
    },
    "content": {
      "type": "string",
      "description": "The note content"
    },
    "created_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time at which the note was submitted",
      "readOnly": true
    },
    "updated_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time at which the note was last updated",
      "readOnly": true
    }
  },
  "required": [
    "content"
  ],
  "example": {
    "content": "Firefighters are on the scene."
  }
}

IncidentReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "incident_reference"
          ]
        }
      }
    }
  ]
}

IncidentUrgencyRule

{
  "allOf": [
    {
      "$ref": "#/components/schemas/IncidentUrgencyType"
    },
    {
      "type": "object",
      "properties": {
        "during_support_hours": {
          "$ref": "#/components/schemas/IncidentUrgencyType"
        },
        "outside_support_hours": {
          "$ref": "#/components/schemas/IncidentUrgencyType"
        }
      }
    }
  ]
}

IncidentUrgencyType

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "The type of incident urgency: whether it's constant, or it's dependent on the support hours.",
      "default": "constant",
      "enum": [
        "constant",
        "use_support_hours"
      ]
    },
    "urgency": {
      "type": "string",
      "description": "The incidents' urgency, if type is constant.",
      "default": "high",
      "enum": [
        "low",
        "high",
        "severity_based"
      ]
    }
  }
}

IncidentsRespondersReference

{
  "type": "object",
  "properties": {
    "state": {
      "type": "string",
      "description": "The status of the responder being added to the incident",
      "enum": [
        "pending",
        "joined",
        "declined",
        "user_cancelled"
      ],
      "example": "pending"
    },
    "user": {
      "$ref": "#/components/schemas/UserReference"
    },
    "incident": {
      "$ref": "#/components/schemas/IncidentReference"
    },
    "updated_at": {
      "type": "string"
    },
    "message": {
      "type": "string",
      "description": "The message sent with the responder request"
    },
    "requester": {
      "$ref": "#/components/schemas/UserReference"
    },
    "requested_at": {
      "type": "string"
    },
    "escalation_policy_requests": {
      "type": "array",
      "description": "Names of escalation policies that this responder was requested through, if applicable",
      "items": {
        "type": "string"
      }
    }
  }
}

IntegrationReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "aws_cloudwatch_inbound_integration_reference",
            "cloudkick_inbound_integration_reference",
            "event_transformer_api_inbound_integration_reference",
            "generic_email_inbound_integration_reference",
            "generic_events_api_inbound_integration_reference",
            "keynote_inbound_integration_reference",
            "nagios_inbound_integration_reference",
            "pingdom_inbound_integration_reference",
            "sql_monitor_inbound_integration_reference",
            "events_api_v2_inbound_integration_reference",
            "inbound_integration_reference"
          ]
        }
      }
    }
  ]
}

LogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "acknowledge_log_entry",
            "annotate_log_entry",
            "assign_log_entry",
            "delegate_log_entry",
            "escalate_log_entry",
            "exhaust_escalation_path_log_entry",
            "notify_log_entry",
            "reach_ack_limit_log_entry",
            "reach_trigger_limit_log_entry",
            "repeat_escalation_path_log_entry",
            "resolve_log_entry",
            "snooze_log_entry",
            "trigger_log_entry",
            "unacknowledge_log_entry",
            "urgency_change_log_entry",
            "field_value_change_log_entry",
            "custom_field_value_change_log_entry"
          ]
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "description": "Time at which the log entry was created."
        },
        "channel": {
          "$ref": "#/components/schemas/Channel"
        },
        "agent": {
          "$ref": "#/components/schemas/AgentReference"
        },
        "note": {
          "type": "string",
          "readOnly": true,
          "description": "Optional field containing a note, if one was included with the log entry."
        },
        "contexts": {
          "type": "array",
          "readOnly": true,
          "description": "Contexts to be included with the trigger such as links to graphs or images.",
          "items": {
            "$ref": "#/components/schemas/Context"
          }
        },
        "service": {
          "$ref": "#/components/schemas/ServiceReference"
        },
        "incident": {
          "$ref": "#/components/schemas/IncidentReference"
        },
        "teams": {
          "type": "array",
          "readOnly": true,
          "description": "Will consist of references unless included",
          "items": {
            "$ref": "#/components/schemas/TeamReference"
          }
        },
        "event_details": {
          "type": "object",
          "readOnly": true,
          "properties": {
            "description": {
              "type": "string",
              "description": "Additional details about the event."
            }
          }
        },
        "changeset": {
          "type": "array",
          "description": "String record of custom field updates",
          "items": {
            "type": "string"
          },
          "example": [
            "Updated serial_number to 123",
            "Updated affected_room to [\"Queen West\"]"
          ]
        }
      }
    }
  ]
}

LogEntryReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "acknowledge_log_entry_reference",
            "annotate_log_entry_reference",
            "assign_log_entry_reference",
            "escalate_log_entry_reference",
            "exhaust_escalation_path_log_entry_reference",
            "notify_log_entry_reference",
            "reach_trigger_limit_log_entry_reference",
            "repeat_escalation_path_log_entry_reference",
            "resolve_log_entry_reference",
            "snooze_log_entry_reference",
            "trigger_log_entry_reference",
            "unacknowledge_log_entry_reference"
          ]
        }
      }
    }
  ]
}

Notification

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "readOnly": true
    },
    "type": {
      "type": "string",
      "description": "The type of notification.",
      "enum": [
        "sms_notification",
        "email_notification",
        "phone_notification",
        "push_notification"
      ],
      "readOnly": true
    },
    "started_at": {
      "type": "string",
      "format": "date-time",
      "description": "The time at which the notification was sent",
      "readOnly": true
    },
    "address": {
      "type": "string",
      "description": "The address where the notification was sent. This will be null for notification type `push_notification`.",
      "readOnly": true
    },
    "user": {
      "$ref": "#/components/schemas/UserReference"
    },
    "conferenceAddress": {
      "type": "string",
      "description": "The address of the conference bridge"
    },
    "status": {
      "type": "string"
    },
    "": {
      "type": "string"
    }
  }
}

NotificationRuleReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "assignment_notification_rule_reference"
          ]
        }
      }
    }
  ]
}

NotifyLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "created_at": {
          "type": "string",
          "format": "date-time",
          "readOnly": true,
          "description": "Time at which the log entry was created"
        },
        "user": {
          "$ref": "#/components/schemas/UserReference"
        },
        "type": {
          "type": "string",
          "enum": [
            "notify_log_entry"
          ]
        }
      }
    }
  ]
}

Oncall

{
  "type": "object",
  "properties": {
    "escalation_policy": {
      "$ref": "#/components/schemas/EscalationPolicyReference"
    },
    "user": {
      "$ref": "#/components/schemas/UserReference"
    },
    "schedule": {
      "oneOf": [
        {
          "$ref": "#/components/schemas/ScheduleReference"
        },
        {
          "$ref": "#/components/schemas/V3ScheduleReference"
        }
      ],
      "description": "The schedule from which this on-call originates. May be a legacy schedule reference or a v3 schedule reference."
    },
    "escalation_level": {
      "type": "integer",
      "readOnly": true,
      "description": "The escalation level for the on-call."
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "The start of the on-call. If `null`, the on-call is a permanent user on-call."
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "The end of the on-call. If `null`, the user does not go off-call."
    }
  },
  "example": {
    "user": {
      "id": "PT23IWX",
      "type": "user_reference",
      "summary": "Tim Wright",
      "self": "https://api.pagerduty.com/users/PT23IWX",
      "html_url": "https://subdomain.pagerduty.com/users/PT23IWX"
    },
    "schedule": {
      "id": "PI7DH85",
      "type": "schedule_reference",
      "summary": "Daily Engineering Rotation",
      "self": "https://api.pagerduty.com/schedules/PI7DH85",
      "html_url": "https://subdomain.pagerduty.com/schedules/PI7DH85"
    },
    "escalation_policy": {
      "id": "PT20YPA",
      "type": "escalation_policy_reference",
      "summary": "Engineering Escalation Policy",
      "self": "https://api.pagerduty.com/escalation_policies/PT20YPA",
      "html_url": "https://subdomain.pagerduty.com/escalation_policies/PT20YPA"
    },
    "escalation_level": 2,
    "start": "2015-03-06T15:28:51-05:00",
    "end": "2015-03-07T15:28:51-05:00"
  }
}

Pagination

{
  "type": "object",
  "properties": {
    "offset": {
      "type": "integer",
      "description": "Echoes offset pagination property.",
      "readOnly": true
    },
    "limit": {
      "type": "integer",
      "description": "Echoes limit pagination property.",
      "readOnly": true
    },
    "more": {
      "type": "boolean",
      "description": "Indicates if there are additional records to return",
      "readOnly": true
    },
    "total": {
      "type": "integer",
      "description": "The total number of records matching the given query.",
      "nullable": true,
      "readOnly": true
    }
  }
}

Priority

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The user-provided short name of the priority."
        },
        "description": {
          "type": "string",
          "description": "The user-provided description of the priority."
        }
      }
    }
  ]
}

ReachAckLimitLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "reach_ack_limit_log_entry"
          ]
        }
      }
    }
  ]
}

ReachTriggerLimitLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "reach_trigger_limit_log_entry"
          ]
        }
      }
    }
  ]
}

Reference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "required": [
        "type",
        "id"
      ]
    }
  ]
}

RepeatEscalationPathLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "repeat_escalation_path_log_entry"
          ]
        }
      }
    }
  ]
}

ResolveLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "resolve_log_entry"
          ]
        }
      }
    }
  ]
}

ResolveReason

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "The reason the incident was resolved. The only reason currently supported is merge.",
      "default": "merge_resolve_reason",
      "enum": [
        "merge_resolve_reason"
      ]
    },
    "incident": {
      "$ref": "#/components/schemas/IncidentReference"
    }
  }
}

ResponderRequest

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The ID of the responder request"
    },
    "incident": {
      "$ref": "#/components/schemas/IncidentReference"
    },
    "requester": {
      "$ref": "#/components/schemas/UserReference"
    },
    "requested_at": {
      "type": "string",
      "description": "The time the request was made"
    },
    "message": {
      "type": "string",
      "description": "The message sent with the responder request"
    },
    "responder_request_targets": {
      "type": "array",
      "description": "The array of targets the responder request is being sent to",
      "items": {
        "$ref": "#/components/schemas/ResponderRequestTargetReference"
      }
    }
  }
}

ResponderRequestTargetReference

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "The type of target (either a user or an escalation policy)"
    },
    "id": {
      "type": "string",
      "description": "The id of the user or escalation policy"
    },
    "summary": {
      "type": "string"
    },
    "incident_responders": {
      "type": "array",
      "description": "An array of responders associated with the specified incident",
      "items": {
        "$ref": "#/components/schemas/IncidentsRespondersReference"
      }
    }
  }
}

Restriction

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "Specify the types of `restriction`.",
      "enum": [
        "daily_restriction",
        "weekly_restriction"
      ]
    },
    "duration_seconds": {
      "type": "integer",
      "description": "The duration of the restriction in seconds."
    },
    "start_time_of_day": {
      "type": "string",
      "format": "partial-time",
      "description": "The start time in HH:mm:ss format."
    },
    "start_day_of_week": {
      "type": "integer",
      "description": "Only required for use with a `weekly_restriction` restriction type. The first day of the weekly rotation schedule as [ISO 8601 day](https://en.wikipedia.org/wiki/ISO_week_date) (1 is Monday, etc.)",
      "minimum": 1,
      "maximum": 7
    }
  },
  "discriminator": {
    "propertyName": "type"
  },
  "required": [
    "type",
    "duration_seconds",
    "start_time_of_day"
  ]
}

Schedule

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of object being created.",
          "default": "schedule",
          "enum": [
            "schedule"
          ]
        },
        "schedule_layers": {
          "type": "array",
          "description": "A list of schedule layers.",
          "items": {
            "$ref": "#/components/schemas/ScheduleLayer"
          }
        },
        "time_zone": {
          "type": "string",
          "format": "activesupport-time-zone",
          "description": "The time zone of the schedule."
        },
        "name": {
          "type": "string",
          "description": "The name of the schedule"
        },
        "description": {
          "type": "string",
          "description": "The description of the schedule"
        },
        "final_schedule": {
          "$ref": "#/components/schemas/SubSchedule"
        },
        "overrides_subschedule": {
          "$ref": "#/components/schemas/SubSchedule"
        },
        "escalation_policies": {
          "type": "array",
          "readOnly": true,
          "description": "An array of all of the escalation policies that uses this schedule.",
          "items": {
            "$ref": "#/components/schemas/EscalationPolicyReference"
          }
        },
        "users": {
          "type": "array",
          "readOnly": true,
          "description": "An array of all of the users on the schedule.",
          "items": {
            "$ref": "#/components/schemas/UserReference"
          }
        },
        "teams": {
          "type": "array",
          "readOnly": true,
          "description": "An array of all of the teams on the schedule.",
          "items": {
            "$ref": "#/components/schemas/TeamReference"
          }
        },
        "next_oncall_for_user": {
          "type": "object",
          "properties": {
            "start": {
              "type": "string",
              "readOnly": true,
              "description": "The start date for the User shift"
            },
            "end": {
              "type": "string",
              "readOnly": true,
              "description": "The end date for the User shift"
            },
            "user": {
              "$ref": "#/components/schemas/Reference"
            }
          }
        }
      },
      "required": [
        "time_zone",
        "type"
      ],
      "example": {
        "name": "Daily Engineering Rotation",
        "type": "schedule",
        "time_zone": "America/New_York",
        "description": "Rotation schedule for engineering",
        "schedule_layers": [
          {
            "name": "Night Shift",
            "start": "2015-11-06T20:00:00-05:00",
            "end": "2016-11-06T20:00:00-05:00",
            "rotation_virtual_start": "2015-11-06T20:00:00-05:00",
            "rotation_turn_length_seconds": 86400,
            "users": [
              {
                "user": {
                  "id": "PXPGF42",
                  "type": "user_reference"
                }
              }
            ],
            "restrictions": [
              {
                "type": "daily_restriction",
                "start_time_of_day": "08:00:00",
                "duration_seconds": 32400
              }
            ]
          }
        ]
      }
    }
  ]
}

ScheduleLayer

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "description": "The start time of this layer."
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "description": "The end time of this layer. If `null`, the layer does not end."
    },
    "users": {
      "type": "array",
      "description": "The ordered list of users on this layer. The position of the user on the list determines their order in the layer.",
      "items": {
        "$ref": "#/components/schemas/ScheduleLayerUser"
      }
    },
    "restrictions": {
      "type": "array",
      "description": "An array of restrictions for the layer. A restriction is a limit on which period of the day or week the schedule layer can accept assignments. Restrictions respect the `time_zone` parameter of the request.",
      "items": {
        "$ref": "#/components/schemas/Restriction"
      }
    },
    "rotation_virtual_start": {
      "type": "string",
      "format": "date-time",
      "description": "The effective start time of the layer. This can be before the start time of the schedule."
    },
    "rotation_turn_length_seconds": {
      "type": "integer",
      "description": "The duration of each on-call shift in seconds."
    },
    "name": {
      "type": "string",
      "description": "The name of the schedule layer."
    },
    "rendered_schedule_entries": {
      "type": "array",
      "readOnly": true,
      "description": "This is a list of entries on the computed layer for the current time range. Since or until must be set in order for this field to be populated.",
      "items": {
        "$ref": "#/components/schemas/ScheduleLayerEntry"
      }
    },
    "rendered_coverage_percentage": {
      "type": "number",
      "readOnly": true,
      "description": "The percentage of the time range covered by this layer. Returns null unless since or until are set."
    }
  },
  "required": [
    "start",
    "users",
    "rotation_virtual_start",
    "rotation_turn_length_seconds"
  ]
}

ScheduleLayerEntry

{
  "type": "object",
  "properties": {
    "user": {
      "$ref": "#/components/schemas/UserReference"
    },
    "start": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "The start time of this entry."
    },
    "end": {
      "type": "string",
      "format": "date-time",
      "readOnly": true,
      "description": "The end time of this entry. If null, the entry does not end."
    }
  },
  "required": [
    "start",
    "end"
  ]
}

ScheduleLayerUser

{
  "type": "object",
  "properties": {
    "user": {
      "$ref": "#/components/schemas/UserReference"
    }
  },
  "required": [
    "user"
  ]
}

ScheduleReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "schedule_reference"
          ]
        }
      }
    }
  ]
}

ScheduledAction

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "The type of schedule action. Must be set to urgency_change.",
      "enum": [
        "urgency_change"
      ]
    },
    "at": {
      "type": "object",
      "description": "Represents when scheduled action will occur.",
      "properties": {
        "type": {
          "type": "string",
          "description": "Must be set to named_time.",
          "enum": [
            "named_time"
          ]
        },
        "name": {
          "type": "string",
          "description": "Designates either the start or the end of support hours.",
          "enum": [
            "support_hours_start",
            "support_hours_end"
          ]
        }
      },
      "required": [
        "type",
        "name"
      ]
    },
    "to_urgency": {
      "type": "string",
      "description": "Urgency level. Must be set to high.",
      "enum": [
        "high"
      ]
    }
  },
  "required": [
    "type",
    "at",
    "to_urgency"
  ]
}

Service

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of object being created.",
          "default": "service",
          "enum": [
            "service"
          ]
        },
        "name": {
          "type": "string",
          "description": "The name of the service."
        },
        "description": {
          "type": "string",
          "description": "The user-provided description of the service."
        },
        "auto_resolve_timeout": {
          "type": "integer",
          "description": "Time in seconds that an incident is automatically resolved if left open for that long. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature.",
          "default": 14400
        },
        "acknowledgement_timeout": {
          "type": "integer",
          "description": "Time in seconds that an incident changes to the Triggered State after being Acknowledged. Value is `null` if the feature is disabled. Value must not be negative. Setting this field to `0`, `null` (or unset in POST request) will disable the feature.",
          "default": 1800
        },
        "created_at": {
          "type": "string",
          "format": "date-time",
          "description": "The date/time when this service was created",
          "readOnly": true
        },
        "status": {
          "type": "string",
          "description": "The current state of the Service. Valid statuses are:\n\n\n- `active`: The service is enabled and has no open incidents. This is the only status a service can be created with.\n- `warning`: The service is enabled and has one or more acknowledged incidents.\n- `critical`: The service is enabled and has one or more triggered incidents.\n- `maintenance`: The service is under maintenance, no new incidents will be triggered during maintenance mode.\n- `disabled`: The service is disabled and will not have any new triggered incidents.\n",
          "enum": [
            "active",
            "warning",
            "critical",
            "maintenance",
            "disabled"
          ],
          "default": "active"
        },
        "last_incident_timestamp": {
          "type": "string",
          "format": "date-time",
          "description": "The date/time when the most recent incident was created for this service.",
          "readOnly": true
        },
        "escalation_policy": {
          "$ref": "#/components/schemas/EscalationPolicyReference"
        },
        "response_play": {
          "deprecated": true,
          "description": "Response plays associated with this service."
        },
        "teams": {
          "type": "array",
          "description": "The set of teams associated with this service.",
          "items": {
            "$ref": "#/components/schemas/TeamReference"
          },
          "readOnly": true
        },
        "integrations": {
          "type": "array",
          "description": "An array containing Integration objects that belong to this service. If `integrations` is passed as an argument, these are full objects - otherwise, these are references.",
          "items": {
            "$ref": "#/components/schemas/IntegrationReference"
          },
          "readOnly": true
        },
        "incident_urgency_rule": {
          "$ref": "#/components/schemas/IncidentUrgencyRule"
        },
        "support_hours": {
          "$ref": "#/components/schemas/SupportHours"
        },
        "scheduled_actions": {
          "type": "array",
          "description": "An array containing scheduled actions for the service.",
          "items": {
            "$ref": "#/components/schemas/ScheduledAction"
          }
        },
        "addons": {
          "type": "array",
          "description": "The array of Add-ons associated with this service.",
          "items": {
            "$ref": "#/components/schemas/AddonReference"
          },
          "readOnly": true
        },
        "alert_creation": {
          "type": "string",
          "deprecated": true,
          "description": "Whether a service creates only incidents, or both alerts and incidents. A service must create alerts in order to enable incident merging.\n* \"create_incidents\" - The service will create one incident and zero alerts for each incoming event.\n* \"create_alerts_and_incidents\" - The service will create one incident and one associated alert for each incoming event.\nThis attribute has been deprecated as all services will be migrated to use alerts and incidents. Afterward, the incident only service setting will no longer be available. For details, please refer to the knowledge base: https://support.pagerduty.com/docs/alerts#enable-and-disable-alerts-on-a-service.\n",
          "enum": [
            "create_incidents",
            "create_alerts_and_incidents"
          ],
          "default": "create_alerts_and_incidents"
        },
        "alert_grouping_parameters": {
          "description": "Alert Grouping Parameters",
          "deprecated": true,
          "oneOf": [
            {
              "$ref": "#/components/schemas/AlertGroupingParameters"
            },
            {
              "type": "object",
              "title": "Alert Grouping Settings Reference",
              "deprecated": true,
              "description": "When a service uses alert grouping configuration that is unsupported via the services api, and can only be configured via the [Alert Grouping Settings API](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting). The reference object includes the new location details for the service's Alert Grouping Setting. When an `alert_grouping_settings_reference` is included in a create or update request it will be ignored and no changes are applied to the service.",
              "properties": {
                "id": {
                  "type": "string",
                  "readOnly": true,
                  "description": "id of the related alert grouping setting"
                },
                "type": {
                  "readOnly": true,
                  "type": "string",
                  "description": "type of reference eg. alert_grouping_setting_reference"
                },
                "summary": {
                  "readOnly": true,
                  "type": "string",
                  "description": "an explanation of this reference"
                },
                "self": {
                  "readOnly": true,
                  "type": "string",
                  "description": "link to api endpoint for this setting"
                },
                "html_url": {
                  "readOnly": true,
                  "type": "string",
                  "description": "link to the ui page to edit the setting"
                }
              }
            }
          ]
        },
        "alert_grouping": {
          "type": "string",
          "deprecated": true,
          "description": "Defines how alerts on this service will be automatically grouped into incidents. Note that the alert grouping features are available only on certain plans. There are three available options:\n* null - No alert grouping on the service. Each alert will create a separate incident;\n* \"time\" - All alerts within a specified duration will be grouped into the same incident. This duration is set in the `alert_grouping_timeout` setting (described below). Available on Standard, Enterprise, and Event Intelligence plans;\n* \"intelligent\" - Alerts will be intelligently grouped based on a machine learning model that looks at the alert summary, timing, and the history of grouped alerts. Available on Enterprise and Event Intelligence plans\n\nThis attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged.\n",
          "enum": [
            "time",
            "intelligent"
          ]
        },
        "alert_grouping_timeout": {
          "type": "integer",
          "deprecated": true,
          "description": "The duration in minutes within which to automatically group incoming alerts. This setting applies only when `alert_grouping` is set to `time`. To continue grouping alerts until the Incident is resolved, set this value to `0`.\n\nThis attribute has been deprecated and configuration via [Alert Grouping Settings](https://developer.pagerduty.com/api-reference/587edbc8ff416-create-an-alert-grouping-setting) resource is encouraged.\n"
        },
        "auto_pause_notifications_parameters": {
          "$ref": "#/components/schemas/AutoPauseNotificationsParameters"
        }
      },
      "required": [
        "type",
        "escalation_policy"
      ],
      "example": {
        "id": "PSI2I2O",
        "summary": "string",
        "type": "service",
        "self": "string",
        "html_url": "string",
        "name": "My Web App",
        "description": "My cool web application that does things.",
        "auto_resolve_timeout": 14400,
        "acknowledgement_timeout": 600,
        "status": "active",
        "escalation_policy": {
          "id": "PWIP6CQ",
          "type": "escalation_policy_reference"
        },
        "incident_urgency_rule": {
          "type": "use_support_hours",
          "during_support_hours": {
            "type": "constant",
            "urgency": "high"
          },
          "outside_support_hours": {
            "type": "constant",
            "urgency": "low"
          }
        },
        "support_hours": {
          "type": "fixed_time_per_day",
          "time_zone": "America/Lima",
          "start_time": "09:00:00",
          "end_time": "17:00:00",
          "days_of_week": [
            1,
            2,
            3,
            4,
            5
          ]
        },
        "scheduled_actions": [
          {
            "type": "urgency_change",
            "at": {
              "type": "named_time",
              "name": "support_hours_start"
            },
            "to_urgency": "high"
          }
        ],
        "alert_creation": "create_alerts_and_incidents",
        "auto_pause_notifications_parameters": {
          "enabled": true,
          "timeout": 300
        }
      }
    }
  ]
}

ServiceReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "service_reference"
          ]
        }
      }
    }
  ]
}

SnoozeLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "changed_actions": {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/IncidentAction"
          }
        },
        "type": {
          "type": "string",
          "enum": [
            "snooze_log_entry"
          ]
        }
      }
    }
  ]
}

SubSchedule

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "readOnly": true,
      "description": "The name of the subschedule",
      "enum": [
        "Final Schedule",
        "Overrides"
      ]
    },
    "rendered_schedule_entries": {
      "type": "array",
      "readOnly": true,
      "description": "This is a list of entries on the computed layer for the current time range. Since or until must be set in order for this field to be populated.",
      "items": {
        "$ref": "#/components/schemas/ScheduleLayerEntry"
      }
    },
    "rendered_coverage_percentage": {
      "type": "number",
      "readOnly": true,
      "description": "The percentage of the time range covered by this layer. Returns null unless since or until are set."
    }
  },
  "required": [
    "name"
  ]
}

SupportHours

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "description": "The type of support hours",
      "default": "fixed_time_per_day",
      "enum": [
        "fixed_time_per_day"
      ]
    },
    "time_zone": {
      "type": "string",
      "format": "activesupport-time-zone",
      "description": "The time zone for the support hours"
    },
    "days_of_week": {
      "type": "array",
      "readOnly": true,
      "items": {
        "type": "integer",
        "readOnly": true,
        "description": "The days of the week (1 through 7, for Monday through Sunday)"
      }
    },
    "start_time": {
      "type": "string",
      "format": "time",
      "description": "The support hours' starting time of day (date portion is ignored)"
    },
    "end_time": {
      "type": "string",
      "format": "time",
      "description": "The support hours' ending time of day (date portion is ignored)"
    }
  }
}

Tag

{
  "allOf": [
    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "readOnly": true
        },
        "summary": {
          "type": "string",
          "nullable": true,
          "readOnly": true,
          "description": "A short-form, server-generated string that provides succinct, important information about an object suitable for primary labeling of an entity in a client. In many cases, this will be identical to `name`, though it is not intended to be an identifier."
        },
        "type": {
          "type": "string",
          "readOnly": true,
          "description": "A string that determines the schema of the object. This must be the standard name for the entity, suffixed by `_reference` if the object is a reference."
        },
        "self": {
          "type": "string",
          "nullable": true,
          "readOnly": true,
          "format": "url",
          "description": "the API show URL at which the object is accessible"
        },
        "html_url": {
          "type": "string",
          "nullable": true,
          "readOnly": true,
          "format": "url",
          "description": "a URL at which the entity is uniquely displayed in the Web app"
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of object being created.",
          "default": "tag",
          "enum": [
            "tag"
          ]
        },
        "label": {
          "type": "string",
          "description": "The label of the tag.",
          "maxLength": 191
        }
      },
      "required": [
        "label",
        "type"
      ],
      "example": {
        "type": "tag",
        "label": "Batman"
      }
    }
  ]
}

Team

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "description": "The type of object being created.",
          "default": "team",
          "enum": [
            "team"
          ]
        },
        "name": {
          "type": "string",
          "description": "The name of the team.",
          "maxLength": 100
        },
        "description": {
          "type": "string",
          "description": "The description of the team.",
          "maxLength": 1024
        },
        "default_role": {
          "type": "string",
          "description": "The team is private if the value is \"none\", or public if it is \"manager\" (the default permissions for a non-member of the team are either \"none\", or their base role up until \"manager\").",
          "default": "manager",
          "enum": [
            "manager",
            "none"
          ]
        }
      },
      "required": [
        "name",
        "type"
      ],
      "example": {
        "type": "team",
        "name": "Engineering",
        "description": "The engineering team"
      }
    }
  ]
}

TeamReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "team_reference"
          ]
        }
      }
    }
  ]
}

TimeBasedAlertGroupingConfiguration

{
  "type": "object",
  "title": "Time Grouping",
  "description": "The configuration for Time Based Alert Grouping",
  "properties": {
    "timeout": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1440,
      "description": "The duration in minutes within which to automatically group incoming Alerts. To continue grouping Alerts until the Incident is resolved, set this value to 0."
    }
  }
}

TriggerLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "trigger_log_entry"
          ]
        }
      }
    }
  ]
}

UnacknowledgeLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "unacknowledge_log_entry"
          ]
        }
      }
    }
  ]
}

UrgencyChangeLogEntry

{
  "allOf": [
    {
      "$ref": "#/components/schemas/LogEntry"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "urgency_change_log_entry"
          ]
        }
      }
    }
  ]
}

User

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Tag/allOf/0"
    },
    {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "description": "The name of the user.",
          "maxLength": 100
        },
        "type": {
          "type": "string",
          "description": "The type of object being created.",
          "default": "user",
          "enum": [
            "user"
          ]
        },
        "email": {
          "type": "string",
          "format": "email",
          "description": "The user's email address.",
          "minLength": 6,
          "maxLength": 100
        },
        "time_zone": {
          "type": "string",
          "format": "tzinfo",
          "description": "The preferred time zone name. If null, the account's time zone will be used."
        },
        "color": {
          "type": "string",
          "description": "The schedule color."
        },
        "role": {
          "description": "The user role. Account must have the `read_only_users` ability to set a user as a `read_only_user` or a `read_only_limited_user`, and must have advanced permissions abilities to set a user as `observer` or `restricted_access`.",
          "type": "string",
          "enum": [
            "admin",
            "limited_user",
            "observer",
            "owner",
            "read_only_user",
            "restricted_access",
            "read_only_limited_user",
            "user"
          ]
        },
        "avatar_url": {
          "type": "string",
          "format": "url",
          "description": "The URL of the user's avatar.",
          "readOnly": true
        },
        "description": {
          "type": "string",
          "description": "The user's bio.",
          "nullable": true
        },
        "invitation_sent": {
          "type": "boolean",
          "readOnly": true,
          "description": "If true, the user has an outstanding invitation."
        },
        "job_title": {
          "type": "string",
          "description": "The user's title.",
          "maxLength": 100
        },
        "created_via_sso": {
          "type": "boolean",
          "readOnly": true,
          "description": "If true, the user was created via Single Sign-On (SSO)."
        },
        "teams": {
          "type": "array",
          "readOnly": true,
          "description": "The list of teams to which the user belongs. Account must have the `teams` ability to set this.",
          "items": {
            "$ref": "#/components/schemas/TeamReference"
          }
        },
        "contact_methods": {
          "type": "array",
          "readOnly": true,
          "description": "The list of contact methods for the user.",
          "items": {
            "$ref": "#/components/schemas/ContactMethodReference"
          }
        },
        "notification_rules": {
          "readOnly": true,
          "type": "array",
          "description": "The list of notification rules for the user.",
          "items": {
            "$ref": "#/components/schemas/NotificationRuleReference"
          }
        },
        "http_cal_url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "description": "iCal HTTP feed URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys.\n\n**Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed."
        },
        "web_cal_url": {
          "type": "string",
          "format": "uri",
          "readOnly": true,
          "description": "iCal webcal URL for this user's on-call shifts. Only returned on the `GET /users/{id}` detail endpoint: automatically when viewing your own profile with a user-level token, or when an account admin with `can_update_user` passes `include[]=calendar_urls` for another user. Not returned on list endpoints or with account-level read-only keys.\n\n**Security:** this URL is a bearer credential. Anyone with the URL can read the user's on-call calendar without further authentication. Rotate via `POST /users/{id}/regenerate_private_url_key` if it may have been exposed."
        }
      },
      "required": [
        "name",
        "email",
        "type"
      ],
      "example": {
        "type": "user",
        "name": "Earline Greenholt",
        "email": "125.greenholt.earline@graham.name",
        "time_zone": "America/Lima",
        "color": "green",
        "role": "admin",
        "job_title": "Director of Engineering",
        "created_via_sso": false,
        "avatar_url": "https://pd-static-assets.pagerduty.com/users/blank-avatar.png",
        "description": "I'm the boss"
      }
    }
  ]
}

UserReference

{
  "allOf": [
    {
      "$ref": "#/components/schemas/Reference"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "user_reference"
          ]
        }
      }
    }
  ]
}

V3ScheduleReference

{
  "type": "object",
  "description": "Lightweight schedule object returned by the list endpoint.\nUses `\"type\": \"schedule_v3_reference\"` to distinguish from\nlegacy schedules (`\"type\": \"schedule_reference\"`).\n",
  "required": [
    "id",
    "type",
    "summary"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "PL5FQHC"
    },
    "type": {
      "type": "string",
      "enum": [
        "schedule_v3_reference"
      ]
    },
    "summary": {
      "type": "string",
      "description": "Schedule name",
      "example": "Engineering On-Call"
    },
    "self": {
      "type": "string",
      "format": "uri",
      "example": "https://api.pagerduty.com/v3/schedules/PL5FQHC"
    },
    "html_url": {
      "type": "string",
      "format": "uri",
      "example": "https://example.pagerduty.com/schedules/PL5FQHC"
    }
  }
}

Document metadata and extensions

{
  "openapi": "3.0.2",
  "info": {
    "description": "This document describes the PagerDuty REST APIs.\n\nFor guides and examples please visit our [Documentation.](https://developer.pagerduty.com/docs/get-started/getting-started/)\n\nOur REST APIs are defined in OpenAPI v3.x. You can view the schema at [github.com/PagerDuty/api-schema](https://github.com/PagerDuty/api-schema).\n\nNote that properties in some schemas have fields not shown by default such as `readOnly`, `format`, and `default`. Hover your cursor over the right column that looks like `optional+1` to see the full list of fields.\n",
    "contact": {
      "name": "PagerDuty Support",
      "url": "http://www.pagerduty.com/support",
      "email": "support@pagerduty.com"
    },
    "title": "PagerDuty REST API — PurpleSuite executable core",
    "version": "2.0.0"
  },
  "security": [
    {
      "api_key": []
    }
  ],
  "tags": [
    {
      "name": "Escalation Policies",
      "description": "Escalation policies define which user should be alerted at which time.\n"
    },
    {
      "name": "Incidents",
      "description": "An incident represents a problem or an issue that needs to be addressed and resolved. Incidents trigger on a service, which prompts notifications to go out to on-call responders per the service's escalation policy.\n"
    },
    {
      "name": "On-Calls",
      "description": "An on-call represents a contiguous unit of time for which a User will be on call for a given Escalation Policy and Escalation Rules\n"
    },
    {
      "name": "Priorities",
      "description": "A priority is a label representing the importance and impact of an incident. This feature is only available on Standard and Enterprise plans.\n"
    },
    {
      "name": "Schedules",
      "description": "A Schedule determines the time periods that users are On-Call.\n"
    },
    {
      "name": "Services",
      "description": "A Service may represent an application, component, or team you wish to open incidents against.\n"
    },
    {
      "name": "Users",
      "description": "Users are members of a PagerDuty account that have the ability to interact with Incidents and other data on the account.\n"
    }
  ]
}
Interactive API explorer (requires JavaScript)