Telnyx Webhooks API

Webhooks operations

OpenAPI Specification

telnyx-webhooks-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  contact:
    email: support@telnyx.com
  description: Telnyx provides global communications and connectivity APIs for developers — including SIP trunking, programmable voice, SMS, MMS, WhatsApp Business Messaging, Call Control, Fax, Wireless (IoT & eSIM), Phone Numbers (DID provisioning & porting), Emergency Services, and Network APIs for private interconnects and edge connectivity. Build, scale, and manage voice, messaging, and data networks with Telnyx's carrier-grade global infrastructure and API-first platform.
  title: Telnyx Access Tokens Webhooks API
  version: 2.0.0
  x-endpoint-cost: light
servers:
- description: Version 2.0.0 of the Telnyx API
  url: https://api.telnyx.com/v2
security:
- bearerAuth: []
tags:
- description: Webhooks operations
  name: Webhooks
paths:
  /webhook_deliveries:
    get:
      description: Lists webhook_deliveries for the authenticated user
      operationId: GetWebhookDeliveries
      parameters:
      - $ref: '#/components/parameters/PageConsolidated'
      - description: 'Consolidated filter parameter (deepObject style). Originally: filter[status][eq], filter[event_type], filter[webhook][contains], filter[attempts][contains], filter[started_at][gte], filter[started_at][lte], filter[finished_at][gte], filter[finished_at][lte]'
        explode: true
        in: query
        name: filter
        required: false
        schema:
          properties:
            attempts:
              properties:
                contains:
                  description: Return only webhook_deliveries whose `attempts` component contains the given text
                  example: https://fallback.example.com/webhooks
                  type: string
              type: object
            event_type:
              description: Return only webhook_deliveries matching the given value of `event_type`. Accepts multiple values separated by a `,`.
              example: call_initiated,call.initiated
              type: string
            finished_at:
              properties:
                gte:
                  description: Return only webhook_deliveries whose delivery finished later than or at given ISO 8601 datetime
                  example: '2019-03-29T11:10:00Z'
                  type: string
                lte:
                  description: Return only webhook_deliveries whose delivery finished earlier than or at given ISO 8601 datetime
                  example: '2019-03-29T11:10:00Z'
                  type: string
              type: object
            started_at:
              properties:
                gte:
                  description: Return only webhook_deliveries whose delivery started later than or at given ISO 8601 datetime
                  example: '2019-03-29T11:10:00Z'
                  type: string
                lte:
                  description: Return only webhook_deliveries whose delivery started earlier than or at given ISO 8601 datetime
                  example: '2019-03-29T11:10:00Z'
                  type: string
              type: object
            status:
              properties:
                eq:
                  description: Return only webhook_deliveries matching the given `status`
                  enum:
                  - delivered
                  - failed
                  example: delivered
                  type: string
              type: object
            webhook:
              properties:
                contains:
                  description: Return only webhook deliveries whose `webhook` component contains the given text
                  example: call.initiated
                  type: string
              type: object
          type: object
        style: deepObject
      responses:
        '200':
          $ref: '#/components/responses/ListWebhookDeliveriesResponse'
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable entity
      summary: List webhook deliveries
      tags:
      - Webhooks
      x-latency-category: responsive
  /webhook_deliveries/{id}:
    get:
      description: Provides webhook_delivery debug data, such as timestamps, delivery status and attempts.
      operationId: GetWebhookDelivery
      parameters:
      - description: Uniquely identifies the webhook_delivery.
        in: path
        name: id
        required: true
        schema:
          example: C9C0797E-901D-4349-A33C-C2C8F31A92C2
          format: uuid
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  data:
                    $ref: '#/components/schemas/webhook_delivery'
                type: object
          description: Webhook delivery record.
        '401':
          description: Unauthorized
        '404':
          description: WebhookDelivery not found
      summary: Find webhook_delivery details by ID
      tags:
      - Webhooks
      x-latency-category: responsive
components:
  responses:
    ListWebhookDeliveriesResponse:
      content:
        application/json:
          schema:
            properties:
              data:
                items:
                  $ref: '#/components/schemas/webhook_delivery'
                type: array
              meta:
                $ref: '#/components/schemas/PaginationMetaSimple'
            type: object
      description: A paginated array of webhook_delivery attempts
  schemas:
    webhook_delivery:
      description: Record of all attempts to deliver a webhook.
      properties:
        attempts:
          description: Detailed delivery attempts, ordered by most recent.
          example:
          - finished_at: '2020-08-10T14:00:05.595Z'
            http:
              request:
                headers:
                - - Accept
                  - '*/*'
                url: https://fallback.example.com/webhooks
              response:
                body: All good.
                headers:
                - - Content-Type
                  - text/html
                status: 200
            started_at: '2020-08-10T14:00:05.364Z'
            status: delivered
          - errors:
            - 75499
            finished_at: '2020-08-10T14:00:05.360Z'
            http:
              request:
                headers:
                - - Accept
                  - '*/*'
                url: https://typo.example.com/webhooks
              response:
                body: Oops. Not found.
                headers:
                - - Content-Type
                  - text/html
                - - Pragma
                  - no-cache
                status: 404
            started_at: '2020-08-10T14:00:05.004Z'
            status: failed
          items:
            $ref: '#/components/schemas/attempt'
          type: array
        finished_at:
          description: ISO 8601 timestamp indicating when the last webhook response has been received.
          example: '2020-08-10T14:00:05.595Z'
          format: date-time
          type: string
        id:
          description: Uniquely identifies the webhook_delivery record.
          example: f5586561-8ff0-4291-a0ac-84fe544797bd
          format: uuid
          type: string
        record_type:
          description: Identifies the type of the resource.
          example: webhook_delivery
          type: string
        started_at:
          description: ISO 8601 timestamp indicating when the first request attempt was initiated.
          example: '2020-08-10T14:00:00.000Z'
          format: date-time
          type: string
        status:
          description: 'Delivery status: ''delivered'' when successfuly delivered or ''failed'' if all attempts have failed.'
          enum:
          - delivered
          - failed
          type: string
        user_id:
          description: Uniquely identifies the user that owns the webhook_delivery record.
          example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
          format: uuid
          type: string
        webhook:
          description: Original webhook JSON data. Payload fields vary according to event type.
          example:
            event_type: call_initiated
            id: C9C0797E-901D-4349-A33C-C2C8F31A92C2
            occurred_at: '2020-08-10T13:02:01.000Z'
            payload:
              useful: information
            record_type: event
          properties:
            event_type:
              description: The type of event being delivered.
              example: webhook.command
              type: string
            id:
              description: Identifies the type of resource.
              example: 0ccc7b54-4df3-4bca-a65a-3da1ecc777f0
              format: uuid
              type: string
            occurred_at:
              description: ISO 8601 datetime of when the event occurred.
              example: '2018-02-02T22:25:27.521992Z'
              format: date-time
              type: string
            payload:
              additionalProperties: true
              type: object
            record_type:
              description: Identifies the type of the resource.
              enum:
              - event
              example: event
              type: string
          type: object
    http:
      description: HTTP request and response information.
      properties:
        request:
          description: Request details.
          properties:
            headers:
              $ref: '#/components/schemas/http_headers'
            url:
              example: https://example.com/webhooks
              type: string
        response:
          description: Response details, optional.
          properties:
            body:
              description: Raw response body, limited to 10kB.
              type: string
            headers:
              $ref: '#/components/schemas/http_headers'
            status:
              example: 200
              type: integer
          type: object
    PaginationMetaSimple:
      properties:
        page_number:
          example: 2
          type: integer
        page_size:
          example: 25
          type: integer
        total_pages:
          example: 3
          type: integer
        total_results:
          example: 55
          type: integer
      type: object
    http_headers:
      description: List of headers, limited to 10kB.
      example:
      - - header_name
        - header_value
      items:
        items:
          type: string
        type: array
      type: array
    attempt:
      description: Webhook delivery attempt details.
      example:
      - finished_at: '2020-08-10T14:00:05.595Z'
        http:
          request:
            headers:
            - - Accept
              - '*/*'
            url: https://fallback.example.com/webhooks
          response:
            body: All good.
            headers:
            - - Content-Type
              - text/html
            status: 200
        started_at: '2020-08-10T14:00:05.364Z'
        status: delivered
      - errors:
        - 75499
        finished_at: '2020-08-10T14:00:05.360Z'
        http:
          request:
            headers:
            - - Accept
              - '*/*'
            url: https://typo.example.com/webhooks
          response:
            body: Oops. Not found.
            headers:
            - - Content-Type
              - text/html
            - - Pragma
              - no-cache
            status: 404
        started_at: '2020-08-10T14:00:05.004Z'
        status: failed
      - errors:
        - code: '75001'
          detail: Unable to resolve the webhook URL domain name
          title: Could not resolve name
        finished_at: '2020-08-10T14:00:05.000Z'
        http:
          reponse: null
          request:
            headers:
            - 'Accept: */*'
            url: https://slow.example.com/webhooks
        started_at: '2020-08-10T14:00:00.000Z'
        status: failed
      properties:
        errors:
          description: Webhook delivery error codes.
          items:
            type: integer
          type: array
        finished_at:
          description: ISO 8601 timestamp indicating when the attempt has finished.
          format: date-time
          type: string
        http:
          $ref: '#/components/schemas/http'
        started_at:
          description: ISO 8601 timestamp indicating when the attempt was initiated.
          format: date-time
          type: string
        status:
          enum:
          - delivered
          - failed
          type: string
  parameters:
    PageConsolidated:
      description: 'Consolidated page parameter (deepObject style). Originally: page[number], page[size]'
      explode: true
      in: query
      name: page
      schema:
        properties:
          number:
            default: 1
            description: The page number to load
            minimum: 1
            type: integer
          size:
            default: 20
            description: The size of the page
            maximum: 250
            minimum: 1
            type: integer
        type: object
      style: deepObject
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http
    branded-calling_bearerAuth:
      description: API key passed as a Bearer token in the Authorization header
      scheme: bearer
      type: http
    oauthClientAuth:
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
      flows:
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
        clientCredentials:
          scopes:
            admin: Administrative access to Telnyx resources
          tokenUrl: https://api.telnyx.com/v2/oauth/token
      type: oauth2
    outbound-voice-profiles_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
    pronunciation-dicts_bearerAuth:
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
      scheme: bearer
      type: http
    stored-payment-transactions_bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http