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 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:
ServicePlan:
default: global
description: Indicates the coverage of the termination regions.
enum:
- global
example: global
type: string
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
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
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
UsagePaymentMethod:
default: rate-deck
description: Setting for how costs for outbound profile are calculated.
enum:
- rate-deck
example: rate-deck
type: string
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
TrafficType:
default: conversational
description: Specifies the type of traffic allowed in this profile.
enum:
- conversational
example: conversational
type: string
responses:
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
OutboundVoiceProfileResponse:
content:
application/json:
schema:
properties:
data:
$ref: '#/components/schemas/OutboundVoiceProfile'
title: Outbound Voice Profile 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
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
SortOutboundVoiceProfile:
description: "Specifies the sort order for results. By default sorting direction is ascending. To have the results sorted in descending order add the - prefix.
\nThat is:
name: sorts the result by the\n name field in ascending order.\n -name: sorts the result by the\n name field in descending order.\n