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 External Connections 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: External Connections operations name: External Connections paths: /external_connections: get: description: This endpoint returns a list of your External Connections inside the 'data' attribute of the response. External Connections are used by Telnyx customers to seamless configure SIP trunking integrations with Telnyx Partners, through External Voice Integrations in Mission Control Portal. operationId: ListExternalConnections parameters: - $ref: '#/components/parameters/FilterConnectionsConsolidated' - $ref: '#/components/parameters/external-voice-integrations_PageConsolidated' responses: '200': $ref: '#/components/responses/GetAllExternalConnectionResponse' '400': description: Bad request '401': description: Unauthorized '404': description: Resource not found summary: List all External Connections tags: - External Connections x-endpoint-cost: medium x-latency-category: responsive post: description: Creates a new External Connection based on the parameters sent in the request. The external_sip_connection and outbound voice profile id are required. Once created, you can assign phone numbers to your application using the `/phone_numbers` endpoint. operationId: CreateExternalConnection parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateExternalConnectionRequest' description: Parameters that can be set when creating a External Connection required: true responses: '201': $ref: '#/components/responses/ExternalConnectionResponse' '422': description: Bad request summary: Creates an External Connection tags: - External Connections x-endpoint-cost: medium x-latency-category: responsive /external_connections/log_messages: get: description: Retrieve a list of log messages for all external connections associated with your account. operationId: ListExternalConnectionLogMessages parameters: - $ref: '#/components/parameters/FilterLogMessagesConsolidated' - $ref: '#/components/parameters/external-voice-integrations_PageConsolidated' responses: '200': $ref: '#/components/responses/ListLogMessagesResponse' '401': description: Unauthorized '422': description: Bad request summary: List all log messages tags: - External Connections x-latency-category: responsive /external_connections/log_messages/{id}: delete: description: Dismiss a log message for an external connection associated with your account. operationId: DeleteExternalConnectionLogMessage parameters: - $ref: '#/components/parameters/external-voice-integrations_id' responses: '200': content: application/json: schema: properties: success: description: Describes wether or not the operation was successful type: boolean title: Dismiss request was successful type: object description: Successful response '401': description: Unauthorized '404': description: Resource not found summary: Dismiss a log message tags: - External Connections x-latency-category: responsive get: description: Retrieve a log message for an external connection associated with your account. operationId: GetExternalConnectionLogMessage parameters: - $ref: '#/components/parameters/external-voice-integrations_id' responses: '200': $ref: '#/components/responses/GetLogMessageResponse' '401': description: Unauthorized '404': description: Resource not found summary: Retrieve a log message tags: - External Connections x-latency-category: responsive /external_connections/{id}: delete: description: Permanently deletes an External Connection. Deletion may be prevented if the application is in use by phone numbers, is active, or if it is an Operator Connect connection. To remove an Operator Connect integration please contact Telnyx support. operationId: DeleteExternalConnection parameters: - $ref: '#/components/parameters/external-voice-integrations_id' responses: '200': $ref: '#/components/responses/ExternalConnectionResponse' '401': description: Unauthorized '404': description: Resource not found '422': description: Bad request summary: Deletes an External Connection tags: - External Connections x-latency-category: responsive get: description: Return the details of an existing External Connection inside the 'data' attribute of the response. operationId: GetExternalConnection parameters: - $ref: '#/components/parameters/external-voice-integrations_id' responses: '200': $ref: '#/components/responses/ExternalConnectionResponse' '401': description: Unauthorized '404': description: Resource not found '422': description: Bad request summary: Retrieve an External Connection tags: - External Connections x-latency-category: responsive patch: description: Updates settings of an existing External Connection based on the parameters of the request. operationId: UpdateExternalConnection parameters: - $ref: '#/components/parameters/external-voice-integrations_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateExternalConnectionRequest' description: Parameters to be updated for the External Connection required: true responses: '200': $ref: '#/components/responses/ExternalConnectionResponse' '401': description: Unauthorized '404': description: Resource not found '422': description: Bad request summary: Update an External Connection tags: - External Connections x-latency-category: responsive /external_connections/{id}/civic_addresses: get: description: Returns the civic addresses and locations from Microsoft Teams. operationId: ListCivicAddresses parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/FilterCivicAddressesConsolidated' responses: '200': $ref: '#/components/responses/GetAllCivicAddressesResponse' '401': description: Unauthorized '404': description: Not found '500': description: Unexpected Error '502': description: Bad Gateway summary: List all civic addresses and locations tags: - External Connections x-latency-category: responsive /external_connections/{id}/civic_addresses/{address_id}: get: description: Return the details of an existing Civic Address with its Locations inside the 'data' attribute of the response. operationId: GetExternalConnectionCivicAddress parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/address_id' responses: '200': $ref: '#/components/responses/GetCivicAddressResponse' '401': description: Unauthorized '404': description: Not found '500': description: Unexpected Error '502': description: Bad Gateway summary: Retrieve a Civic Address tags: - External Connections x-latency-category: responsive /external_connections/{id}/locations/{location_id}: patch: operationId: updateLocation parameters: - description: The ID of the external connection in: path name: id required: true schema: format: uuid type: string - description: The ID of the location to update in: path name: location_id required: true schema: format: uuid type: string requestBody: content: application/json: schema: properties: static_emergency_address_id: description: A new static emergency address ID to update the location with format: uuid type: string required: - static_emergency_address_id type: object required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LocationResponse' description: Location successfully updated with no associated orders to process '202': content: application/json: schema: $ref: '#/components/schemas/LocationResponse' description: Location update accepted; associated orders being processed '404': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Location or external connection not found '422': content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' description: Unprocessable Entity - Location already has an accepted emergency address summary: Update a location's static emergency address tags: - External Connections x-latency-category: responsive /external_connections/{id}/phone_numbers: get: description: Returns a list of all active phone numbers associated with the given external connection. operationId: ListExternalConnectionPhoneNumbers parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/FilterPhoneNumbersConsolidated' - $ref: '#/components/parameters/external-voice-integrations_PageConsolidated' responses: '200': $ref: '#/components/responses/ListExternalConnectionPhoneNumbersResponse' '401': description: Unauthorized '404': description: Not found '422': description: Bad request summary: List all phone numbers tags: - External Connections x-latency-category: responsive /external_connections/{id}/phone_numbers/{phone_number_id}: get: description: Return the details of a phone number associated with the given external connection. operationId: GetExternalConnectionPhoneNumber parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/phone_number_id' responses: '200': $ref: '#/components/responses/GetExternalConnectionPhoneNumberResponse' '401': description: Unauthorized '404': description: Not found summary: Retrieve a phone number tags: - External Connections x-latency-category: responsive patch: description: Asynchronously update settings of the phone number associated with the given external connection. operationId: UpdateExternalConnectionPhoneNumber parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/phone_number_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateExternalConnectionPhoneNumberRequest' description: Values that can be set when updating a phone number required: true responses: '200': $ref: '#/components/responses/GetExternalConnectionPhoneNumberResponse' '401': description: Unauthorized '404': description: Not found '422': description: Bad request summary: Update a phone number tags: - External Connections x-latency-category: responsive /external_connections/{id}/releases: get: description: Returns a list of your Releases for the given external connection. These are automatically created when you change the `connection_id` of a phone number that is currently on Microsoft Teams. operationId: ListExternalConnectionReleases parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/FilterReleasesConsolidated' - $ref: '#/components/parameters/external-voice-integrations_PageConsolidated' responses: '200': $ref: '#/components/responses/ListReleasesResponse' '401': description: Unauthorized '404': description: Not found '422': description: Bad request summary: List all Releases tags: - External Connections x-latency-category: responsive /external_connections/{id}/releases/{release_id}: get: description: Return the details of a Release request and its phone numbers. operationId: GetExternalConnectionRelease parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/release_id' responses: '200': $ref: '#/components/responses/GetReleaseResponse' '401': description: Unauthorized '404': description: Not found summary: Retrieve a Release request tags: - External Connections x-latency-category: responsive /external_connections/{id}/uploads: get: description: Returns a list of your Upload requests for the given external connection. operationId: ListExternalConnectionUploads parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/FilterUploadsConsolidated' - $ref: '#/components/parameters/external-voice-integrations_PageConsolidated' responses: '200': $ref: '#/components/responses/ListUploadsResponse' '401': description: Unauthorized '404': description: Not found '422': description: Bad request summary: List all Upload requests tags: - External Connections x-latency-category: responsive post: description: Creates a new Upload request to Microsoft teams with the included phone numbers. Only one of civic_address_id or location_id must be provided, not both. The maximum allowed phone numbers for the numbers_ids array is 1000. operationId: CreateExternalConnectionUpload parameters: - $ref: '#/components/parameters/external-voice-integrations_id' requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateExternalConnectionUploadRequest' description: Parameters that can be set when creating an Upload request. required: true responses: '202': content: application/json: schema: properties: success: description: Describes wether or not the operation was successful type: boolean ticket_id: description: Ticket id of the upload request format: uuid type: string title: Create Upload request Response type: object description: Successful response '401': description: Unauthorized '404': description: Not found '413': description: Payload too large. The maximum allowed phone numbers for the numbers_ids array is 1000. '422': description: Unprocessable Entity '504': description: Gateway Timeout summary: Creates an Upload request tags: - External Connections x-latency-category: responsive /external_connections/{id}/uploads/refresh: post: description: Forces a recheck of the status of all pending Upload requests for the given external connection in the background. operationId: RefreshExternalConnectionUploads parameters: - $ref: '#/components/parameters/external-voice-integrations_id' responses: '200': content: application/json: schema: properties: success: description: Describes wether or not the operation was successful type: boolean title: Create Upload request Response type: object description: Successful response '401': description: Unauthorized '404': description: Not found '409': description: Status refresh is still in progress, please wait before calling again summary: Refresh the status of all Upload requests tags: - External Connections x-latency-category: responsive /external_connections/{id}/uploads/status: get: description: Returns the count of all pending upload requests for the given external connection. operationId: GetExternalConnectionUploadsStatus parameters: - $ref: '#/components/parameters/external-voice-integrations_id' responses: '200': $ref: '#/components/responses/GetUploadsStatusResponse' '401': description: Unauthorized '404': description: Not found summary: Get the count of pending upload requests tags: - External Connections x-latency-category: responsive /external_connections/{id}/uploads/{ticket_id}: get: description: Return the details of an Upload request and its phone numbers. operationId: GetExternalConnectionUpload parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/ticket_id' responses: '200': $ref: '#/components/responses/GetUploadResponse' '401': description: Unauthorized '404': description: Not found summary: Retrieve an Upload request tags: - External Connections x-latency-category: responsive /external_connections/{id}/uploads/{ticket_id}/retry: post: description: If there were any errors during the upload process, this endpoint will retry the upload request. In some cases this will reattempt the existing upload request, in other cases it may create a new upload request. Please check the ticket_id in the response to determine if a new upload request was created. operationId: RetryUpload parameters: - $ref: '#/components/parameters/external-voice-integrations_id' - $ref: '#/components/parameters/ticket_id' responses: '202': $ref: '#/components/responses/GetUploadResponse' '401': description: Unauthorized '404': description: Not found '409': description: Order is still in progress, please wait before retrying '422': description: Unprocessable Entity summary: Retry an Upload request tags: - External Connections x-latency-category: responsive /operator_connect/actions/refresh: post: description: This endpoint will make an asynchronous request to refresh the Operator Connect integration with Microsoft Teams for the current user. This will create new external connections on the user's account if needed, and/or report the integration results as [log messages](https://developers.telnyx.com/api-reference/external-connections/list-all-log-messages#list-all-log-messages). operationId: OperatorConnectRefresh responses: '200': content: application/json: schema: properties: message: description: A message describing the result of the operation example: Operator connect refresh already in progress type: string success: description: Describes wether or not the operation was successful example: true type: boolean title: Operator Connect Refresh Response type: object description: Successful response '202': content: application/json: schema: properties: message: description: A message describing the result of the operation example: Operator connect refresh started type: string success: description: Describes wether or not the operation was successful example: true type: boolean title: Operator Connect Refresh Response type: object description: Successful response '401': description: Unauthorized summary: Refresh Operator Connect integration tags: - External Connections x-latency-category: responsive components: schemas: UpdateExternalConnectionPhoneNumberRequest: properties: location_id: description: Identifies the location to assign the phone number to. format: uuid type: string title: Update External Connection Phone Number Request type: object external-voice-integrations_OutboundVoiceProfileId: description: Identifies the associated outbound voice profile. example: '1293384261075731499' title: Outbound Voice Profile ID type: string x-format: int64 CreateExternalConnectionUploadRequest: example: location_id: 67ea7693-9cd5-4a68-8c76-abb3aa5bf5d2 number_ids: - '3920457616934164700' - '3920457616934164701' - '3920457616934164702' - '3920457616934164703' usage: first_party_app_assignment properties: additional_usages: items: description: Additional use cases of the upload request. If not provided, all supported usages will be used. enum: - calling_user_assignment - first_party_app_assignment type: string type: array civic_address_id: description: Identifies the civic address to assign all phone numbers to. format: uuid type: string location_id: description: Identifies the location to assign all phone numbers to. format: uuid type: string number_ids: items: description: Phone number ID from the Telnyx API. type: string minItems: 1 type: array usage: description: 'The use case of the upload request. NOTE: `calling_user_assignment` is not supported for toll free numbers.' enum: - calling_user_assignment - first_party_app_assignment type: string required: - number_ids title: Create Upload Request type: object CreateExternalConnectionRequest: example: active: false external_sip_connection: zoom outbound: outbound_voice_profile_id: '1911630617284445511' properties: active: $ref: '#/components/schemas/ConnectionActive' external_sip_connection: $ref: '#/components/schemas/ExternalSipConnectionZoomOnly' inbound: properties: channel_limit: default: null description: When set, this will limit the number of concurrent inbound calls to phone numbers associated with this connection. example: 10 type: integer outbound_voice_profile_id: description: The ID of the outbound voice profile to use for inbound calls. example: 12345678-1234-1234-1234-123456789012 type: string required: - outbound_voice_profile_id type: object outbound: properties: channel_limit: default: null description: When set, this will limit the number of concurrent outbound calls to phone numbers associated with this connection. example: 10 type: integer outbound_voice_profile_id: $ref: '#/components/schemas/external-voice-integrations_OutboundVoiceProfileId' type: object tags: description: Tags associated with the connection. example: - tag1 - tag2 items: type: string type: array 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: uri 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: uri 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: - external_sip_connection - outbound title: Create External Connection Request type: object ExternalConnectionPhoneNumber: properties: acquired_capabilities: items: description: The capabilities that are available for this phone number on Microsoft Teams. enum: - FirstPartyAppAssignment - InboundCalling - Office365 - OutboundCalling - UserAssignment type: string type: array civic_address_id: description: Identifies the civic address assigned to the phone number. format: uuid type: string displayed_country_code: description: The iso country code that will be displayed to the user when they receive a call from this phone number. type: string location_id: description: Identifies the location assigned to the phone number. format: uuid type: string number_id: description: Phone number ID from the Telnyx API. type: string telephone_number: description: Phone number in E164 format. type: string ticket_id: $ref: '#/components/schemas/UUID' title: Phone number details with relation to an external connection type: object CredentialActive: default: false description: If the credential associated with this service is active. example: true title: Credential Active type: boolean TnUploadEntry: properties: civic_address_id: description: Identifies the civic address assigned to the phone number entry. format: uuid type: string error_code: description: A code returned by Microsoft Teams if there is an error with the phone number entry upload. enum: - internal_error - unable_to_retrieve_default_location - unknown_country_code - unable_to_retrieve_location - unable_to_retrieve_partner_info - unable_to_match_geography_entry example: internal_error type: string error_message: description: A message returned by Microsoft Teams if there is an error with the upload process. type: string internal_status: default: pending_assignment description: Represents the status of the phone number entry upload on Telnyx. enum: - pending_assignment - in_progress - all_internal_jobs_completed - release_requested - release_completed - error example: error type: string location_id: description: Identifies the location assigned to the phone number entry. format: uuid type: string number_id: $ref: '#/components/schemas/UUID' phone_number: description: Phone number in E164 format. type: string status: default: pending_upload description: Represents the status of the phone number entry upload on Microsoft Teams. enum: - pending_upload - pending - in_progress - success - error example: error type: string title: TnUploadEntry type: object ExternalSipConnectionZoomOnly: default: zoom description: The service that will be consuming this connection. enum: - zoom example: zoom title: External SIP Connection type: string ExternalConnection: example: active: false created_at: '2022-06-29T19:23:59Z' credential_active: false external_sip_connection: zoom id: '1930241863466354012' outbound: outbound_voice_profile_id: '1911630617284445511' record_type: external_connection updated_at: '2022-06-29T19:39:47Z' properties: active: $ref: '#/components/schemas/ConnectionActive' created_at: description: ISO 8601 formatted date indicating when the resource was created. example: '2018-02-02T22:25:27.521Z' type: string credential_active: $ref: '#/components/schemas/CredentialActive' external_sip_connection: $ref: '#/components/schemas/ExternalSipConnection' id: $ref: '#/components/schemas/external-voice-integrations_IntId' inbound: properties: channel_limit: default: null description: When set, this will limit the number of concurrent inbound calls to phone numbers associated with this connection. example: 10 type: integer type: object outbound: properties: channel_limit: default: null description: When set, this will limit the number of concurrent outbound calls to phone numbers associated with this connection. example: 10 type: integer outbound_voice_profile_id: $ref: '#/components/schemas/external-voice-integrations_OutboundVoiceProfileId' type: object record_type: description: Identifies the type of the resource. example: external_connection type: string tags: description: Tags associated with the connection. example: - tag1 - tag2 items: type: string type: array updated_at: description: ISO 8601 formatted date indicating when the resource was 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: uri 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: uri 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' title: External Connection type: object Location: properties: additional_info: example: 14th Floor type: string description: example: Austin Office type: string id: $ref: '#/components/schemas/UUID' is_default: description: Represents whether the location is the default or not. type: boolean title: Location type: object ExternalSipConnection: default: zoom description: The service that will be consuming this connection. enum: - zoom - operator_connect example: zoom title: External SIP Connection type: string ConnectionActive: default: true description: Specifies whether the connection can be used. example: false title: Connection Active type: boolean ErrorResponse: properties: errors: items: properties: code: type: string detail: type: string meta: properties: url: format: uri type: string type: object source: properties: pointer: type: string type: object title: type: string type: object type: array type: object Upload: properties: available_usages: items: description: Available usages for the numbers in the upload on Microsoft Teams. enum: - calling_user_assignment - first_party_app_assignment type: string type: array error_code: description: A code returned by Microsoft Teams if there is an error with the upload process. type: string error_message: description: A message set if there is an error with the upload process. type: string location_id: example: c37e5036-1e87-42e6-86a2-b3e8dd39a2ad format: uuid type: string status: default: pending_upload description: Represents the status of the upload on Microsoft Teams. enum: - pending_upload - pending - in_progress - partial_success - success - error example: error type: string tenant_id: example: ea175aba-f47c-4702-9400-efaa42688048 format: uuid type: string ticket_id: $ref: '#/components/schemas/UUID' tn_upload_entries: items: $ref: '#/components/schemas/TnUploadEntry' type: array title: Upload type: object external-voice-integrations_IntId: description: Uniquely identifies the resource. example: '1293384261075731499' title: Int ID type: string x-format: int64 LocationResponse: properties: data: properties: accepted_address_suggestions: type: boolean location_id: format: uuid type: string static_emergency_address_id: format: uuid type: string type: object type: object UpdateExternalConnectionRequest: example: active: false outbound: outbound_voice_profile_id: '1911630617284445511' properties: active: $ref: '#/components/schemas/ConnectionActive' inbound: properties: channel_limit: default: null description: When set, this will limit the number of concurrent inbound calls to phone numbers associated with this connection. example: 10 type: integer type: object outbound: properties: channel_limit: default: null description: When set, this will limit the number of concurrent outbound calls to phone numbers associated with this connection. example: 10 type: integer outbound_voice_profile_id: $ref: '#/components/schemas/external-voice-integrations_OutboundVoiceProfileId' required: - outbound_voice_profile_id type: object tags: description: Tags associated with the connection. example: - tag1 - tag2 items: type: string type: array 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: uri 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: uri 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: - outbound title: Update External Connection Request type: object UUID: description: Uniquely identifies the resource. example: 542c3bca-d247-42bc-8fe7-e01d16ecd761 format: uuid title: UUID type: string LogMessage: properties: code: example: '10015' type: string x-format: int64 detail: example: The value provided for the attribute is not valid. Check the value used and try again. type: string meta: properties: external_connection_id: description: The external connection the log message is associated with, if any. example: '1293384261075731499' type: string x-format: int64 telephone_number: description: The telephone number the log message is associated with, if any. example: '+12345678' type: string ticket_id: description: The ticket ID for an operation that generated the log message, if any. example: 542c3bca-d247-42bc-8fe7-e01d16ecd761 format: uuid type: string type: object source: properties: pointer: description: JSON pointer (RFC6901) to the offending entity. example: /attribute format: json-pointer type: string type: object title: example: Invalid attribute type: string required: - code - title type: object external-voice-integrations_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 title: Pagination Meta type: object TnReleaseEntry: properties: number_id: description: Phone number ID from the Telnyx API. type: string phone_number: description: Phone number in E164 format. type: string title: TnReleaseEntry type: object Release: properties: created_at: description: ISO 8601 formatted date indicating when the resource was created. example: '2018-02-02T22:25:27.521Z' type: string error_message: description: A message set if there is an error with the upload process. type: string status: default: pending_upload description: Represents the status of the release on Microsoft Teams. enum: - pending_upload - pending - in_progress - complete - failed - expired - unknown example: pending type: string telephone_numbers: items: $ref: '#/components/schemas/TnReleaseEntry' type: array tenant_id: example: ea175aba-f47c-4702-9400-efaa42688048 format: uuid type: string ticket_id: $ref: '#/components/schemas/UUID' title: Phone Number Release type: object CivicAddress: example: city_or_town: Austin city_or_town_alias: '' company_name: Telnyx country: US country_or_district: US default_location_id: 18ded4bb-b694-44c1-a89b-a35b7acd4c9e description: Austin Office house_number: '600' house_number_suffix: '' id: 07a4dc5d-9b3b-4ba2-88a4-6ba172316c65 locations: - additional_info: '' description: Austin Office id: 18ded4bb-b694-44c1-a89b-a35b7acd4c9e is_default: true - additional_info: 14th Floor description: '' id: d420a57f-c4ae-4697-87e1-fbefd9e86f72 is_default: false postal_or_zip_code: '78701' record_type: civic_address state_or_province: TX street_name: Congress Street street_suffix: '' properties: city_or_town: example: Chicago type: string city_or_town_alias: type: string company_name: example: Telnyx type: string country: example: US type: string country_or_district: example: US type: string default_location_id: description: Identifies what is the default location in the list of locations. format: uuid type: string description: example: Texas Office type: string house_number: example: '600' type: string house_number_suffix: type: string id: $ref: '#/components/schemas/UUID' locations: items: $ref: '#/components/schemas/Location' type: array postal_or_zip_code: example: '78701' type: string record_type: description: Identifies the type of the resource. example: civic_address type: string state_or_province: example: TX type: string street_name: example: Congress type: string street_suffix: example: St type: string title: Civic Address type: object parameters: external-voice-integrations_id: description: Identifies the resource. in: path name: id required: true schema: example: '1293384261075731499' type: string x-format: int64 FilterUploadsConsolidated: description: Filter parameter for uploads (deepObject style). Supports filtering by status, civic_address_id, location_id, and phone_number with eq/contains operations. explode: true in: query name: filter required: false schema: properties: civic_address_id: properties: eq: description: The civic address ID to filter by example: '19990261512338516954' type: string type: object location_id: properties: eq: description: The location ID to filter by example: '19995665508264022121' type: string type: object phone_number: properties: contains: description: The phone number to filter by (partial match) example: '+1970' type: string eq: description: The phone number to filter by (exact match) example: '+19705555098' type: string type: object status: properties: eq: description: The status of the upload to filter by example: - pending_upload - pending items: enum: - pending_upload - pending - in_progress - success - error type: string type: array type: object type: object style: deepObject FilterCivicAddressesConsolidated: description: Filter parameter for civic addresses (deepObject style). Supports filtering by country. explode: true in: query name: filter schema: properties: country: description: The country (or countries) to filter addresses by. example: - US - CA - MX - BR items: description: The ISO 3166-1 alpha-2 country code (2 characters) type: string type: array type: object style: deepObject FilterPhoneNumbersConsolidated: description: Filter parameter for phone numbers (deepObject style). Supports filtering by phone_number, civic_address_id, and location_id with eq/contains operations. explode: true in: query name: filter required: false schema: properties: civic_address_id: properties: eq: description: The civic address ID to filter by example: '19990261512338516954' type: string type: object location_id: properties: eq: description: The location ID to filter by example: '19995665508264022121' type: string type: object phone_number: properties: contains: description: The phone number to filter by (partial match) example: '+1970' type: string eq: description: The phone number to filter by (exact match) example: '+19705555098' type: string type: object type: object style: deepObject FilterLogMessagesConsolidated: description: Filter parameter for log messages (deepObject style). Supports filtering by external_connection_id and telephone_number with eq/contains operations. explode: true in: query name: filter schema: properties: external_connection_id: description: The external connection ID to filter by or "null" to filter for logs without an external connection ID example: 67ea7693-9cd5-4a68-8c76-abb3aa5bf5d2 type: string telephone_number: description: Telephone number filter operations for log messages. Use 'eq' for exact matches or 'contains' for partial matches. properties: contains: description: The partial phone number to filter log messages for. Requires 3-15 digits. example: '+123' type: string eq: description: The phone number to filter log messages for or "null" to filter for logs without a phone number example: '+1234567890' type: string x-format: E164 type: object type: object style: deepObject phone_number_id: description: A phone number's ID via the Telnyx API in: path name: phone_number_id required: true schema: example: '1234567889' type: string address_id: description: Identifies a civic address or a location. in: path name: address_id required: true schema: example: 318fb664-d341-44d2-8405-e6bfb9ced6d9 format: uuid type: string ticket_id: description: Identifies an Upload request in: path name: ticket_id required: true schema: example: 7b6a6449-b055-45a6-81f6-f6f0dffa4cc6 format: uuid type: string release_id: description: Identifies a Release request in: path name: release_id required: true schema: example: 7b6a6449-b055-45a6-81f6-f6f0dffa4cc6 format: uuid type: string FilterConnectionsConsolidated: description: Filter parameter for external connections (deepObject style). Supports filtering by connection_name, external_sip_connection, id, created_at, and phone_number. explode: true in: query name: filter schema: properties: connection_name: properties: contains: default: null description: If present, connections with connection_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters. example: My Connection type: string type: object created_at: default: null description: If present, connections with created_at date matching the given YYYY-MM-DD date will be returned. example: '2022-12-31' type: string external_sip_connection: description: If present, connections with external_sip_connection matching the given value will be returned. enum: - zoom - operator_connect example: zoom type: string id: default: null description: If present, connections with id matching the given value will be returned. example: '1930241863466354012' type: string phone_number: description: 'Phone number filter for connections. Note: Despite the ''contains'' name, this requires a full E164 match per the original specification.' properties: contains: description: If present, connections associated with the given phone_number will be returned. A full match is necessary with a e164 format. example: '+15555555555' type: string type: object type: object style: deepObject FilterReleasesConsolidated: description: Filter parameter for releases (deepObject style). Supports filtering by status, civic_address_id, location_id, and phone_number with eq/contains operations. explode: true in: query name: filter schema: properties: civic_address_id: properties: eq: description: The civic address ID to filter by example: '19990261512338516954' type: string type: object location_id: properties: eq: description: The location ID to filter by example: '19995665508264022121' type: string type: object phone_number: description: Phone number filter operations. Use 'eq' for exact matches or 'contains' for partial matches. properties: contains: description: The partial phone number to filter by. Requires 3-15 digits. example: '+123' type: string eq: description: The phone number to filter by example: '+1234567890' type: string x-format: E164 type: object status: properties: eq: description: The status of the release to filter by example: - pending - in_progress items: enum: - pending_upload - pending - in_progress - complete - failed - expired - unknown type: string type: array type: object type: object style: deepObject external-voice-integrations_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: 250 description: The size of the page maximum: 250 minimum: 1 type: integer type: object style: deepObject responses: GetReleaseResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/Release' title: Get Release Response type: object description: Successful response ListUploadsResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Upload' type: array meta: $ref: '#/components/schemas/external-voice-integrations_PaginationMeta' title: List Uploads Response type: object description: Successful response GetUploadResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/Upload' title: Get Upload Response type: object description: Successful response ListReleasesResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/Release' type: array meta: $ref: '#/components/schemas/external-voice-integrations_PaginationMeta' title: List Releases Response type: object description: Successful response ListExternalConnectionPhoneNumbersResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/ExternalConnectionPhoneNumber' type: array meta: $ref: '#/components/schemas/external-voice-integrations_PaginationMeta' title: List External Connection Phone Numbers Response type: object description: Successful response ListLogMessagesResponse: content: application/json: schema: properties: log_messages: items: $ref: '#/components/schemas/LogMessage' type: array meta: $ref: '#/components/schemas/external-voice-integrations_PaginationMeta' title: List Log Messages Response type: object description: Successful response GetCivicAddressResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/CivicAddress' title: Get Civic Address Response type: object description: Successful response GetUploadsStatusResponse: content: application/json: schema: properties: data: properties: pending_numbers_count: description: The count of phone numbers that are pending assignment to the external connection. type: integer pending_orders_count: description: The count of number uploads that have not yet been uploaded to Microsoft. type: integer type: object title: Get Uploads Status Response type: object description: Successful response ExternalConnectionResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/ExternalConnection' title: External Connection Response type: object description: Successful response GetLogMessageResponse: content: application/json: schema: properties: log_messages: items: $ref: '#/components/schemas/LogMessage' maxItems: 1 minItems: 1 type: array title: Get Log Message Response type: object description: Successful response GetAllExternalConnectionResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/ExternalConnection' type: array meta: $ref: '#/components/schemas/external-voice-integrations_PaginationMeta' title: Get All External Connections Response type: object description: Successful response GetExternalConnectionPhoneNumberResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/ExternalConnectionPhoneNumber' title: Get External Connection Phone Number Response type: object description: Successful response GetAllCivicAddressesResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CivicAddress' type: array title: Get All Civic Addresses Response type: object description: Successful response 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