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 Programmable Fax 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: Fax Applications operations name: Programmable Fax Applications paths: /fax_applications: get: description: This endpoint returns a list of your Fax Applications inside the 'data' attribute of the response. You can adjust which applications are listed by using filters. Fax Applications are used to configure how you send and receive faxes using the Programmable Fax API with Telnyx. operationId: ListFaxApplications parameters: - $ref: '#/components/parameters/PageConsolidated' - $ref: '#/components/parameters/programmable-fax_FilterConsolidated' - $ref: '#/components/parameters/programmable-fax_SortApplication' responses: '200': $ref: '#/components/responses/GetAllFaxApplicationsResponse' '400': $ref: '#/components/responses/programmable-fax_BadRequestResponse' '401': $ref: '#/components/responses/UnauthenticatedResponse' '403': $ref: '#/components/responses/programmable-fax_UnauthorizedResponse' summary: List all Fax Applications tags: - Programmable Fax Applications x-endpoint-cost: medium x-latency-category: responsive post: description: Creates a new Fax Application based on the parameters sent in the request. The application name and webhook URL are required. Once created, you can assign phone numbers to your application using the `/phone_numbers` endpoint. operationId: CreateFaxApplication parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/CreateFaxApplicationRequest' description: Parameters that can be set when creating a Fax Application required: true responses: '201': $ref: '#/components/responses/FaxApplicationResponse' '401': $ref: '#/components/responses/UnauthenticatedResponse' '403': $ref: '#/components/responses/programmable-fax_UnauthorizedResponse' '422': $ref: '#/components/responses/programmable-fax_UnprocessableEntityResponse' summary: Creates a Fax Application tags: - Programmable Fax Applications x-endpoint-cost: medium x-latency-category: responsive /fax_applications/{id}: delete: description: Permanently deletes a Fax Application. Deletion may be prevented if the application is in use by phone numbers. operationId: DeleteFaxApplication parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/FaxApplicationResponse' '400': $ref: '#/components/responses/programmable-fax_BadRequestResponse' '401': $ref: '#/components/responses/UnauthenticatedResponse' '403': $ref: '#/components/responses/programmable-fax_UnauthorizedResponse' '404': $ref: '#/components/responses/programmable-fax_NotFoundResponse' summary: Deletes a Fax Application tags: - Programmable Fax Applications x-latency-category: responsive get: description: Return the details of an existing Fax Application inside the 'data' attribute of the response. operationId: GetFaxApplication parameters: - $ref: '#/components/parameters/id' responses: '200': $ref: '#/components/responses/FaxApplicationResponse' '400': $ref: '#/components/responses/programmable-fax_BadRequestResponse' '401': $ref: '#/components/responses/UnauthenticatedResponse' '403': $ref: '#/components/responses/programmable-fax_UnauthorizedResponse' '404': $ref: '#/components/responses/programmable-fax_NotFoundResponse' summary: Retrieve a Fax Application tags: - Programmable Fax Applications x-latency-category: responsive patch: description: Updates settings of an existing Fax Application based on the parameters of the request. operationId: UpdateFaxApplication parameters: - $ref: '#/components/parameters/id' requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateFaxApplicationRequest' description: Parameters to be updated for the Fax Application required: true responses: '200': $ref: '#/components/responses/FaxApplicationResponse' '401': $ref: '#/components/responses/UnauthenticatedResponse' '403': $ref: '#/components/responses/programmable-fax_UnauthorizedResponse' '404': $ref: '#/components/responses/programmable-fax_NotFoundResponse' '422': $ref: '#/components/responses/programmable-fax_UnprocessableEntityResponse' summary: Update a Fax Application tags: - Programmable Fax Applications x-latency-category: responsive components: responses: GetAllFaxApplicationsResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/FaxApplication' type: array meta: $ref: '#/components/schemas/PaginationMeta' title: Get All Fax Applications Response type: object description: Successful response FaxApplicationResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/FaxApplication' title: Fax Application Response type: object description: Successful response UnauthenticatedResponse: content: application/json: examples: Authentication Failed: value: errors: - code: '10009' detail: Could not understand the provided credentials. meta: url: https://developers.telnyx.com/docs/overview/errors/10009 title: Authentication failed schema: $ref: '#/components/schemas/ErrorResponse' description: Unauthorized programmable-fax_BadRequestResponse: content: application/json: examples: missingParameter: value: errors: - code: '10015' detail: The request failed because it was not well-formed. meta: url: https://developers.telnyx.com/docs/overview/errors/10015 source: pointer: / title: Bad Request schema: $ref: '#/components/schemas/ErrorResponse' description: Bad request, the request was unacceptable, often due to missing a required parameter. programmable-fax_UnauthorizedResponse: description: Unauthorized programmable-fax_NotFoundResponse: content: application/json: example: errors: - code: '404' detail: The requested resource does not exist title: Not Found schema: $ref: '#/components/schemas/programmable-fax_Errors' description: The requested resource does not exist programmable-fax_UnprocessableEntityResponse: content: application/json: example: errors: - code: '422' detail: The request parameters failed validation title: Unprocessable Entity schema: $ref: '#/components/schemas/programmable-fax_Errors' description: Unprocessable entity. The request was well-formed but contains semantic errors. schemas: FaxEmailRecipient: default: null description: Specifies an email address where faxes sent to this application will be forwarded to (as pdf or tiff attachments) example: user@example.com title: Fax Email Recipient type: - string - 'null' ApplicationName: description: A user-assigned name to help manage the application. example: call-router title: Application Name type: string OutboundVoiceProfileId: description: Identifies the associated outbound voice profile. example: '1293384261075731499' title: Outbound Voice Profile ID type: string CreateFaxApplicationRequest: example: active: false anchorsite_override: Amsterdam, Netherlands application_name: fax-router inbound: channel_limit: 10 sip_subdomain: example sip_subdomain_receive_settings: only_my_connections outbound: channel_limit: 10 outbound_voice_profile_id: '1293384261075731499' tags: - tag1 - tag2 webhook_event_failover_url: https://failover.example.com webhook_event_url: https://example.com webhook_timeout_secs: 25 properties: active: $ref: '#/components/schemas/ConnectionActive' anchorsite_override: $ref: '#/components/schemas/AnchorsiteOverride' application_name: $ref: '#/components/schemas/ApplicationName' 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 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 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/OutboundVoiceProfileId' type: object tags: default: [] description: Tags associated with the Fax Application. example: - tag1 - tag2 items: type: string type: array webhook_event_failover_url: $ref: '#/components/schemas/WebhookEventFailoverUrl' webhook_event_url: $ref: '#/components/schemas/WebhookEventUrl' webhook_timeout_secs: $ref: '#/components/schemas/WebhookTimeoutSecs' required: - application_name - webhook_event_url title: Create Fax Application Request type: object 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 WebhookEventUrl: 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 title: Webhook Event URL type: string FaxApplication: example: active: false anchorsite_override: Amsterdam, Netherlands application_name: fax-router created_at: '2018-02-02T22:25:27.521Z' id: '1293384261075731499' inbound: channel_limit: 10 sip_subdomain: example sip_subdomain_receive_settings: only_my_connections outbound: channel_limit: 10 outbound_voice_profile_id: '1293384261075731499' record_type: fax_application updated_at: '2018-02-02T22:25:27.521Z' webhook_event_failover_url: https://failover.example.com webhook_event_url: https://example.com webhook_timeout_secs: 25 properties: active: $ref: '#/components/schemas/ConnectionActive' anchorsite_override: $ref: '#/components/schemas/AnchorsiteOverride' application_name: $ref: '#/components/schemas/ApplicationName' created_at: description: ISO 8601 formatted date indicating when the resource was created. example: '2018-02-02T22:25:27.521Z' type: string id: $ref: '#/components/schemas/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 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 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/OutboundVoiceProfileId' type: object record_type: description: Identifies the type of the resource. example: fax_application type: string tags: default: [] description: Tags associated with the Fax Application. 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_event_failover_url: $ref: '#/components/schemas/WebhookEventFailoverUrl' webhook_event_url: $ref: '#/components/schemas/WebhookEventUrl' webhook_timeout_secs: $ref: '#/components/schemas/WebhookTimeoutSecs' title: Fax Application type: object programmable-fax_Error: properties: code: type: string detail: type: string meta: additionalProperties: true type: object source: properties: parameter: description: Indicates which query parameter caused the error. type: string pointer: description: JSON pointer (RFC6901) to the offending entity. type: string type: object title: type: string required: - code - title type: object AnchorsiteOverride: default: Latency description: '`Latency` 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 - Sydney, Australia - Amsterdam, Netherlands - London, UK - Toronto, Canada - Vancouver, Canada - Frankfurt, Germany example: Amsterdam, Netherlands title: Anchorsite Override type: string UpdateFaxApplicationRequest: example: active: false anchorsite_override: Amsterdam, Netherlands application_name: fax-router inbound: channel_limit: 10 sip_subdomain: example sip_subdomain_receive_settings: only_my_connections outbound: channel_limit: 10 outbound_voice_profile_id: '1293384261075731499' tags: - tag1 - tag2 webhook_event_failover_url: https://failover.example.com webhook_event_url: https://example.com webhook_timeout_secs: 25 properties: active: $ref: '#/components/schemas/ConnectionActive' anchorsite_override: $ref: '#/components/schemas/AnchorsiteOverride' application_name: $ref: '#/components/schemas/ApplicationName' fax_email_recipient: $ref: '#/components/schemas/FaxEmailRecipient' 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 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 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/OutboundVoiceProfileId' type: object tags: description: Tags associated with the Fax Application. example: - tag1 - tag2 items: type: string type: array webhook_event_failover_url: $ref: '#/components/schemas/WebhookEventFailoverUrl' webhook_event_url: $ref: '#/components/schemas/WebhookEventUrl' webhook_timeout_secs: $ref: '#/components/schemas/WebhookTimeoutSecs' required: - application_name - webhook_event_url title: Update Fax Application Request type: object WebhookEventFailoverUrl: 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 title: Webhook Event Failover URL type: - string - 'null' IntId: description: Uniquely identifies the resource. example: '1293384261075731499' title: Int ID type: string 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 WebhookTimeoutSecs: default: null description: Specifies how many seconds to wait before timing out a webhook. example: 25 maximum: 30 minimum: 0 title: Webhook Timeout Secs type: - integer - 'null' programmable-fax_Errors: properties: errors: items: $ref: '#/components/schemas/programmable-fax_Error' type: array type: object parameters: programmable-fax_FilterConsolidated: description: 'Consolidated filter parameter (deepObject style). Originally: filter[application_name][contains], filter[outbound_voice_profile_id]' explode: true in: query name: filter schema: properties: application_name: description: Application name filtering operations properties: contains: description: If present, applications with application_name containing the given value will be returned. Matching is not case-sensitive. Requires at least three characters. example: fax-app type: string type: object outbound_voice_profile_id: description: Identifies the associated outbound voice profile. example: '1293384261075731499' type: string type: object style: deepObject PageConsolidated: description: 'Consolidated page parameter (deepObject style). Originally: page[number], page[size]' 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 id: description: Identifies the resource. in: path name: id required: true schema: example: '1293384261075731499' type: string programmable-fax_SortApplication: 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:
If not given, results are sorted by created_at in descending order." in: query name: sort schema: default: created_at enum: - created_at - application_name - active example: application_name type: string 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