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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/telnyx:telnyx-debugging-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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
openapi: 3.2.0
info:
title: Telnyx Debugging API
version: 2.0.0
contact:
email: support@telnyx.com
x-endpoint-cost: light
x-refined-note:
- x-latency-category differs across the merged source definitions and was not carried
description: 'Operations tagged Debugging across 3 of this provider''s published API definitions: telnyx-openapi.json, telnyx-openapi.yml, telnyx-openapi_2.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
security:
- bearerAuth: []
tags:
- name: Debugging
description: Call Control debugging
paths:
/call_events:
get:
summary: List call events
description: 'Filters call events by given filter parameters. Events are ordered by `occurred_at`. If filter for `leg_id` or `application_session_id` is not present, it only filters events from the last 24 hours.
**Note**: Only one `filter[occurred_at]` can be passed.'
x-latency-category: responsive
x-group-parameters: 'true'
operationId: ListCallEvents
tags:
- Debugging
parameters:
- $ref: '#/components/parameters/call-control_FilterConsolidated'
- $ref: '#/components/parameters/call-control_PageConsolidated'
responses:
'200':
description: Successful response with a list of call events.
content:
application/json:
schema:
type: object
title: List Call Events Response
properties:
data:
type: array
items:
$ref: '#/components/schemas/CallEvent'
meta:
$ref: '#/components/schemas/PaginationMeta'
'422':
$ref: '#/components/responses/UnprocessableEntityResponse'
default:
$ref: '#/components/responses/call-control_GenericErrorResponse'
servers:
- url: https://api.telnyx.com/v2
description: Version 2.0.0 of the Telnyx API
components:
responses:
call-control_GenericErrorResponse:
description: Unexpected error
content:
application/json:
schema:
$ref: '#/components/schemas/call-control_Errors'
example:
errors:
- code: '10007'
title: Unexpected error
detail: An unexpected error occured.
UnprocessableEntityResponse:
description: Unprocessable entity. The request was well-formed but could not be processed due to semantic errors. This includes validation errors, invalid parameter values, call state errors, conference errors, queue errors, recording/transcription errors, and business logic violations.
content:
application/json:
schema:
$ref: '#/components/schemas/call-control_Errors'
examples:
missing_required_parameter:
summary: Missing required parameter
value:
errors:
- code: '10004'
title: Missing required parameter
detail: The 'to' parameter is required and cannot be blank.
source:
pointer: /to
invalid_call_control_id:
summary: Invalid call control ID
value:
errors:
- code: '90015'
title: Invalid Call Control ID
detail: The call_control_id provided was not valid.
source:
pointer: /call_control_id
call_already_ended:
summary: Call has already ended
value:
errors:
- code: '90018'
title: Call has already ended
detail: This call is no longer active and can't receive commands.
call_not_answered:
summary: Call not answered yet
value:
errors:
- code: '90034'
title: Call not answered yet
detail: This call can't receive this command because it has not been answered yet.
cannot_record_before_audio_started:
summary: Cannot record before audio started
value:
errors:
- code: '90020'
title: Call recording triggered before audio started
detail: Call recording cannot be started until audio has commenced on the call.
transcription_already_active:
summary: Transcription already active
value:
errors:
- code: '90054'
title: Call transcription is already in progress
detail: Call transcription can not be started more than once.
ai_assistant_already_active:
summary: AI Assistant already active
value:
errors:
- code: '90061'
title: AI Assistant is already in progress
detail: AI Assistant cannot be started more than once.
conference_already_ended:
summary: Conference has already ended
value:
errors:
- code: '90019'
title: Conference has already ended
detail: This conference is no longer active and can't receive commands.
conference_name_conflict:
summary: Conference name conflict
value:
errors:
- code: '90033'
title: Unable to execute command
detail: Conference with given name already exists and it's active.
max_participants_reached:
summary: Maximum participants reached
value:
errors:
- code: '90032'
title: Maximum number of participants reached
detail: The maximum allowed value of `max_participants` has been reached at 100.
queue_full:
summary: Queue is full
value:
errors:
- code: '90036'
title: Queue full
detail: The 'support' queue is full and can't accept more calls.
call_already_in_queue:
summary: Call already in queue
value:
errors:
- code: '90038'
title: Call already in queue
detail: Call can't be added to a queue it's already in.
invalid_connection_id:
summary: Invalid connection ID
value:
errors:
- code: '10015'
title: Invalid value for connection_id (Call Control App ID)
detail: The requested connection_id (Call Control App ID) is either invalid or does not exist. Only Call Control Apps with valid webhook URL are accepted.
source:
pointer: /connection_id
invalid_phone_number_format:
summary: Invalid phone number format
value:
errors:
- code: '10016'
title: Phone number must be in +E164 format
detail: The 'to' parameter must be in E164 format.
source:
pointer: /to
srtp_not_supported_for_pstn:
summary: SRTP not supported for PSTN calls
value:
errors:
- source:
pointer: /media_encryption
title: Media encryption not supported for PSTN calls
detail: SRTP media encryption is not supported for PSTN calls.
code: '10011'
fork_not_found:
summary: Call is not forked
value:
errors:
- code: '90031'
title: Call is not currently forked
detail: Can't stop forking, because the call isn't currently forked.
media_streaming_used:
summary: Media streaming in use
value:
errors:
- code: '90045'
title: Media Streaming is used
detail: This command can't be issued when media streaming is used.
invalid_enumerated_value:
summary: Invalid enumerated value
value:
errors:
- code: '10032'
title: Invalid enumerated value
detail: 'The value must be one of: dual, single.'
source:
pointer: /record_channels
value_outside_range:
summary: Value outside of range
value:
errors:
- code: '10033'
title: Value outside of range
detail: The value is outside of allowed range 1 to 5000
source:
pointer: /max_participants
call-control_GenericErrorResponse_2:
content:
application/json:
schema:
$ref: '#/components/schemas/call-control_Errors'
description: Unexpected error
ListCallEventsResponse:
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/CallEvent'
type: array
meta:
$ref: '#/components/schemas/PaginationMeta'
title: List Call Events Response
type: object
description: Successful response with a list of call events.
schemas:
CallEvent:
type: object
title: Call Event
required:
- record_type
- call_leg_id
- call_session_id
- event_timestamp
- name
- type
- metadata
properties:
record_type:
type: string
enum:
- call_event
example: call_event
call_leg_id:
type: string
description: Uniquely identifies an individual call leg.
example: 308fe500-5213-11e9-ace7-02420a0f0668
call_session_id:
type: string
description: Uniquely identifies the call control session. A session may include multiple call leg events.
example: 308fec30-5213-11e9-9d3f-02420a0f0668
event_timestamp:
type: string
description: Event timestamp
example: '2019-03-29T11:10:19.127783Z'
name:
type: string
description: Event name
example: call.hangup
type:
type: string
description: Event type
enum:
- command
- webhook
example: webhook
metadata:
type: object
description: Event metadata, which includes raw event, and extra information based on event type
example:
record_type: call_event
call_leg_id: 308fe500-5213-11e9-ace7-02420a0f0668
call_session_id: 308fec30-5213-11e9-9d3f-02420a0f0668
event_timestamp: '2019-03-29T11:10:19.127783Z'
name: call.hangup
type: webhook
metadata: {}
PaginationMeta:
type: object
properties:
total_pages:
type: integer
example: 3
total_results:
type: integer
example: 55
page_number:
type: integer
example: 2
page_size:
type: integer
example: 25
call-control_Error:
required:
- code
- title
properties:
code:
type: string
format: integer
title:
type: string
detail:
type: string
source:
type: object
properties:
pointer:
description: JSON pointer (RFC6901) to the offending entity.
type: string
format: json-pointer
parameter:
description: Indicates which query parameter caused the error.
type: string
meta:
type: object
call-control_Errors:
properties:
errors:
type: array
items:
$ref: '#/components/schemas/call-control_Error'
parameters:
call-control_FilterConsolidated:
name: filter
in: query
style: deepObject
explode: true
description: 'Consolidated filter parameter (deepObject style). Originally: filter[application_name][contains], filter[outbound.outbound_voice_profile_id], filter[leg_id], filter[application_session_id], filter[connection_id], filter[product], filter[failed], filter[from], filter[to], filter[name], filter[type], filter[occurred_at][eq/gt/gte/lt/lte], filter[status]'
schema:
type: object
properties:
application_name:
type: object
description: Application name filters
properties:
contains:
type: string
default: 'null'
description: If present, applications with <code>application_name</code> containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters.
additionalProperties: false
outbound.outbound_voice_profile_id:
type: string
example: '1293384261075731499'
description: Identifies the associated outbound voice profile.
x-format: int64
leg_id:
type: string
format: uuid
description: The unique identifier of an individual call leg.
application_session_id:
type: string
format: uuid
description: The unique identifier of the call session. A session may include multiple call leg events.
connection_id:
type: string
description: The unique identifier of the conection.
product:
type: string
enum:
- call_control
- fax
- texml
example: texml
description: Filter by product.
failed:
type: boolean
example: false
description: Delivery failed or not.
from:
type: string
example: '+12025550142'
description: Filter by From number.
to:
type: string
example: '+12025550142'
description: Filter by To number.
name:
type: string
description: If present, conferences will be filtered to those with a matching `name` attribute. Matching is case-sensitive
type:
type: string
enum:
- command
- webhook
example: webhook
description: Event type
occurred_at:
type: object
description: Event occurred_at filters
properties:
eq:
type: string
example: '2019-03-29T11:10:00Z'
description: 'Event occurred_at: equal'
gt:
type: string
example: '2019-03-29T11:10:00Z'
description: 'Event occurred_at: greater than'
gte:
type: string
example: '2019-03-29T11:10:00Z'
description: 'Event occurred_at: greater than or equal'
lt:
type: string
example: '2019-03-29T11:10:00Z'
description: 'Event occurred_at: lower than'
lte:
type: string
example: '2019-03-29T11:10:00Z'
description: 'Event occurred_at: lower than or equal'
additionalProperties: false
status:
type: string
enum:
- init
- in_progress
- completed
description: If present, conferences will be filtered by status.
call-control_PageConsolidated:
name: page
in: query
style: deepObject
explode: true
description: 'Consolidated page parameter (deepObject style). Originally: page[after], page[before], page[limit], page[size], page[number]'
schema:
type: object
properties:
after:
type: string
default: 'null'
description: Opaque identifier of next page
before:
type: string
default: 'null'
description: Opaque identifier of previous page
limit:
type: integer
minimum: 1
maximum: 250
default: 20
description: Limit of records per single page
size:
type: integer
minimum: 1
maximum: 250
default: 20
description: The size of the page
number:
type: integer
minimum: 1
default: 1
description: The page number to load
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
pay-connectors_bearerAuth:
type: http
scheme: bearer
description: Telnyx API key, not the processor bearer token.
telnyxApiKey:
type: http
scheme: bearer
description: Management-only Telnyx account credential.
x-refined-from:
- telnyx-openapi.json
- telnyx-openapi.yml
- telnyx-openapi_2.json
x-service-info:
categories:
- communication
- developer-tools
docs:
apiReference: https://developers.telnyx.com
homepage: https://telnyx.com
llms: https://telnyx.com/llms.txt