Telnyx Call Control Applications API
Call Control applications operations
Call Control applications operations
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 Call Control Applications 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: Call Control applications operations
name: Call Control Applications
paths:
/call_control_applications:
get:
description: Return a list of call control applications.
operationId: ListCallControlApplications
parameters:
- $ref: '#/components/parameters/call-control_FilterConsolidated'
- $ref: '#/components/parameters/call-control_PageConsolidated'
- $ref: '#/components/parameters/SortConnection'
responses:
'200':
$ref: '#/components/responses/ListCallControlApplicationsResponse'
'400':
description: Bad request
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
description: Resource not found
summary: List call control applications
tags:
- Call Control Applications
x-endpoint-cost: medium
x-group-parameters: 'true'
x-latency-category: interactive
post:
description: Create a call control application.
operationId: CreateCallControlApplication
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCallControlApplicationRequest'
description: Create call control application request.
required: true
responses:
'201':
$ref: '#/components/responses/CallControlApplicationResponse'
'422':
description: Bad Request
summary: Create a call control application
tags:
- Call Control Applications
x-endpoint-cost: medium
x-latency-category: interactive
/call_control_applications/{id}:
delete:
description: Deletes a call control application.
operationId: DeleteCallControlApplication
parameters:
- description: Identifies the resource.
in: path
name: id
required: true
schema:
example: '1293384261075731499'
type: string
x-format: int64
responses:
'200':
$ref: '#/components/responses/CallControlApplicationResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
description: Resource not found
'422':
description: Bad request
summary: Delete a call control application
tags:
- Call Control Applications
x-latency-category: interactive
get:
description: Retrieves the details of an existing call control application.
operationId: RetrieveCallControlApplication
parameters:
- description: Identifies the resource.
in: path
name: id
required: true
schema:
example: '1293384261075731499'
type: string
x-format: int64
responses:
'200':
$ref: '#/components/responses/CallControlApplicationResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
description: Resource not found
'422':
description: Bad request
summary: Retrieve a call control application
tags:
- Call Control Applications
x-latency-category: interactive
patch:
description: Updates settings of an existing call control application.
operationId: UpdateCallControlApplication
parameters:
- description: Identifies the resource.
in: path
name: id
required: true
schema:
example: '1293384261075731499'
type: string
x-format: int64
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCallControlApplicationRequest'
description: Update call control application request.
required: true
responses:
'200':
$ref: '#/components/responses/CallControlApplicationResponse'
'401':
$ref: '#/components/responses/UnauthorizedResponse'
'404':
description: Resource not found
'422':
description: Bad request
summary: Update a call control application
tags:
- Call Control Applications
x-latency-category: interactive
components:
schemas:
UpdateCallControlApplicationRequest:
example:
active: false
anchorsite_override: Latency
application_name: call-router
call_cost_in_webhooks: true
dtmf_type: Inband
first_command_timeout: true
first_command_timeout_secs: 10
inbound:
channel_limit: 10
shaken_stir_enabled: true
sip_subdomain: example
sip_subdomain_receive_settings: only_my_connections
outbound:
channel_limit: 10
outbound_voice_profile_id: '1293384261075731499'
redact_dtmf_debug_logging: true
webhook_api_version: '1'
webhook_event_failover_url: https://failover.example.com
webhook_event_url: https://example.com
webhook_timeout_secs: 25
properties:
active:
default: true
description: Specifies whether the connection can be used.
type: boolean
anchorsite_override:
default: Latency
description: '<code>Latency</code> directs Telnyx to route media through the site with the lowest round-trip time to the user''s connection. Telnyx calculates this time using ICMP ping messages. This can be disabled by specifying a site to handle all media.
'
enum:
- Latency
- Chicago, IL
- Ashburn, VA
- San Jose, CA
- London, UK
- Chennai, IN
- Amsterdam, Netherlands
- Toronto, Canada
- Sydney, Australia
example: Amsterdam, Netherlands
type: string
application_name:
description: A user-assigned name to help manage the application.
example: call-router
type: string
call_cost_in_webhooks:
default: false
description: Specifies if call cost webhooks should be sent for this Call Control Application.
type: boolean
dtmf_type:
default: RFC 2833
description: Sets the type of DTMF digits sent from Telnyx to this Connection. Note that DTMF digits sent to Telnyx will be accepted in all formats.
enum:
- RFC 2833
- Inband
- SIP INFO
example: Inband
type: string
first_command_timeout:
default: false
description: Specifies whether calls to phone numbers associated with this connection should hangup after timing out.
example: true
type: boolean
first_command_timeout_secs:
default: 30
description: Specifies how many seconds to wait before timing out a dial command.
example: 10
type: integer
inbound:
$ref: '#/components/schemas/CallControlApplicationInbound'
outbound:
$ref: '#/components/schemas/CallControlApplicationOutbound'
redact_dtmf_debug_logging:
default: false
description: When enabled, DTMF digits entered by users will be redacted in debug logs to protect PII data entered through IVR interactions.
example: true
type: boolean
tags:
description: Tags assigned to the Call Control Application.
example:
- tag1
- tag2
items:
type: string
type: array
webhook_api_version:
default: '1'
description: Determines which webhook format will be used, Telnyx API v1 or v2.
enum:
- '1'
- '2'
example: '1'
type: string
webhook_event_failover_url:
default: ''
description: The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.
example: https://failover.example.com
format: url
type:
- string
- 'null'
webhook_event_url:
description: The URL where webhooks related to this connection will be sent. Must include a scheme, such as 'https'.
example: https://example.com
format: url
type: string
webhook_timeout_secs:
default: null
description: Specifies how many seconds to wait before timing out a webhook.
example: 25
maximum: 30
minimum: 0
type:
- integer
- 'null'
required:
- application_name
- webhook_event_url
title: Update Call Control Application Request
type: object
CallControlApplicationOutbound:
properties:
channel_limit:
default: null
description: When set, this will limit the total number of outbound calls to phone numbers associated with this connection.
example: 10
type: integer
outbound_voice_profile_id:
description: Identifies the associated outbound voice profile.
example: '1293384261075731499'
type: string
x-format: int64
title: Call Control Application Outbound
type: object
PaginationMeta:
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
CallControlApplicationInbound:
properties:
channel_limit:
default: null
description: When set, this will limit the total number of inbound calls to phone numbers associated with this connection.
example: 10
type: integer
shaken_stir_enabled:
default: false
description: When enabled Telnyx will include Shaken/Stir data in the Webhook for new inbound calls.
example: false
type: boolean
sip_subdomain:
default: null
description: 'Specifies a subdomain that can be used to receive Inbound calls to a Connection, in the same way a phone number is used, from a SIP endpoint. Example: the subdomain "example.sip.telnyx.com" can be called from any SIP endpoint by using the SIP URI "sip:@example.sip.telnyx.com" where the user part can be any alphanumeric value. Please note TLS encrypted calls are not allowed for subdomain calls.'
example: example
type: string
sip_subdomain_receive_settings:
default: from_anyone
description: 'This option can be enabled to receive calls from: "Anyone" (any SIP endpoint in the public Internet) or "Only my connections" (any connection assigned to the same Telnyx user).'
enum:
- only_my_connections
- from_anyone
example: only_my_connections
type: string
title: Call Control Application Inbound
type: object
CreateCallControlApplicationRequest:
example:
active: false
anchorsite_override: Latency
application_name: call-router
call_cost_in_webhooks: true
dtmf_type: Inband
first_command_timeout: true
first_command_timeout_secs: 10
inbound:
channel_limit: 10
shaken_stir_enabled: true
sip_subdomain: example
sip_subdomain_receive_settings: only_my_connections
outbound:
channel_limit: 10
outbound_voice_profile_id: '1293384261075731499'
redact_dtmf_debug_logging: true
webhook_api_version: '1'
webhook_event_failover_url: https://failover.example.com
webhook_event_url: https://example.com
webhook_timeout_secs: 25
properties:
active:
default: true
description: Specifies whether the connection can be used.
type: boolean
anchorsite_override:
default: Latency
description: '<code>Latency</code> directs Telnyx to route media through the site with the lowest round-trip time to the user''s connection. Telnyx calculates this time using ICMP ping messages. This can be disabled by specifying a site to handle all media.
'
enum:
- Latency
- Chicago, IL
- Ashburn, VA
- San Jose, CA
- London, UK
- Chennai, IN
- Amsterdam, Netherlands
- Toronto, Canada
- Sydney, Australia
example: Amsterdam, Netherlands
type: string
application_name:
description: A user-assigned name to help manage the application.
example: call-router
type: string
call_cost_in_webhooks:
default: false
description: Specifies if call cost webhooks should be sent for this Call Control Application.
type: boolean
dtmf_type:
default: RFC 2833
description: Sets the type of DTMF digits sent from Telnyx to this Connection. Note that DTMF digits sent to Telnyx will be accepted in all formats.
enum:
- RFC 2833
- Inband
- SIP INFO
example: Inband
type: string
first_command_timeout:
default: false
description: Specifies whether calls to phone numbers associated with this connection should hangup after timing out.
example: true
type: boolean
first_command_timeout_secs:
default: 30
description: Specifies how many seconds to wait before timing out a dial command.
example: 10
type: integer
inbound:
$ref: '#/components/schemas/CallControlApplicationInbound'
outbound:
$ref: '#/components/schemas/CallControlApplicationOutbound'
redact_dtmf_debug_logging:
default: false
description: When enabled, DTMF digits entered by users will be redacted in debug logs to protect PII data entered through IVR interactions.
example: true
type: boolean
webhook_api_version:
default: '1'
description: Determines which webhook format will be used, Telnyx API v1 or v2.
enum:
- '1'
- '2'
example: '1'
type: string
webhook_event_failover_url:
default: ''
description: The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as 'https'.
example: https://failover.example.com
format: url
type:
- string
- 'null'
webhook_event_url:
description: The URL where webhooks related to this connection will be sent. Must include a scheme, such as 'https'.
example: https://example.com
format: url
type: string
webhook_timeout_secs:
default: null
description: Specifies how many seconds to wait before timing out a webhook.
example: 25
maximum: 30
minimum: 0
type:
- integer
- 'null'
required:
- application_name
- webhook_event_url
title: Create Call Control Application Request
type: object
CallControlApplication:
example:
active: false
anchorsite_override: Latency
application_name: call-router
call_cost_in_webhooks: false
created_at: '2018-02-02T22:25:27.521Z'
dtmf_type: Inband
first_command_timeout: true
first_command_timeout_secs: 10
id: '1293384261075731499'
inbound:
channel_limit: 10
shaken_stir_enabled: true
sip_subdomain: example
sip_subdomain_receive_settings: only_my_connections
outbound:
channel_limit: 10
outbound_voice_profile_id: '1293384261075731499'
record_type: call_control_application
redact_dtmf_debug_logging: true
updated_at: '2018-02-02T22:25:27.521Z'
webhook_api_version: '1'
webhook_event_failover_url: https://failover.example.com
webhook_event_url: https://example.com
webhook_timeout_secs: 25
properties:
active:
default: true
description: Specifies whether the connection can be used.
type: boolean
anchorsite_override:
default: Latency
description: '<code>Latency</code> directs Telnyx to route media through the site with the lowest round-trip time to the user''s connection. Telnyx calculates this time using ICMP ping messages. This can be disabled by specifying a site to handle all media.
'
enum:
- Latency
- Chicago, IL
- Ashburn, VA
- San Jose, CA
- London, UK
- Chennai, IN
- Amsterdam, Netherlands
- Toronto, Canada
- Sydney, Australia
example: Amsterdam, Netherlands
type: string
application_name:
description: A user-assigned name to help manage the application.
example: call-router
type: string
call_cost_in_webhooks:
default: false
description: Specifies if call cost webhooks should be sent for this Call Control Application.
type: boolean
created_at:
description: ISO 8601 formatted date of when the resource was created
example: '2018-02-02T22:25:27.521Z'
type: string
dtmf_type:
default: RFC 2833
description: Sets the type of DTMF digits sent from Telnyx to this Connection. Note that DTMF digits sent to Telnyx will be accepted in all formats.
enum:
- RFC 2833
- Inband
- SIP INFO
example: Inband
type: string
first_command_timeout:
default: false
description: Specifies whether calls to phone numbers associated with this connection should hangup after timing out.
example: true
type: boolean
first_command_timeout_secs:
default: 30
description: Specifies how many seconds to wait before timing out a dial command.
example: 10
type: integer
id:
example: '1293384261075731499'
type: string
x-format: int64
inbound:
$ref: '#/components/schemas/CallControlApplicationInbound'
outbound:
$ref: '#/components/schemas/CallControlApplicationOutbound'
record_type:
default: call_control_application
enum:
- call_control_application
type: string
redact_dtmf_debug_logging:
default: false
description: When enabled, DTMF digits entered by users will be redacted in debug logs to protect PII data entered through IVR interactions.
example: true
type: boolean
tags:
description: Tags assigned to the Call Control Application.
items:
type: string
type: array
updated_at:
description: ISO 8601 formatted date of when the resource was last updated
example: '2018-02-02T22:25:27.521Z'
type: string
webhook_api_version:
default: '1'
description: Determines which webhook format will be used, Telnyx API v1 or v2.
enum:
- '1'
- '2'
example: '1'
type: string
webhook_event_failover_url:
default: ''
description: The failover URL where webhooks related to this connection will be sent if sending to the primary URL fails. Must include a scheme, such as `https`.
example: https://failover.example.com
format: url
type:
- string
- 'null'
webhook_event_url:
description: The URL where webhooks related to this connection will be sent. Must include a scheme, such as `https`.
example: https://example.com
format: url
type: string
webhook_timeout_secs:
default: null
example: 25
maximum: 30
minimum: 0
type:
- integer
- 'null'
title: Call Control Application
type: object
call-control_Error:
properties:
code:
format: integer
type: string
detail:
type: string
meta:
type: object
source:
properties:
parameter:
description: Indicates which query parameter caused the error.
type: string
pointer:
description: JSON pointer (RFC6901) to the offending entity.
format: json-pointer
type: string
type: object
title:
type: string
required:
- code
- title
call-control_Errors:
properties:
errors:
items:
$ref: '#/components/schemas/call-control_Error'
type: array
parameters:
SortConnection:
description: "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the <code> -</code> prefix.<br/><br/>\nThat is: <ul>\n <li>\n <code>connection_name</code>: sorts the result by the\n <code>connection_name</code> field in ascending order.\n </li>\n\n <li>\n <code>-connection_name</code>: sorts the result by the\n <code>connection_name</code> field in descending order.\n </li>\n</ul> <br/> If not given, results are sorted by <code>created_at</code> in descending order."
in: query
name: sort
required: false
schema:
default: created_at
enum:
- created_at
- connection_name
- active
example: connection_name
type: string
call-control_FilterConsolidated:
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]'
explode: true
in: query
name: filter
schema:
properties:
application_name:
additionalProperties: false
description: Application name filters
properties:
contains:
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.
type: string
type: object
application_session_id:
description: The unique identifier of the call session. A session may include multiple call leg events.
format: uuid
type: string
connection_id:
description: The unique identifier of the conection.
type: string
failed:
description: Delivery failed or not.
example: false
type: boolean
from:
description: Filter by From number.
example: '+12025550142'
type: string
leg_id:
description: The unique identifier of an individual call leg.
format: uuid
type: string
name:
description: If present, conferences will be filtered to those with a matching `name` attribute. Matching is case-sensitive
type: string
occurred_at:
additionalProperties: false
description: Event occurred_at filters
properties:
eq:
description: 'Event occurred_at: equal'
example: '2019-03-29T11:10:00Z'
type: string
gt:
description: 'Event occurred_at: greater than'
example: '2019-03-29T11:10:00Z'
type: string
gte:
description: 'Event occurred_at: greater than or equal'
example: '2019-03-29T11:10:00Z'
type: string
lt:
description: 'Event occurred_at: lower than'
example: '2019-03-29T11:10:00Z'
type: string
lte:
description: 'Event occurred_at: lower than or equal'
example: '2019-03-29T11:10:00Z'
type: string
type: object
outbound.outbound_voice_profile_id:
description: Identifies the associated outbound voice profile.
example: '1293384261075731499'
type: string
x-format: int64
product:
description: Filter by product.
enum:
- call_control
- fax
- texml
example: texml
type: string
status:
description: If present, conferences will be filtered by status.
enum:
- init
- in_progress
- completed
type: string
to:
description: Filter by To number.
example: '+12025550142'
type: string
type:
description: Event type
enum:
- command
- webhook
example: webhook
type: string
type: object
style: deepObject
call-control_PageConsolidated:
description: 'Consolidated page parameter (deepObject style). Originally: page[after], page[before], page[limit], page[size], page[number]'
explode: true
in: query
name: page
schema:
properties:
after:
default: 'null'
description: Opaque identifier of next page
type: string
before:
default: 'null'
description: Opaque identifier of previous page
type: string
limit:
default: 20
description: Limit of records per single page
maximum: 250
minimum: 1
type: integer
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
responses:
ListCallControlApplicationsResponse:
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/CallControlApplication'
type: array
meta:
$ref: '#/components/schemas/PaginationMeta'
title: List Call Control Applications Response
type: object
description: Successful response with a list of call control applications.
CallControlApplicationResponse:
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/CallControlApplication'
title: Call Control Application Response
type: object
description: Successful response with details about a call control application.
UnauthorizedResponse:
content:
application/json:
example:
errors:
- code: '10009'
detail: The required authentication headers were either invalid or not included in the request.
meta:
url: https://developers.telnyx.com/docs/overview/errors/10009
title: Authentication failed
schema:
$ref: '#/components/schemas/call-control_Errors'
description: Unauthorized. Authentication failed - the required authentication headers were either invalid or not included in the request.
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