Telnyx Outbound Voice Profiles API
Outbound voice profiles operations
Outbound voice profiles operations
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/telnyx-outbound-voice-profiles-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.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 Outbound Voice Profiles 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: Outbound voice profiles operations
name: Outbound Voice Profiles
paths:
/outbound_voice_profiles:
get:
description: Get all outbound voice profiles belonging to the user that match the given filters.
operationId: ListOutboundVoiceProfiles
parameters:
- $ref: '#/components/parameters/outbound-voice-profiles_PageConsolidated'
- $ref: '#/components/parameters/outbound-voice-profiles_FilterConsolidated'
- $ref: '#/components/parameters/SortOutboundVoiceProfile'
responses:
'200':
$ref: '#/components/responses/ListOutboundVoiceProfilesResponse'
'401':
description: Unauthorized
'422':
description: Bad request
summary: Get all outbound voice profiles
tags:
- Outbound Voice Profiles
x-endpoint-cost: medium
x-group-parameters: 'true'
x-latency-category: responsive
post:
description: Create an outbound voice profile.
operationId: CreateVoiceProfile
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateOutboundVoiceProfileRequest'
description: Parameters that can be defined when creating an outbound voice profile
required: true
responses:
'200':
$ref: '#/components/responses/OutboundVoiceProfileResponse'
'401':
description: Unauthorized
'404':
description: Resource not found
'422':
description: Bad request
summary: Create an outbound voice profile
tags:
- Outbound Voice Profiles
x-latency-category: responsive
/outbound_voice_profiles/{id}:
delete:
description: Deletes an existing outbound voice profile.
operationId: DeleteOutboundVoiceProfile
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
$ref: '#/components/responses/OutboundVoiceProfileResponse'
'401':
description: Unauthorized
'404':
description: Resource not found
'422':
description: Bad request
summary: Delete an outbound voice profile
tags:
- Outbound Voice Profiles
x-latency-category: responsive
get:
description: Retrieves the details of an existing outbound voice profile.
operationId: GetOutboundVoiceProfile
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
$ref: '#/components/responses/OutboundVoiceProfileResponse'
'401':
description: Unauthorized
'404':
description: Resource not found
'422':
description: Bad request
summary: Retrieve an outbound voice profile
tags:
- Outbound Voice Profiles
x-latency-category: responsive
patch:
description: Updates an existing outbound voice profile.
operationId: UpdateOutboundVoiceProfile
parameters:
- $ref: '#/components/parameters/id'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateOutboundVoiceProfileRequest'
description: Parameters that can be updated on an outbound voice profile
required: true
responses:
'200':
$ref: '#/components/responses/OutboundVoiceProfileResponse'
'401':
description: Unauthorized
'404':
description: Resource not found
'422':
description: Bad request
summary: Updates an existing outbound voice profile.
tags:
- Outbound Voice Profiles
x-latency-category: responsive
components:
schemas:
UsagePaymentMethod:
default: rate-deck
description: Setting for how costs for outbound profile are calculated.
enum:
- rate-deck
example: rate-deck
type: string
CreateOutboundVoiceProfileRequest:
example:
billing_group_id: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
calling_window:
calls_per_cld: 5
end_time: 20:00:00.00Z
start_time: 08:00:00.00Z
concurrent_call_limit: 10
daily_spend_limit: '100.00'
daily_spend_limit_enabled: true
enabled: true
max_destination_rate: 10
name: office
service_plan: global
tags:
- office-profile
traffic_type: conversational
usage_payment_method: rate-deck
whitelisted_destinations:
- US
- BR
- AU
properties:
billing_group_id:
default: null
description: The ID of the billing group associated with the outbound proflile. Defaults to null (for no group assigned).
example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
format: uuid
type:
- string
- 'null'
call_recording:
$ref: '#/components/schemas/OutboundCallRecording'
calling_window:
description: (BETA) Specifies the time window and call limits for calls made using this outbound voice profile. Note that all times are UTC in 24-hour clock time.
example:
calls_per_cld: 5
end_time: 20:00:00.00Z
start_time: 08:00:00.00Z
properties:
calls_per_cld:
description: (BETA) The maximum number of calls that can be initiated to a single called party (CLD) within the calling window. A null value means no limit.
example: 5
minimum: 0
type: integer
end_time:
description: (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no longer allowed to start.
example: 20:00:00.00Z
format: time
type: string
start_time:
description: (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are allowed to start.
example: 08:00:00.00Z
format: time
type: string
type: object
concurrent_call_limit:
description: Must be no more than your global concurrent call limit. Null means no limit.
example: 10
type:
- integer
- 'null'
daily_spend_limit:
description: The maximum amount of usage charges, in USD, you want Telnyx to allow on this outbound voice profile in a day before disallowing new calls.
example: '100.00'
type: string
daily_spend_limit_enabled:
default: false
description: Specifies whether to enforce the daily_spend_limit on this outbound voice profile.
example: true
type: boolean
enabled:
default: true
description: Specifies whether the outbound voice profile can be used. Disabled profiles will result in outbound calls being blocked for the associated Connections.
example: true
type: boolean
max_destination_rate:
description: Maximum rate (price per minute) for a Destination to be allowed when making outbound calls.
type: number
name:
description: A user-supplied name to help with organization.
example: office
minLength: 3
type: string
service_plan:
$ref: '#/components/schemas/ServicePlan'
tags:
example:
- office-profile
items:
type: string
type: array
traffic_type:
$ref: '#/components/schemas/TrafficType'
usage_payment_method:
$ref: '#/components/schemas/UsagePaymentMethod'
whitelisted_destinations:
default:
- US
- CA
description: The list of destinations you want to be able to call using this outbound voice profile formatted in alpha2.
example:
- US
- BR
- AU
items:
type: string
type: array
required:
- name
title: Outbound Voice Profile
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
UpdateOutboundVoiceProfileRequest:
example:
billing_group_id: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
calling_window:
calls_per_cld: 5
end_time: 20:00:00.00Z
start_time: 08:00:00.00Z
concurrent_call_limit: 10
daily_spend_limit: '100.00'
daily_spend_limit_enabled: true
enabled: true
max_destination_rate: 10
name: office
service_plan: global
tags:
- office-profile
traffic_type: conversational
usage_payment_method: rate-deck
whitelisted_destinations:
- US
- BR
- AU
properties:
billing_group_id:
default: null
description: The ID of the billing group associated with the outbound proflile. Defaults to null (for no group assigned).
example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
format: uuid
type:
- string
- 'null'
call_recording:
$ref: '#/components/schemas/OutboundCallRecording'
calling_window:
description: (BETA) Specifies the time window and call limits for calls made using this outbound voice profile.
example:
calls_per_cld: 5
end_time: 20:00:00.00Z
start_time: 08:00:00.00Z
properties:
calls_per_cld:
description: (BETA) The maximum number of calls that can be initiated to a single called party (CLD) within the calling window. A null value means no limit.
example: 5
minimum: 0
type: integer
end_time:
description: (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no longer allowed to start.
example: 20:00:00.00Z
format: time
type: string
start_time:
description: (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are allowed to start.
example: 08:00:00.00Z
format: time
type: string
type: object
concurrent_call_limit:
description: Must be no more than your global concurrent call limit. Null means no limit.
example: 10
type:
- integer
- 'null'
daily_spend_limit:
description: The maximum amount of usage charges, in USD, you want Telnyx to allow on this outbound voice profile in a day before disallowing new calls.
example: '100.00'
type: string
daily_spend_limit_enabled:
default: false
description: Specifies whether to enforce the daily_spend_limit on this outbound voice profile.
example: true
type: boolean
enabled:
default: true
description: Specifies whether the outbound voice profile can be used. Disabled profiles will result in outbound calls being blocked for the associated Connections.
example: true
type: boolean
max_destination_rate:
description: Maximum rate (price per minute) for a Destination to be allowed when making outbound calls.
type: number
name:
description: A user-supplied name to help with organization.
example: office
minLength: 3
type: string
service_plan:
$ref: '#/components/schemas/ServicePlan'
tags:
example:
- office-profile
items:
type: string
type: array
traffic_type:
$ref: '#/components/schemas/TrafficType'
usage_payment_method:
$ref: '#/components/schemas/UsagePaymentMethod'
whitelisted_destinations:
default:
- US
- CA
description: The list of destinations you want to be able to call using this outbound voice profile formatted in alpha2.
example:
- US
- BR
- AU
items:
type: string
type: array
required:
- name
title: Outbound Voice Profile
type: object
OutboundVoiceProfile:
example:
billing_group_id: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
call_recording:
call_recording_caller_phone_numbers:
- '+19705555098'
call_recording_channels: dual
call_recording_format: mp3
call_recording_type: by_caller_phone_number
calling_window:
calls_per_cld: 5
end_time: 20:00:00.00Z
start_time: 08:00:00.00Z
concurrent_call_limit: 10
connections_count: 12
created_at: '2018-02-02T22:25:27.521Z'
daily_spend_limit: '100.00'
daily_spend_limit_enabled: true
enabled: true
id: '1293384261075731499'
max_destination_rate: 10
name: office
record_type: outbound_voice_profile
service_plan: global
tags:
- office-profile
traffic_type: conversational
updated_at: '2018-02-02T22:25:27.521Z'
usage_payment_method: rate-deck
whitelisted_destinations:
- US
- BR
- AU
properties:
billing_group_id:
default: null
description: The ID of the billing group associated with the outbound proflile. Defaults to null (for no group assigned).
example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58
format: uuid
type:
- string
- 'null'
call_recording:
$ref: '#/components/schemas/OutboundCallRecording'
calling_window:
description: (BETA) Specifies the time window and call limits for calls made using this outbound voice profile. Note that all times are UTC in 24-hour clock time.
example:
calls_per_cld: 5
end_time: 20:00:00.00Z
start_time: 08:00:00.00Z
properties:
calls_per_cld:
description: (BETA) The maximum number of calls that can be initiated to a single called party (CLD) within the calling window. A null value means no limit.
example: 5
type: integer
end_time:
description: (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are no longer allowed to start.
example: 20:00:00.00Z
type: string
start_time:
description: (BETA) The UTC time of day (in HH:MM format, 24-hour clock) when calls are allowed to start.
example: 08:00:00.00Z
type: string
type: object
concurrent_call_limit:
description: Must be no more than your global concurrent call limit. Null means no limit.
example: 10
type:
- integer
- 'null'
connections_count:
description: Amount of connections associated with this outbound voice profile.
example: 12
type: integer
created_at:
description: ISO 8601 formatted date-time indicating when the resource was created.
example: '2018-02-02T22:25:27.521Z'
type: string
daily_spend_limit:
description: The maximum amount of usage charges, in USD, you want Telnyx to allow on this outbound voice profile in a day before disallowing new calls.
example: '100.00'
type: string
daily_spend_limit_enabled:
default: false
description: Specifies whether to enforce the daily_spend_limit on this outbound voice profile.
example: true
type: boolean
enabled:
default: true
description: Specifies whether the outbound voice profile can be used. Disabled profiles will result in outbound calls being blocked for the associated Connections.
example: true
type: boolean
id:
description: Identifies the resource.
example: '1293384261075731499'
type: string
max_destination_rate:
description: Maximum rate (price per minute) for a Destination to be allowed when making outbound calls.
type: number
name:
description: A user-supplied name to help with organization.
example: office
minLength: 3
type: string
record_type:
description: Identifies the type of the resource.
example: outbound_voice_profile
type: string
service_plan:
$ref: '#/components/schemas/ServicePlan'
tags:
example:
- office-profile
items:
type: string
type: array
traffic_type:
$ref: '#/components/schemas/TrafficType'
updated_at:
description: ISO 8601 formatted date-time indicating when the resource was updated.
example: '2018-02-02T22:25:27.521Z'
type: string
usage_payment_method:
$ref: '#/components/schemas/UsagePaymentMethod'
whitelisted_destinations:
default:
- US
- CA
description: The list of destinations you want to be able to call using this outbound voice profile formatted in alpha2.
example:
- US
- BR
- AU
items:
type: string
type: array
required:
- name
title: Outbound Voice Profile
type: object
OutboundCallRecording:
example:
call_recording_caller_phone_numbers:
- '+19705555098'
call_recording_channels: dual
call_recording_format: mp3
call_recording_type: by_caller_phone_number
properties:
call_recording_caller_phone_numbers:
description: When call_recording_type is 'by_caller_phone_number', only outbound calls using one of these numbers will be recorded. Numbers must be specified in E164 format.
example:
- '+19705555098'
items:
type: string
type: array
call_recording_channels:
default: single
description: When using 'dual' channels, the final audio file will be a stereo recording with the first leg on channel A, and the rest on channel B.
enum:
- single
- dual
example: dual
type: string
call_recording_format:
default: wav
description: The audio file format for calls being recorded.
enum:
- wav
- mp3
example: mp3
type: string
call_recording_type:
description: Specifies which calls are recorded.
enum:
- all
- none
- by_caller_phone_number
type: string
type: object
ServicePlan:
default: global
description: Indicates the coverage of the termination regions.
enum:
- global
example: global
type: string
TrafficType:
default: conversational
description: Specifies the type of traffic allowed in this profile.
enum:
- conversational
example: conversational
type: string
responses:
OutboundVoiceProfileResponse:
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/OutboundVoiceProfile'
title: Outbound Voice Profile Response
type: object
description: Successful response
ListOutboundVoiceProfilesResponse:
content:
application/json:
schema:
properties:
data:
items:
$ref: '#/components/schemas/OutboundVoiceProfile'
type: array
meta:
$ref: '#/components/schemas/PaginationMeta'
title: List Outbound Voice Profiles Response
type: object
description: Successful response
parameters:
id:
description: Identifies the resource.
in: path
name: id
required: true
schema:
example: '1293384261075731499'
type: string
outbound-voice-profiles_PageConsolidated:
description: 'Consolidated page parameter (deepObject style). Originally: page[size], page[number]'
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
SortOutboundVoiceProfile:
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>name</code>: sorts the result by the\n <code>name</code> field in ascending order.\n </li>\n\n <li>\n <code>-name</code>: sorts the result by the\n <code>name</code> field in descending order.\n </li>\n</ul> <br/>"
in: query
name: sort
schema:
default: -created_at
enum:
- enabled
- -enabled
- created_at
- -created_at
- name
- -name
- service_plan
- -service_plan
- traffic_type
- -traffic_type
- usage_payment_method
- -usage_payment_method
example: name
type: string
outbound-voice-profiles_FilterConsolidated:
description: 'Consolidated filter parameter (deepObject style). Originally: filter[name][contains]'
explode: true
in: query
name: filter
schema:
properties:
name:
description: Name filtering operations
properties:
contains:
description: Optional filter on outbound voice profile name.
example: office-profile
type: string
type: object
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