PagerDuty Response Plays API

Response Plays are a package of Incident Actions that can be applied during an Incident's life cycle.

OpenAPI Specification

pagerduty-response-plays-api-openapi.yml Raw ↑
openapi: 3.0.2
info:
  description: '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.

    '
  contact:
    name: PagerDuty Support
    url: http://www.pagerduty.com/support
    email: support@pagerduty.com
  title: PagerDuty Abilities Response Plays API
  version: 2.0.0
servers:
- url: https://api.pagerduty.com
  description: PagerDuty V2 API.
security:
- api_key: []
tags:
- name: Response Plays
  description: 'Response Plays are a package of Incident Actions that can be applied during an Incident''s life cycle.

    '
paths:
  /response_plays:
    description: List and create response plays.
    get:
      x-pd-requires-scope: response_plays.read
      deprecated: true
      tags:
      - Response Plays
      operationId: listResponsePlays
      description: 'List all of the existing Response Plays.


        Response Plays allow you to create packages of Incident Actions that can be applied during an Incident''s life cycle.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays)


        When using a Global API token, the `From` header is required.


        Scoped OAuth requires: `response_plays.read`

        '
      summary: PagerDuty List Response Plays
      parameters:
      - $ref: '#/components/parameters/query'
      - $ref: '#/components/parameters/filter_for_manual_run'
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/optional_from_header'
      responses:
        '200':
          description: The array of Response Plays returned by the query.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response_plays:
                    type: array
                    items:
                      $ref: '#/components/schemas/ResponsePlay'
              examples:
                response:
                  summary: Response Example
                  value:
                    response_plays:
                    - type: response_play
                      team: null
                      summary: An Existing Response Play For Responders
                      self: https://api.pagerduty.com/response_plays/15b4b27e-2448-adf9-c5a5-85382304ff37
                      name: An Existing Response Play For Responders
                      id: 15b4b27e-2448-adf9-c5a5-85382304ff37
                      html_url: null
                      description: A Response Play that adds responders.
                    - type: response_play
                      team: null
                      summary: An Existing Response Play For Subscribers
                      self: https://api.pagerduty.com/response_plays/15b4b27e-2771-abe5-t6m9-81234304ff37
                      name: An Existing Response Play For Subscribers
                      id: 15b4b27e-2771-abe5-t6m9-81234304ff37
                      html_url: null
                      description: A Response Play that adds subscribers.
                    limit: null
                    offset: null
                    total: 2
                    more: false
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
    post:
      deprecated: true
      x-pd-requires-scope: response_plays.write
      tags:
      - Response Plays
      operationId: createResponsePlay
      description: 'Creates a new Response Plays.


        Response Plays allow you to create packages of Incident Actions that can be applied during an Incident''s life cycle.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays)


        Scoped OAuth requires: `response_plays.write`

        '
      summary: PagerDuty Create a Response Play
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/from_header'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                response_play:
                  $ref: '#/components/schemas/ResponsePlay'
              required:
              - response_play
            examples:
              Example1:
                summary: Create a Response Play which adds a Escalation Policy and User to an incident when the response play is run
                value:
                  response_play:
                    type: response_play
                    team: null
                    name: Standard NOC-EP
                    description: A Response Play to add NOC EP on Run
                    subscribers: []
                    subscribers_message: null
                    responders:
                    - type: user_reference
                      id: PROW72A
                      summary: our team stakeholder
                    - type: escalation_policy_reference
                      id: P12TU3X
                      summary: Network Center Escalation Policy
                    responders_message: NOC-EP
                    runnability: services
              Example2:
                summary: Add a static conference url to an incident when the response play is run
                value:
                  response_play:
                    type: response_play
                    name: Basic Fixed URL
                    description: preset conference url
                    runnability: services
                    conference_url: https://my.conference.com/our_team/123
        description: The Response Play to be created.
      responses:
        '201':
          description: The Response Play that was created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response_play:
                    $ref: '#/components/schemas/ResponsePlay'
              examples:
                response:
                  summary: Response Example
                  value:
                    response_play:
                      type: response_play
                      team: null
                      summary: A New Response Play
                      subscribers_message: Please view the attached incident.
                      subscribers:
                      - type: user_reference
                        summary: null
                        self: https://api.pagerduty.com/users/PSEJLIN
                        id: PSEJLIN
                        html_url: null
                      - type: team_reference
                        summary: null
                        self: https://api.pagerduty.com/teams/P12TU3X
                        id: P12TU3X
                        html_url: null
                      self: https://api.pagerduty.com/response_plays/15b4b27e-2448-adf9-c5a5-85382304ff37
                      runnability: services
                      responders_message: We need executive attention on this incident.
                      responders:
                      - type: user_reference
                        summary: null
                        self: https://api.pagerduty.com/users/PZOW51A
                        id: PZOW51A
                        html_url: null
                      name: A New Response Play
                      id: 15b4b27e-2448-adf9-c5a5-85382304ff37
                      html_url: null
                      description: A Response Play that adds subscribers and responders
                      conference_url: null
                      conference_number: null
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /response_plays/{id}:
    description: Manage a Response Play.
    get:
      deprecated: true
      x-pd-requires-scope: response_plays.read
      tags:
      - Response Plays
      operationId: getResponsePlay
      description: 'Get details about an existing Response Play.


        Response Plays allow you to create packages of Incident Actions that can be applied during an Incident''s life cycle.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays)


        When using a Global API token, the `From` header is required.

        Scoped OAuth requires: `response_plays.read`

        '
      summary: PagerDuty Get a Response Play
      parameters:
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/optional_from_header'
      responses:
        '200':
          description: The Response Play requested.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response_play:
                    $ref: '#/components/schemas/ResponsePlay'
              examples:
                response:
                  summary: Response Example
                  value:
                    response_play:
                      type: response_play
                      team: null
                      summary: Email Service Response Play
                      subscribers_message: null
                      subscribers: null
                      self: https://api.pagerduty.com/response_plays/15b4b27e-2448-adf9-c5a5-85382304ff37
                      runnability: services
                      responders_message: null
                      responders:
                      - type: escalation_policy_reference
                        summary: null
                        self: https://api.pagerduty.com/escalation_policies/PZOW51A
                        id: PZOW51A
                        html_url: null
                      name: Email Service Response Play
                      id: 15b4b27e-2448-adf9-c5a5-85382304ff37
                      html_url: null
                      description: null
                      conference_url: null
                      conference_number: null
        '400':
          $ref: '#/components/responses/ArgumentError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    put:
      deprecated: true
      x-pd-requires-scope: response_plays.write
      tags:
      - Response Plays
      operationId: updateResponsePlay
      description: 'Updates an existing Response Play.


        Response Plays allow you to create packages of Incident Actions that can be applied during an Incident''s life cycle.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays)


        Scoped OAuth requires: `response_plays.write`

        '
      summary: PagerDuty Update a Response Play
      parameters:
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/from_header'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                response_play:
                  $ref: '#/components/schemas/ResponsePlay'
              required:
              - response_play
            examples:
              request:
                summary: Request Example
                value:
                  response_play:
                    type: response_play
                    team: null
                    summary: Test Response Play
                    subscribers_message: Please view the attached incident.
                    subscribers:
                    - type: user_reference
                      id: PFS9QZZ
                    self: https://api.pagerduty.com/response_plays/153d9e1f-9008-ee4e-fa70-0d70cdf92f27
                    runnability: responders
                    responders_message: null
                    responders: []
                    name: Test Response Play
                    id: 153d9e1f-9008-ee4e-fa70-0d70cdf92f27
                    html_url: null
                    description: An updated description of this Response Play.
                    conference_url: null
                    conference_number: null
        description: The Response Play to be updated.
      responses:
        '200':
          description: The Response Play that was updated.
          content:
            application/json:
              schema:
                type: object
                properties:
                  response_play:
                    $ref: '#/components/schemas/ResponsePlay'
              examples:
                response:
                  summary: Response Example
                  value:
                    response_play:
                      type: response_play
                      team: null
                      summary: Test Response Play
                      subscribers_message: Please view the attached incident.
                      subscribers:
                      - type: user_reference
                        summary: null
                        self: https://api.pagerduty.com/users/PFS9QZZ
                        id: PFS9QZZ
                        html_url: null
                      self: https://api.pagerduty.com/response_plays/153d9e1f-9008-ee4e-fa70-0d70cdf92f27
                      runnability: services
                      responders_message: null
                      responders: []
                      name: Test Response Play
                      id: 153d9e1f-9008-ee4e-fa70-0d70cdf92f27
                      html_url: null
                      description: null
                      conference_url: null
                      conference_number: null
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      deprecated: true
      x-pd-requires-scope: response_plays.write
      tags:
      - Response Plays
      operationId: deleteResponsePlay
      description: 'Delete an existing Response Play. Once the Response Play is deleted, the action cannot be undone.


        WARNING: When the Response Play is deleted, it is also removed from any Services that were using it.


        Response Plays allow you to create packages of Incident Actions that can be applied to an Incident.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays)


        Scoped OAuth requires: `response_plays.write`

        '
      summary: PagerDuty Delete a Response Play
      parameters:
      - $ref: '#/components/parameters/id'
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/from_header'
      responses:
        '204':
          description: The Response Play was deleted successfully.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
  /response_plays/{response_play_id}/run:
    description: Run response plays.
    post:
      x-pd-requires-scope: response_plays.write
      deprecated: true
      tags:
      - Response Plays
      operationId: runResponsePlay
      description: 'Run a specified response play on a given incident.


        Response Plays are a package of Incident Actions that can be applied during an Incident''s life cycle.


        For more information see the [API Concepts Document](../../api-reference/ZG9jOjI3NDc5Nzc-api-concepts#response-plays)


        Scoped OAuth requires: `response_plays.write`

        '
      summary: PagerDuty Run a response play
      parameters:
      - $ref: '#/components/parameters/header_Accept'
      - $ref: '#/components/parameters/header_Content-Type'
      - $ref: '#/components/parameters/response_play_id'
      - $ref: '#/components/parameters/from_header'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                incident:
                  $ref: '#/components/schemas/IncidentReference'
              required:
              - incident
            examples:
              request:
                summary: Request Example
                value:
                  incident:
                    id: PWL7QXS
                    type: incident_reference
      responses:
        '200':
          description: Informs the user if the response play has been run successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                required:
                - status
              examples:
                response:
                  summary: Response Example
                  value:
                    status: ok
        '400':
          $ref: '#/components/responses/ArgumentError'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
components:
  responses:
    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.

        You can also use the [Abilities API](#resource_Abilities) to determine what features are available to your account.

        '
      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.

        If you are using an API key, it may be invalid or your Authorization header may be malformed.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/responses/Conflict/content/application~1json/schema'
    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:
            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
    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'
    Forbidden:
      description: 'Caller is not authorized to view the requested resource.

        While your authentication is valid, the authenticated user or token does not have permission to perform this action.

        '
      content:
        application/json:
          schema:
            $ref: '#/components/responses/Conflict/content/application~1json/schema'
  parameters:
    from_header:
      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
    query:
      name: query
      in: query
      description: Filters the result, showing only the records whose name matches the query.
      required: false
      schema:
        type: string
    header_Accept:
      name: Accept
      description: The `Accept` header is used as a versioning header.
      in: header
      required: true
      schema:
        type: string
        default: application/vnd.pagerduty+json;version=2
    header_Content-Type:
      name: Content-Type
      in: header
      required: true
      schema:
        type: string
        default: application/json
        enum:
        - application/json
    id:
      name: id
      description: The ID of the resource.
      in: path
      required: true
      schema:
        type: string
    optional_from_header:
      name: From
      in: header
      description: The email address of a valid user associated with the account making the request. This is optional, and is only used for change tracking.
      required: false
      schema:
        type: string
        format: email
    response_play_id:
      name: response_play_id
      in: path
      description: The response play ID of the response play associated with the request.
      required: true
      schema:
        type: string
    filter_for_manual_run:
      name: filter_for_manual_run
      in: query
      description: When this parameter is present, only those Response Plays that can be run manually will be returned.
      schema:
        type: boolean
  schemas:
    TeamReference:
      allOf:
      - $ref: '#/components/schemas/Reference'
      - type: object
        properties:
          type:
            type: string
            enum:
            - team_reference
    IncidentReference:
      allOf:
      - $ref: '#/components/schemas/Reference'
      - type: object
        properties:
          type:
            type: string
            enum:
            - incident_reference
    UserReference:
      allOf:
      - $ref: '#/components/schemas/Reference'
      - type: object
        properties:
          type:
            type: string
            enum:
            - user_reference
    ResponsePlay:
      allOf:
      - $ref: '#/components/schemas/Tag/allOf/0'
      - type: object
        properties:
          type:
            type: string
            description: The type of object being created.
            default: response_play
            enum:
            - response_play
          name:
            type: string
            description: The name of the response play.
          description:
            type: string
            nullable: true
            description: The description of the response play.
            maxLength: 349
          team:
            oneOf:
            - $ref: '#/components/schemas/TeamReference'
            - type: object
              nullable: true
          subscribers:
            type: array
            nullable: true
            description: An array containing the users and/or teams to be added as subscribers to any incident on which this response play is run.
            items:
              anyOf:
              - $ref: '#/components/schemas/UserReference'
              - $ref: '#/components/schemas/TeamReference'
              discriminator:
                propertyName: type
          subscribers_message:
            type: string
            nullable: true
            description: The content of the notification that will be sent to all incident subscribers upon the running of this response play. Note that this includes any users who may have already been subscribed to the incident prior to the running of this response play. If empty, no notifications will be sent.
          responders:
            type: array
            description: An array containing the users and/or escalation policies to be requested as responders to any incident on which this response play is run.
            items:
              anyOf:
              - $ref: '#/components/schemas/UserReference'
              - $ref: '#/components/schemas/EscalationPolicyReference'
              discriminator:
                propertyName: type
          responders_message:
            type: string
            nullable: true
            description: The message body of the notification that will be sent to this response play's set of responders. If empty, a default response request notification will be sent.
          runnability:
            type: string
            description: "String representing how this response play is allowed to be run. Valid options are:\n  - `services`: This response play cannot be manually run by any users. It will run automatically for new incidents triggered on any services that are configured with this response play.\n  - `teams`: This response play can be run manually on an incident only by members of its configured team. This option can only be selected when the `team` property for this response play is not empty.\n  - `responders`: This response play can be run manually on an incident by any responders in this account."
            enum:
            - services
            - teams
            - responders
            default: services
          conference_number:
            type: string
            nullable: true
            description: The telephone number that will be set as the conference number for any incident on which this response play is run.
          conference_url:
            type: string
            description: The URL that will be set as the conference URL for any incident on which this response play is run.
            nullable: true
          conference_type:
            type: string
            description: "This field has three possible values and indicates how the response play was created.\n  - `none` : The response play had no conference_number or conference_url set at time of creation.\n  - `manual` : The response play had one or both of conference_number and conference_url set at time of creation.\n  - `zoom` : Customers with the Zoom-Integration Entitelment can use this value to dynamicly configure conference number and url for zoom"
            enum:
            - none
            - manual
            - zoom
            default: none
    Reference:
      allOf:
      - $ref: '#/components/schemas/Tag/allOf/0'
      - type: object
        required:
        - type
        - id
    EscalationPolicyReference:
      allOf:
      - $ref: '#/components/schemas/Reference'
      - type: object
        properties:
          type:
            type: string
            enum:
            - escalation_policy_reference
    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
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
      description: The API Key with format `Token token=<API_KEY>`