openapi: 3.1.1
info:
  title: Bandwidth RTC
  version: 1.0.0
  contact:
    name: Bandwidth
    url: https://support.bandwidth.com
    email: support@bandwidth.com
  termsOfService: https://www.bandwidth.com/legal/terms-of-use-bandwidthcom-web-sites/
  description: |-
    The API Specification for Bandwidth's RTC API.

    ## Base URL

    `https://api.bandwidth.com/v2`
servers:
  - url: https://api.bandwidth.com/v2
    description: Production
paths:
  /accounts/{accountId}/endpoints:
    get:
      tags:
        - Endpoints
      summary: List Endpoints
      description: Returns a list of endpoints associated with the specified account.
      operationId: listEndpoints
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/endpointType'
        - $ref: '#/components/parameters/endpointStatus'
        - $ref: '#/components/parameters/afterCursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          $ref: '#/components/responses/listEndpointsResponse'
        '400':
          $ref: '#/components/responses/badRequestErrorResponse'
        '401':
          $ref: '#/components/responses/unauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/forbiddenErrorResponse'
        '404':
          $ref: '#/components/responses/notFoundErrorResponse'
        '405':
          $ref: '#/components/responses/methodNotAllowedErrorResponse'
        '415':
          $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
        '429':
          $ref: '#/components/responses/tooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/serviceUnavailableErrorResponse'
    post:
      tags:
        - Endpoints
      summary: Create Endpoint
      description: Creates a new Endpoint for the specified account.
      operationId: createEndpoint
      parameters:
        - $ref: '#/components/parameters/accountId'
      requestBody:
        $ref: '#/components/requestBodies/createEndpointRequest'
      responses:
        '201':
          $ref: '#/components/responses/createEndpointResponse'
        '400':
          $ref: '#/components/responses/badRequestErrorResponse'
        '401':
          $ref: '#/components/responses/unauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/forbiddenErrorResponse'
        '404':
          $ref: '#/components/responses/notFoundErrorResponse'
        '405':
          $ref: '#/components/responses/methodNotAllowedErrorResponse'
        '415':
          $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
        '429':
          $ref: '#/components/responses/tooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/serviceUnavailableErrorResponse'
      callbacks:
        endpointEventCallback:
          $ref: '#/components/callbacks/endpointEvent'
  /accounts/{accountId}/endpoints/{endpointId}:
    get:
      tags:
        - Endpoints
      summary: Get Endpoint
      description: Returns information about the specified endpoint.
      operationId: getEndpoint
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/endpointId'
      responses:
        '200':
          $ref: '#/components/responses/getEndpointResponse'
        '400':
          $ref: '#/components/responses/badRequestErrorResponse'
        '401':
          $ref: '#/components/responses/unauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/forbiddenErrorResponse'
        '404':
          $ref: '#/components/responses/notFoundErrorResponse'
        '405':
          $ref: '#/components/responses/methodNotAllowedErrorResponse'
        '415':
          $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
        '429':
          $ref: '#/components/responses/tooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/serviceUnavailableErrorResponse'
    delete:
      tags:
        - Endpoints
      summary: Delete Endpoint
      description: >-
        Deletes the specified endpoint. If the endpoint is actively streaming
        media, the media stream will be terminated.
      operationId: deleteEndpoint
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/endpointId'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/badRequestErrorResponse'
        '401':
          $ref: '#/components/responses/unauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/forbiddenErrorResponse'
        '404':
          $ref: '#/components/responses/notFoundErrorResponse'
        '405':
          $ref: '#/components/responses/methodNotAllowedErrorResponse'
        '415':
          $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
        '429':
          $ref: '#/components/responses/tooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/serviceUnavailableErrorResponse'
  /accounts/{accountId}/endpoints/{endpointId}/bxml:
    put:
      tags:
        - Endpoints
      summary: Update Endpoint BXML
      description: Updates the BXML for the specified endpoint.
      operationId: updateEndpointBxml
      parameters:
        - $ref: '#/components/parameters/accountId'
        - $ref: '#/components/parameters/endpointId'
      requestBody:
        $ref: '#/components/requestBodies/updateEndpointBxmlRequest'
      responses:
        '204':
          description: No Content
        '400':
          $ref: '#/components/responses/badRequestErrorResponse'
        '401':
          $ref: '#/components/responses/unauthorizedErrorResponse'
        '403':
          $ref: '#/components/responses/forbiddenErrorResponse'
        '404':
          $ref: '#/components/responses/notFoundErrorResponse'
        '405':
          $ref: '#/components/responses/methodNotAllowedErrorResponse'
        '415':
          $ref: '#/components/responses/unsupportedMediaTypeErrorResponse'
        '429':
          $ref: '#/components/responses/tooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/serviceUnavailableErrorResponse'
components:
  parameters:
    accountId:
      in: path
      name: accountId
      required: true
      schema:
        type: string
      description: Your Bandwidth Account ID.
      example: '9900000'
    endpointId:
      name: endpointId
      in: path
      required: true
      schema:
        type: string
        example: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
      description: BRTC Endpoint ID.
    endpointType:
      name: type
      in: query
      schema:
        $ref: '#/components/schemas/endpointTypeEnum'
      description: The type of endpoint.
    endpointStatus:
      name: status
      in: query
      schema:
        $ref: '#/components/schemas/endpointStatusEnum'
      description: The status of the endpoint.
    afterCursor:
      name: afterCursor
      in: query
      schema:
        type: string
        example: TWF5IHRoZSBmb3JjZSBiZSB3aXRoIHlvdQ==
      description: >-
        The cursor to use for pagination. This is the value of the `next` link
        in the previous response.
    limit:
      name: limit
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 100
        example: 2
      description: The maximum number of endpoints to return in the response.
  schemas:
    endpointId:
      type: string
      description: The unique ID of the endpoint.
      example: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    endpointStatusEnum:
      type: string
      enum:
        - CONNECTED
        - DISCONNECTED
    deviceStatusEnum:
      type: string
      enum:
        - CONNECTED
        - DISCONNECTED
    endpointTypeEnum:
      type: string
      enum:
        - WEBRTC
    endpointDirectionEnum:
      type: string
      enum:
        - INBOUND
        - OUTBOUND
        - BIDIRECTIONAL
    sipCredentials:
      type: object
      properties:
        username:
          type: string
          description: The username for the SIP connection.
          example: username
        password:
          type: string
          description: The password for the SIP connection.
          example: password
    sipConnectionMetadata:
      title: SIP Connection
      type: object
      properties:
        ipAddress:
          type: string
          format: ipv4
          description: The IP address of the SIP connection.
          example: 192.168.0.0
        port:
          type: integer
          description: The port of the SIP connection.
          example: 5060
        credentials:
          $ref: '#/components/schemas/sipCredentials'
        uuiHeader:
          type: string
          description: The User-to-User Information header for the SIP connection.
          example: my-uui-header
    webRtcConnectionMetadata:
      title: WebRTC Connection
      type: object
    endpointToken:
      type: string
      description: >-
        The json web token specific to the endpoint. Used to authenticate the
        client with the media gateway.
      example: xxxxx.yyyyy.zzzzz
    endpointTag:
      type: string
      description: A tag for the endpoint.
      example: my-tag
      maximum: 1024
    device:
      type: object
      properties:
        deviceId:
          type: string
          description: The unique ID of the device.
          example: d-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        deviceName:
          type: string
          description: The name of the device.
          maximum: 1024
          example: David's iPhone
        status:
          $ref: '#/components/schemas/deviceStatusEnum'
        creationTimestamp:
          type: string
          format: date-time
          description: The time the device was created. In ISO-8601 format.
          example: '2021-01-01T00:00:00Z'
      required:
        - deviceId
        - status
        - creationTimestamp
    endpoints:
      type: object
      properties:
        endpointId:
          $ref: '#/components/schemas/endpointId'
        type:
          $ref: '#/components/schemas/endpointTypeEnum'
        status:
          $ref: '#/components/schemas/endpointStatusEnum'
        creationTimestamp:
          type: string
          format: date-time
          description: The time the endpoint was created. In ISO-8601 format.
          example: '2021-01-01T00:00:00Z'
        expirationTimestamp:
          type: string
          format: date-time
          description: >-
            The time the endpoint token will expire. In ISO-8601 format. Tokens
            last 24 hours.
          example: '2021-01-02T00:00:00Z'
        tag:
          $ref: '#/components/schemas/endpointTag'
      required:
        - endpointId
        - type
        - status
        - creationTimestamp
        - expirationTimestamp
    endpoint:
      type: object
      allOf:
        - $ref: '#/components/schemas/endpoints'
        - type: object
          properties:
            devices:
              type: array
              items:
                $ref: '#/components/schemas/device'
    createWebRtcConnectionRequest:
      allOf:
        - $ref: '#/components/schemas/createEndpointRequestBase'
        - type: object
          properties:
            connectionMetadata:
              $ref: '#/components/schemas/webRtcConnectionMetadata'
    createEndpointRequestBase:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/endpointTypeEnum'
        direction:
          $ref: '#/components/schemas/endpointDirectionEnum'
        eventCallbackUrl:
          type: string
          format: uri
          description: The URL to send event callbacks to.
          example: https://myapp.com/callback
        eventFallbackUrl:
          type: string
          format: uri
          description: The URL to send event fallbacks to.
          example: https://fallback.myapp.com/callback
        tag:
          $ref: '#/components/schemas/endpointTag'
      required:
        - type
        - direction
    createEndpointRequest:
      oneOf:
        - $ref: '#/components/schemas/createWebRtcConnectionRequest'
      discriminator:
        propertyName: type
        mapping:
          WEBRTC: '#/components/schemas/createWebRtcConnectionRequest'
    createEndpointResponseData:
      allOf:
        - $ref: '#/components/schemas/endpoint'
        - type: object
          properties:
            token:
              $ref: '#/components/schemas/endpointToken'
          required:
            - token
    endpointEventTypeEnum:
      type: string
      enum:
        - DEVICE_CONNECTED
        - DEVICE_DISCONNECTED
    endpointEvent:
      description: An event that occurred on an endpoint.
      allOf:
        - $ref: '#/components/schemas/endpoints'
        - type: object
          properties:
            eventTime:
              type: string
              format: date-time
              description: The time the event occurred. In ISO-8601 format.
              example: '2021-01-01T00:00:00Z'
            eventType:
              $ref: '#/components/schemas/endpointEventTypeEnum'
            device:
              $ref: '#/components/schemas/device'
          required:
            - eventType
            - eventTime
    brtcLink:
      type: object
      properties:
        href:
          type: string
          description: The full URL of the link.
          example: >-
            https://api.bandwidth.com/v2/accounts/5500123/endpoints/e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        rel:
          type: string
          description: The relationship of the link to the current resource.
          example: self
        method:
          type: string
          description: The HTTP method to use when making the request.
          example: GET
    page:
      type: object
      properties:
        pageSize:
          type: integer
          description: The number of items per page.
          minimum: 0
          example: 10
        totalElements:
          type: integer
          description: The total number of items.
          minimum: 0
          example: 100
        totalPages:
          type: integer
          description: The total number of pages.
          minimum: 0
          example: 10
        pageNumber:
          type: integer
          description: The current page number.
          minimum: 0
          example: 0
      required:
        - pageSize
    brtcError:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: A unique identifier for the error.
          example: 59512d87-7a92-4040-8e4a-78fb772019b9
        type:
          type: string
          description: The type of error.
          example: resource.not_found
        description:
          type: string
          description: A description of the error.
          example: The requested resource was not found.
        code:
          type: string
          description: A code that uniquely identifies the error.
          example: '404'
        source:
          $ref: '#/components/schemas/brtcErrorSource'
      required:
        - type
        - description
    brtcErrorSource:
      type: object
      properties:
        parameter:
          type: string
          description: The URI parameter that caused the error.
          example: accountId
        field:
          type: string
          description: The request body field that caused the error.
          example: accountId
        header:
          type: string
          description: The header that caused the error.
          example: Authorization
        reference:
          type: string
          description: >-
            The resource ID or path to the resource (or non-existent resource)
            causing the error.
          example: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    listEndpointsResponse:
      type: object
      properties:
        links:
          type: array
          items:
            $ref: '#/components/schemas/brtcLink'
        page:
          $ref: '#/components/schemas/page'
        data:
          type: array
          items:
            $ref: '#/components/schemas/endpoints'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/brtcError'
      required:
        - links
        - data
        - errors
    endpointResponse:
      type: object
      properties:
        links:
          type: array
          items:
            $ref: '#/components/schemas/brtcLink'
        data:
          $ref: '#/components/schemas/endpoint'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/brtcError'
      required:
        - links
        - data
        - errors
    createEndpointResponse:
      type: object
      properties:
        links:
          type: array
          items:
            $ref: '#/components/schemas/brtcLink'
        data:
          $ref: '#/components/schemas/createEndpointResponseData'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/brtcError'
      required:
        - links
        - data
        - errors
    brtcErrorResponse:
      type: object
      properties:
        links:
          type: array
          items:
            $ref: '#/components/schemas/brtcLink'
        data:
          type: object
          nullable: true
          additionalProperties: false
        errors:
          type: array
          items:
            $ref: '#/components/schemas/brtcError'
      required:
        - links
        - data
        - errors
  requestBodies:
    createEndpointRequest:
      required: true
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/createEndpointRequest'
          examples:
            createWebRtcEndpointRequestExample:
              $ref: '#/components/examples/createWeRtcEndpointExample'
    updateEndpointBxmlRequest:
      required: true
      content:
        application/xml:
          schema:
            type: string
            description: >-
              The BXML document to update the endpoint with. This BXML document
              will be executed against the endpoint when it is updated.

              For more information, please refer to our [BXML
              documentation](/docs/voice/bxml/).
          examples:
            updateEndpointBxmlRequestExample:
              $ref: '#/components/examples/updateEndpointBxmlRequestExample'
  responses:
    listEndpointsResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/listEndpointsResponse'
          examples:
            listEndpointsResponseExample:
              $ref: '#/components/examples/listEndpointsResponseExample'
    createEndpointResponse:
      description: Created
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/createEndpointResponse'
          examples:
            createEndpointResponseExample:
              $ref: '#/components/examples/createEndpointResponseExample'
    getEndpointResponse:
      description: OK
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/endpointResponse'
          examples:
            getEndpointResponseExample:
              $ref: '#/components/examples/getEndpointResponseExample'
    badRequestErrorResponse:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            badRequestErrorExample:
              $ref: '#/components/examples/badRequestErrorExample'
    unauthorizedErrorResponse:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            unauthorizedErrorExample:
              $ref: '#/components/examples/unauthorizedErrorExample'
    forbiddenErrorResponse:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            forbiddenErrorExample:
              $ref: '#/components/examples/forbiddenErrorExample'
    notFoundErrorResponse:
      description: Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            notFoundErrorExample:
              $ref: '#/components/examples/notFoundErrorExample'
    methodNotAllowedErrorResponse:
      description: Method Not Allowed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            methodNotAllowedErrorExample:
              $ref: '#/components/examples/methodNotAllowedErrorExample'
    unsupportedMediaTypeErrorResponse:
      description: Unsupported Media Type
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            unsuppotedMediaTypeErrorExample:
              $ref: '#/components/examples/unsupportedMediaTypeErrorExample'
    tooManyRequestsErrorResponse:
      description: Too Many Requests
      headers:
        Retry-After:
          description: >-
            The number of seconds the client should wait before making another
            request.
          required: true
          schema:
            type: integer
            example: 900
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            tooManyRequestsErrorExample:
              $ref: '#/components/examples/tooManyRequestsErrorExample'
    serviceUnavailableErrorResponse:
      description: Service Unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/brtcErrorResponse'
          examples:
            serviceUnavailableErrorExample:
              $ref: '#/components/examples/serviceUnavailableErrorExample'
  callbacks:
    endpointEvent:
      '{request.body#/eventCallbackUrl}':
        post:
          requestBody:
            content:
              application/json:
                schema:
                  $ref: '#/components/schemas/endpointEvent'
                examples:
                  endpointDisconnectedEventExample:
                    $ref: '#/components/examples/endpointDisconnectedEventExample'
          responses:
            '204':
              description: Event was successfully received.
  examples:
    listEndpointsResponseExample:
      summary: List Endpoints Paginated Response
      value:
        links:
          - href: >-
              https://api.bandwidth.com/v2/accounts/5500123/endpoints?type=SIP&status=CONNECTED&limit=2
            rel: self
            method: GET
          - href: >-
              https://api.bandwidth.com/v2/accounts/5500123/endpoints?type=SIP&status=CONNECTED&limit=2&afterCursor=TWF5IHRoZSBmb3JjZSBiZSB3aXRoIHlvdQ==
            rel: next
            method: GET
        page:
          pageSize: 2
          totalElements: 10
          totalPages: 5
          pageNumber: 0
        data:
          - endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
            type: WEBRTC
            status: CONNECTED
            creationTimestamp: '2021-01-01T00:00:00Z'
            expirationTimestamp: '2021-01-02T00:00:00Z'
            tag: my-tag
          - endpointId: e-2cb0-4a07-b215-b22865662d85-15ac29a2-1331029c
            type: WEBRTC
            status: CONNECTED
            creationTimestamp: '2021-01-01T00:00:00Z'
            expirationTimestamp: '2021-01-02T00:00:00Z'
            tag: my-tag
        errors: []
    createEndpointResponseExample:
      summary: Create Endpoint Response
      value:
        links:
          - href: >-
              https://api.bandwidth.com/v2/accounts/5500123/endpoints/e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
            rel: endpoint
            method: GET
        data:
          endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          token: xxxxx.yyyyy.zzzzz
          type: WEBRTC
          status: CONNECTED
          creationTimestamp: '2021-01-01T00:00:00Z'
          expirationTimestamp: '2021-01-02T00:00:00Z'
          devices: []
          tag: my-tag
        errors: []
    getEndpointResponseExample:
      summary: Get Endpoint Response
      value:
        links:
          - href: >-
              https://api.bandwidth.com/v2/accounts/5500123/endpoints/e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
            rel: self
            method: GET
        data:
          endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
          type: WEBRTC
          status: CONNECTED
          creationTimestamp: '2021-01-01T00:00:00Z'
          expirationTimestamp: '2021-01-02T00:00:00Z'
          devices: []
          tag: my-tag
        errors: []
    createSipEndpointRequestExample:
      summary: SIP Endpoint Example
      value:
        type: SIP
        connectionMetadata:
          ipAddress: 0.0.0.0
          port: 3000
          credentials:
            username: username
            password: '********'
          uuiHeader: 123456;encoding=jwt
        direction: INBOUND
        eventCallbackUrl: https://myEventCallbackUrl.com/callbacks/bandwidth
        eventFallbackUrl: https://fallback.myEventCallbackUrl.com/callbacks/bandwidth
        tag: '{"myTag": "myTagValue"}'
    createWeRtcEndpointExample:
      summary: WebRTC Endpoint Example
      value:
        type: WEBRTC
        direction: BIDIRECTIONAL
        eventCallbackUrl: https://myEventCallbackUrl.com/callbacks/bandwidth
        eventFallbackUrl: https://fallback.myEventCallbackUrl.com/callbacks/bandwidth
        tag: '{"myTag": "myTagValue"}'
    updateEndpointBxmlRequestExample:
      summary: Update Endpoint BXML Request Example
      value: <Bxml><StartRecording /></Bxml>
    endpointDisconnectedEventExample:
      summary: Endpoint Disconnected Event
      value:
        endpointId: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
        type: WEBRTC
        status: DISCONNECTED
        creationTimestamp: '2021-01-01T00:00:00Z'
        expirationTimestamp: '2021-01-02T00:00:00Z'
        eventTime: '2021-01-01T00:00:00Z'
        eventType: DEVICE_DISCONNECTED
        tag: my-tag
    badRequestErrorExample:
      summary: Bad Request Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: invalid_parameter
            description: accountId must not contain any characters other than numbers.
            code: '400'
            source:
              parameter: accountId
    unauthorizedErrorExample:
      summary: Unauthorized Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: unauthorized
            description: >-
              The provided credentials are not authorized to access this
              resource.
            code: '401'
            source:
              header: Authorization
    forbiddenErrorExample:
      summary: Forbidden Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: forbidden
            description: >-
              The provided credentials are not authorized to access this
              resource.
            code: '403'
            source:
              header: Authorization
    notFoundErrorExample:
      summary: Not Found Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: resource_not_found
            description: The requested resource was not found.
            code: '404'
            source:
              reference: e-15ac29a2-1331029c-2cb0-4a07-b215-b22865662d85
    methodNotAllowedErrorExample:
      summary: Method Not Allowed Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: method_not_allowed
            description: The requested method is not allowed on this resource.
            code: '405'
            source:
              parameter: accountId
    unsupportedMediaTypeErrorExample:
      summary: Unsupported Media Type Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: unsupported_media_type
            description: The provided media type is not supported.
            code: '415'
            source:
              header: Content-Type
    tooManyRequestsErrorExample:
      summary: Too Many Requests Error Example
      value:
        links: []
        data: null
        errors:
          - type: too_many_endpoints
            description: >-
              Too many endpoints. Please delete an existing endpoint or wait 24
              hours for an endpoint to be removed.
    serviceUnavailableErrorExample:
      summary: Service Unavailable Error Example
      value:
        links: []
        data: null
        errors:
          - id: 59512d87-7a92-4040-8e4a-78fb772019b9
            type: service_unavailable
            description: The service is currently unavailable.
            code: '500'
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Bearer authentication (also called token authentication) is an HTTP
        authentication scheme that involves security tokens called bearer
        tokens.

        The name “Bearer authentication” can be understood as “give access to
        the bearer of this token.”

        The client must send this token in the `Authorization` header when
        making requests to protected resources.


        - Example: `Authorization: Bearer <token>`


        Where `<token>` should be replaced with the token string without angle
        brackets.


        For more information, see our [Credentials](/docs/credentials)
        documentation.
security:
  - Bearer: []
tags:
  - name: Endpoints
