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 CSV Downloads 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: - name: CSV Downloads paths: /phone_numbers/csv_downloads: get: operationId: ListCsvDownloads parameters: - $ref: '#/components/parameters/numbers_PageConsolidated' responses: '200': $ref: '#/components/responses/ListCsvDownloadsResponse' '400': $ref: '#/components/responses/numbers_BadRequestResponse' '401': $ref: '#/components/responses/numbers_UnauthorizedResponse' '404': $ref: '#/components/responses/numbers_NotFoundResponse' '422': $ref: '#/components/responses/numbers_UnprocessableEntity' '500': $ref: '#/components/responses/numbers_GenericErrorResponse' summary: List CSV downloads tags: - CSV Downloads x-endpoint-cost: medium x-group-parameters: 'true' x-latency-category: responsive post: operationId: CreateCsvDownload parameters: - description: Which format to use when generating the CSV file. The default for backwards compatibility is 'V1' in: query name: csv_format required: false schema: default: V1 enum: - V1 - V2 example: V2 type: string - description: 'Consolidated filter parameter (deepObject style). Originally: filter[has_bundle], filter[tag], filter[connection_id], filter[phone_number], filter[status], filter[voice.connection_name], filter[voice.usage_payment_method], filter[billing_group_id], filter[emergency_address_id], filter[customer_reference]' explode: true in: query name: filter schema: properties: billing_group_id: description: Filter by the billing_group_id associated with phone numbers. To filter to only phone numbers that have no billing group associated them, set the value of this filter to the string 'null'. example: 62e4bf2e-c278-4282-b524-488d9c9c43b2 type: string connection_id: description: Filter by connection_id. example: '1521916448077776306' type: string customer_reference: description: Filter numbers via the customer_reference set. type: string emergency_address_id: description: Filter by the emergency_address_id associated with phone numbers. To filter only phone numbers that have no emergency address associated with them, set the value of this filter to the string 'null'. example: '9102160989215728032' type: string has_bundle: description: Filter by phone number that have bundles. type: string phone_number: description: "Filter by phone number. Requires at least three digits.\n Non-numerical characters will result in no values being returned." type: string status: description: Filter by phone number status. enum: - purchase-pending - purchase-failed - port-pending - active - deleted - port-failed - emergency-only - ported-out - port-out-pending example: active type: string tag: description: Filter by phone number tags. type: string voice.connection_name: additionalProperties: false description: Filter by voice connection name pattern matching. properties: contains: description: Filter contains connection name. Requires at least three characters. example: test type: string ends_with: description: Filter ends with connection name. Requires at least three characters. example: test type: string eq: description: Filter by connection name. example: test type: string starts_with: description: Filter starts with connection name. Requires at least three characters. example: test type: string type: object voice.usage_payment_method: description: Filter by usage_payment_method. enum: - pay-per-minute - channel example: channel type: string type: object style: deepObject responses: '200': $ref: '#/components/responses/CsvDownloadResponse' '400': $ref: '#/components/responses/numbers_BadRequestResponse' '401': $ref: '#/components/responses/numbers_UnauthorizedResponse' '404': $ref: '#/components/responses/numbers_NotFoundResponse' '422': $ref: '#/components/responses/numbers_UnprocessableEntity' '500': $ref: '#/components/responses/numbers_GenericErrorResponse' summary: Create a CSV download tags: - CSV Downloads x-endpoint-cost: medium x-latency-category: background /phone_numbers/csv_downloads/{id}: get: operationId: GetCsvDownload parameters: - description: Identifies the CSV download. in: path name: id required: true schema: type: string responses: '200': $ref: '#/components/responses/CsvDownloadResponse' '400': $ref: '#/components/responses/numbers_BadRequestResponse' '401': $ref: '#/components/responses/numbers_UnauthorizedResponse' '404': $ref: '#/components/responses/numbers_NotFoundResponse' '422': $ref: '#/components/responses/numbers_UnprocessableEntity' '500': $ref: '#/components/responses/numbers_GenericErrorResponse' summary: Retrieve a CSV download tags: - CSV Downloads x-endpoint-cost: medium x-latency-category: background components: schemas: CsvDownload: example: id: 42587e44-3a3e-46de-9255-0c9a7a1d1ec7 record_type: csv_download status: pending url: https://www.telnyx.com/sample/42587e44-3a3e-46de-9255-0c9a7a1d1ec7 properties: id: description: Identifies the resource. example: 42587e44-3a3e-46de-9255-0c9a7a1d1ec7 readOnly: true type: string record_type: description: Identifies the type of the resource. example: csv_download readOnly: true type: string status: default: pending description: Indicates the completion level of the CSV report. Only complete CSV download requests will be able to be retrieved. enum: - pending - complete - failed - expired example: pending type: string url: description: The URL at which the CSV file can be retrieved. example: https://www.telnyx.com/sample/42587e44-3a3e-46de-9255-0c9a7a1d1ec7 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 numbers_Errors: properties: errors: items: $ref: '#/components/schemas/numbers_Error' type: array type: object numbers_Error: properties: code: example: '10007' type: string detail: example: An unexpected error occured. type: string meta: properties: url: description: URL with additional information on the error. example: https://developers.telnyx.com/docs/overview/errors/10015 type: string type: object source: properties: parameter: description: Indicates which query parameter caused the error. type: string pointer: description: JSON pointer (RFC6901) to the offending entity. example: /base type: string type: object title: example: Unexpected error type: string type: object responses: ListCsvDownloadsResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CsvDownload' type: array meta: $ref: '#/components/schemas/PaginationMeta' title: List CSV Downloads Response type: object description: Successful response with a list of CSV downloads. numbers_UnprocessableEntity: content: application/json: schema: $ref: '#/components/schemas/numbers_Errors' description: Unprocessable entity. Check the 'detail' field in response for details. numbers_NotFoundResponse: content: application/json: schema: $ref: '#/components/schemas/numbers_Errors' description: The requested resource doesn't exist. numbers_UnauthorizedResponse: 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/numbers_Errors' description: Unauthorized CsvDownloadResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/CsvDownload' type: array title: CSV Download Response type: object description: Successful response with details about a CSV download. numbers_GenericErrorResponse: content: application/json: schema: $ref: '#/components/schemas/numbers_Errors' description: Unexpected error numbers_BadRequestResponse: content: application/json: schema: $ref: '#/components/schemas/numbers_Errors' description: Bad request, the request was unacceptable, often due to missing a required parameter. parameters: numbers_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 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