Telnyx Meeting Session Webhooks API

Outbound webhook deliveries for meeting session events.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/telnyx:telnyx-meeting-session-webhooks-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

telnyx-meeting-session-webhooks-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  x-latency-category: responsive
  x-endpoint-cost: light
  title: Telnyx Meeting Session Webhooks API
  description: SIP trunking, SMS, MMS, Call Control and Telephony Data Services.
  contact:
    email: support@telnyx.com
servers:
- url: https://api.telnyx.com/v2
  description: Version 2.0.0 of the Telnyx API
security:
- bearerAuth: []
tags:
- name: Meeting Session Webhooks
  description: Outbound webhook deliveries for meeting session events.
paths: {}
webhooks:
  artifactCompleted:
    post:
      summary: artifact.completed
      description: 'Sent when an artifact finishes generating -- `summary`, `action_items`, `decisions`, `topics`, `open_questions` or `custom`. Deliveries are best effort and not guaranteed: up to 5 attempts with backoff that starts around 60 seconds and roughly doubles per retry, and a 10-second delivery timeout, so respond with a 2xx promptly. Retries can produce duplicates; deduplicate on envelope `id`.'
      tags:
      - Meeting Session Webhooks
      parameters:
      - name: X-Meeting-Bot-Signature
        in: header
        required: true
        description: Signature header `t=<unix-seconds>,v1=<hex>`. Compute HMAC-SHA256 with the webhook secret over the timestamp ASCII bytes, a literal `.` byte, and the exact raw request-body bytes; hex-encode and compare `v1` in constant time. Reject timestamps outside your accepted skew. No bearer token is sent.
        schema:
          type: string
        example: t=1784297100,v1=5e8f...a3c1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - event
              - version
              - occurred_at
              - data
              properties:
                id:
                  type: string
                  description: Unique event id; deduplicate deliveries on it.
                  example: whdel_9f2c...
                event:
                  type: string
                  description: Event type.
                  enum:
                  - artifact.completed
                version:
                  type: string
                  description: Envelope version.
                  example: '1'
                occurred_at:
                  type: string
                  format: date-time
                  description: When the event occurred.
                data:
                  type: object
                  properties:
                    session_id:
                      type: string
                      description: The meeting session this event belongs to.
                      example: mtgsess_9b2f...
                    artifact_id:
                      type: string
                      description: Id of the completed artifact.
                      example: mtgart_4e7c...
                    type:
                      type: string
                      enum:
                      - summary
                      - action_items
                      - decisions
                      - topics
                      - open_questions
                      - custom
                      description: Type of the completed artifact.
                    content:
                      type: object
                      properties:
                        text:
                          type: string
                          description: Generated artifact text.
                      description: Generated artifact content.
                      additionalProperties: false
                      required:
                      - text
                    model_provenance:
                      type: object
                      properties:
                        model:
                          type: string
                        provider:
                          type: string
                      description: Model that generated the artifact.
                      additionalProperties: false
                      required:
                      - model
                      - provider
                    prompt:
                      anyOf:
                      - type: string
                      - type: 'null'
                      description: The prompt that produced this artifact, or null for a named type. Non-null only when `type` is `custom`; the five named types always return `null`.
                  description: Completed artifact, including its generated content.
                  required:
                  - session_id
                  - artifact_id
                  - type
                  - content
                  - model_provenance
                  - prompt
                  additionalProperties: false
              additionalProperties: false
            example:
              id: whdel_9f2c...
              event: artifact.completed
              version: '1'
              occurred_at: '2026-06-16T09:06:00Z'
              data:
                session_id: mtgsess_9b2f...
                artifact_id: mtgart_4e7c...
                type: summary
                content:
                  text: 'Decisions: hold pricing flat through Q3. Actions: Casey to send the summary.'
                model_provenance:
                  model: example-model
                  provider: telnyx
                prompt: null
      responses:
        '200':
          description: Return any 2xx status promptly to acknowledge the delivery; non-2xx responses and timeouts are retried.
      operationId: MeetingArtifactCompletedWebhook
      security: []
  artifactFailed:
    post:
      summary: artifact.failed
      description: 'Sent when an artifact generation fails. Deliveries are best effort and not guaranteed: up to 5 attempts with backoff that starts around 60 seconds and roughly doubles per retry, and a 10-second delivery timeout, so respond with a 2xx promptly. Retries can produce duplicates; deduplicate on envelope `id`.'
      tags:
      - Meeting Session Webhooks
      parameters:
      - name: X-Meeting-Bot-Signature
        in: header
        required: true
        description: Signature header `t=<unix-seconds>,v1=<hex>`. Compute HMAC-SHA256 with the webhook secret over the timestamp ASCII bytes, a literal `.` byte, and the exact raw request-body bytes; hex-encode and compare `v1` in constant time. Reject timestamps outside your accepted skew. No bearer token is sent.
        schema:
          type: string
        example: t=1784297100,v1=5e8f...a3c1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - event
              - version
              - occurred_at
              - data
              properties:
                id:
                  type: string
                  description: Unique event id; deduplicate deliveries on it.
                  example: whdel_9f2c...
                event:
                  type: string
                  description: Event type.
                  enum:
                  - artifact.failed
                version:
                  type: string
                  description: Envelope version.
                  example: '1'
                occurred_at:
                  type: string
                  format: date-time
                  description: When the event occurred.
                data:
                  type: object
                  properties:
                    session_id:
                      type: string
                      description: The meeting session this event belongs to.
                      example: mtgsess_9b2f...
                    artifact_id:
                      type: string
                      description: Id of the failed artifact.
                      example: mtgart_4e7c...
                    type:
                      type: string
                      enum:
                      - summary
                      - action_items
                      - decisions
                      - topics
                      - open_questions
                      - custom
                      description: Type of the failed artifact.
                  description: Failed artifact reference and reason.
                  additionalProperties: false
                  required:
                  - session_id
                  - artifact_id
                  - type
              additionalProperties: false
            example:
              id: whdel_9f2c...
              event: artifact.failed
              version: '1'
              occurred_at: '2026-06-16T09:06:00Z'
              data:
                session_id: mtgsess_9b2f...
                artifact_id: mtgart_4e7c...
                type: summary
      responses:
        '200':
          description: Return any 2xx status promptly to acknowledge the delivery; non-2xx responses and timeouts are retried.
      operationId: MeetingArtifactFailedWebhook
      security: []
  recordingAvailable:
    post:
      summary: recording.available
      description: 'Sent when a recording is ready to download. The payload carries only `recording_types`, never URLs; fetch short-lived download URLs from `GET /meeting_sessions/{id}/recordings`. Deliveries are best effort and not guaranteed: up to 5 attempts with backoff that starts around 60 seconds and roughly doubles per retry, and a 10-second delivery timeout, so respond with a 2xx promptly. Retries can produce duplicates; deduplicate on envelope `id`.'
      tags:
      - Meeting Session Webhooks
      parameters:
      - name: X-Meeting-Bot-Signature
        in: header
        required: true
        description: Signature header `t=<unix-seconds>,v1=<hex>`. Compute HMAC-SHA256 with the webhook secret over the timestamp ASCII bytes, a literal `.` byte, and the exact raw request-body bytes; hex-encode and compare `v1` in constant time. Reject timestamps outside your accepted skew. No bearer token is sent.
        schema:
          type: string
        example: t=1784297100,v1=5e8f...a3c1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - event
              - version
              - occurred_at
              - data
              properties:
                id:
                  type: string
                  description: Unique event id; deduplicate deliveries on it.
                  example: whdel_9f2c...
                event:
                  type: string
                  description: Event type.
                  enum:
                  - recording.available
                version:
                  type: string
                  description: Envelope version.
                  example: '1'
                occurred_at:
                  type: string
                  format: date-time
                  description: When the event occurred.
                data:
                  type: object
                  properties:
                    session_id:
                      type: string
                      description: The meeting session this event belongs to.
                      example: mtgsess_9b2f...
                    recording_types:
                      type: array
                      items:
                        type: string
                      description: Available recording types.
                      example:
                      - video_mixed
                  description: Available recording types.
                  additionalProperties: false
                  required:
                  - session_id
                  - recording_types
              additionalProperties: false
            example:
              id: whdel_9f2c...
              event: recording.available
              version: '1'
              occurred_at: '2026-06-16T09:05:20Z'
              data:
                session_id: mtgsess_9b2f...
                recording_types:
                - video_mixed
      responses:
        '200':
          description: Return any 2xx status promptly to acknowledge the delivery; non-2xx responses and timeouts are retried.
      operationId: MeetingRecordingAvailableWebhook
      security: []
  sessionStatusChanged:
    post:
      summary: session.status_changed
      description: 'Sent when the session moves to a new lifecycle status. Deliveries are best effort and not guaranteed: up to 5 attempts with backoff that starts around 60 seconds and roughly doubles per retry, and a 10-second delivery timeout, so respond with a 2xx promptly. Retries can produce duplicates; deduplicate on envelope `id`.'
      tags:
      - Meeting Session Webhooks
      parameters:
      - name: X-Meeting-Bot-Signature
        in: header
        required: true
        description: Signature header `t=<unix-seconds>,v1=<hex>`. Compute HMAC-SHA256 with the webhook secret over the timestamp ASCII bytes, a literal `.` byte, and the exact raw request-body bytes; hex-encode and compare `v1` in constant time. Reject timestamps outside your accepted skew. No bearer token is sent.
        schema:
          type: string
        example: t=1784297100,v1=5e8f...a3c1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - event
              - version
              - occurred_at
              - data
              properties:
                id:
                  type: string
                  description: Unique event id; deduplicate deliveries on it.
                  example: whdel_9f2c...
                event:
                  type: string
                  description: Event type.
                  enum:
                  - session.status_changed
                version:
                  type: string
                  description: Envelope version.
                  example: '1'
                occurred_at:
                  type: string
                  format: date-time
                  description: When the event occurred.
                data:
                  type: object
                  properties:
                    session_id:
                      type: string
                      description: The meeting session this event belongs to.
                      example: mtgsess_9b2f...
                    status:
                      type: string
                      description: The new session status.
                    status_detail:
                      type:
                      - string
                      - 'null'
                      description: Additional detail about the status (for example `timeout_exceeded_everyone_left` or `cancelled`), or null.
                    recording:
                      type: boolean
                      description: Whether the session is recording at this lifecycle edge.
                  description: Status transition details.
                  additionalProperties: false
                  required:
                  - session_id
                  - status
                  - status_detail
                  - recording
              additionalProperties: false
            example:
              id: whdel_9f2c...
              event: session.status_changed
              version: '1'
              occurred_at: '2026-06-16T09:00:05Z'
              data:
                session_id: mtgsess_9b2f...
                status: active
                status_detail: null
                recording: true
      responses:
        '200':
          description: Return any 2xx status promptly to acknowledge the delivery; non-2xx responses and timeouts are retried.
      operationId: MeetingSessionStatusChangedWebhook
      security: []
  transcriptCompleted:
    post:
      summary: transcript.completed
      description: 'Sent when the meeting transcript is finalized and ready to read. Individual `transcript.segment` messages are never delivered over webhooks; read segments via the transcript endpoint or the WebSocket stream. Deliveries are best effort and not guaranteed: up to 5 attempts with backoff that starts around 60 seconds and roughly doubles per retry, and a 10-second delivery timeout, so respond with a 2xx promptly. Retries can produce duplicates; deduplicate on envelope `id`.'
      tags:
      - Meeting Session Webhooks
      parameters:
      - name: X-Meeting-Bot-Signature
        in: header
        required: true
        description: Signature header `t=<unix-seconds>,v1=<hex>`. Compute HMAC-SHA256 with the webhook secret over the timestamp ASCII bytes, a literal `.` byte, and the exact raw request-body bytes; hex-encode and compare `v1` in constant time. Reject timestamps outside your accepted skew. No bearer token is sent.
        schema:
          type: string
        example: t=1784297100,v1=5e8f...a3c1
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - id
              - event
              - version
              - occurred_at
              - data
              properties:
                id:
                  type: string
                  description: Unique event id; deduplicate deliveries on it.
                  example: whdel_9f2c...
                event:
                  type: string
                  description: Event type.
                  enum:
                  - transcript.completed
                version:
                  type: string
                  description: Envelope version.
                  example: '1'
                occurred_at:
                  type: string
                  format: date-time
                  description: When the event occurred.
                data:
                  type: object
                  properties:
                    session_id:
                      type: string
                      description: The meeting session this event belongs to.
                      example: mtgsess_9b2f...
                    segment_count:
                      type: integer
                      description: Number of transcript segments observed during finalization.
                    last_seq:
                      type:
                      - integer
                      - 'null'
                      description: Last transcript segment sequence number, or null for an empty transcript.
                    ended_at:
                      type:
                      - string
                      - 'null'
                      format: date-time
                      description: Session end time, or null when unavailable.
                  description: Finalized transcript details.
                  additionalProperties: false
                  required:
                  - session_id
                  - segment_count
                  - last_seq
                  - ended_at
              additionalProperties: false
            example:
              id: whdel_9f2c...
              event: transcript.completed
              version: '1'
              occurred_at: '2026-06-16T09:05:00Z'
              data:
                session_id: mtgsess_9b2f...
                segment_count: 87
                last_seq: 943
                ended_at: '2026-06-16T09:04:41Z'
      responses:
        '200':
          description: Return any 2xx status promptly to acknowledge the delivery; non-2xx responses and timeouts are retried.
      operationId: MeetingTranscriptCompletedWebhook
      security: []
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'Telnyx API key supplied as `Authorization: Bearer <token>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.'
    Payment:
      type: apiKey
      in: header
      name: Authorization
      description: 'Machine Payment Protocol credential used on paid retries, sent as `Authorization: Payment ...`. Obtained by paying a challenge returned in the `WWW-Authenticate` header of a 402 response. This is not a Telnyx API key; initial challenge requests use standard bearer authentication instead.'
    agent-memory_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
    bearerAuth:
      type: http
      scheme: bearer
    branded-calling_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    collections_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Collections and results are automatically scoped to the authenticated user's organization.
    number-reputation_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    oauthClientAuth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          tokenUrl: https://api.telnyx.com/v2/oauth/token
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
    outbound-voice-profiles_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    pronunciation-dicts_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
    rcs-registration_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
    stored-payment-transactions_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    transcriptions-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Results are automatically scoped to the authenticated user's organization.
    web-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
x-service-info:
  categories:
  - communication
  - developer-tools
  docs:
    apiReference: https://developers.telnyx.com
    homepage: https://telnyx.com
    llms: https://telnyx.com/llms.txt