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 Global IPs 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: Global IPs name: Global IPs paths: /global_ip_allowed_ports: get: description: List all Global IP Allowed Ports operationId: ListGlobalIpAllowedPorts responses: '200': $ref: '#/components/responses/GlobalIpAllowedPortListResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: List all Global IP Allowed Ports tags: - Global IPs x-latency-category: responsive /global_ip_assignment_health: description: Global IP Assignment Health Check Metrics over time get: operationId: GetGlobalIpAssignmentHealth parameters: - description: 'Consolidated filter parameter (deepObject style). Originally: filter[global_ip_id][in], filter[global_ip_assignment_id][in]' explode: true in: query name: filter schema: additionalProperties: false properties: global_ip_assignment_id: oneOf: - description: Filter by exact Global IP Assignment ID type: string - additionalProperties: false description: Filtering operations properties: in: description: Filter by Global IP Assignment ID(s) separated by commas type: string type: object global_ip_id: oneOf: - description: Filter by exact Global IP ID type: string - additionalProperties: false description: Filtering operations properties: in: description: Filter by Global IP ID(s) separated by commas type: string type: object type: object style: deepObject responses: '200': $ref: '#/components/responses/GlobalIpHealthResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Global IP Assignment Health Check Metrics tags: - Global IPs x-latency-category: responsive /global_ip_assignments: get: description: List all Global IP assignments. operationId: ListGlobalIpAssignments parameters: - $ref: '#/components/parameters/PageConsolidated' responses: '200': $ref: '#/components/responses/GlobalIpAssignmentListResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: List all Global IP assignments tags: - Global IPs x-latency-category: responsive post: description: Create a Global IP assignment. operationId: CreateGlobalIpAssignment requestBody: content: application/json: schema: $ref: '#/components/schemas/GlobalIpAssignment' required: true responses: '202': $ref: '#/components/responses/GlobalIpAssignmentResponse' '422': $ref: '#/components/responses/netapps_UnprocessableEntity' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Create a Global IP assignment tags: - Global IPs x-latency-category: responsive /global_ip_assignments/{id}: delete: description: Delete a Global IP assignment. operationId: DeleteGlobalIpAssignment parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': $ref: '#/components/responses/GlobalIpAssignmentResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Delete a Global IP assignment tags: - Global IPs x-latency-category: responsive get: description: Retrieve a Global IP assignment. operationId: GetGlobalIpAssignment parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': $ref: '#/components/responses/GlobalIpAssignmentResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Retrieve a Global IP tags: - Global IPs x-latency-category: responsive patch: description: Update a Global IP assignment. operationId: UpdateGlobalIpAssignment parameters: - $ref: '#/components/parameters/ResourceId' requestBody: content: application/json: schema: $ref: '#/components/schemas/GlobalIpAssignmentUpdate' required: true responses: '200': $ref: '#/components/responses/GlobalIpAssignmentResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Update a Global IP assignment tags: - Global IPs x-latency-category: responsive /global_ip_assignments_usage: description: Global IP Assignment Usage Metrics over time get: operationId: GetGlobalIpAssignmentUsage parameters: - description: 'Consolidated filter parameter (deepObject style). Originally: filter[global_ip_assignment_id][in], filter[global_ip_id][in]' explode: true in: query name: filter schema: additionalProperties: false properties: global_ip_assignment_id: oneOf: - description: Filter by exact Global IP Assignment ID type: string - additionalProperties: false description: Filtering operations properties: in: description: Filter by Global IP Assignment ID(s) separated by commas type: string type: object global_ip_id: oneOf: - description: Filter by exact Global IP ID type: string - additionalProperties: false description: Filtering operations properties: in: description: Filter by Global IP ID(s) separated by commas type: string type: object type: object style: deepObject responses: '200': $ref: '#/components/responses/GlobalIpAssignmentUsageResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Global IP Assignment Usage Metrics tags: - Global IPs x-latency-category: responsive /global_ip_health_check_types: get: description: List all Global IP Health check types. operationId: ListGlobalIpHealthCheckTypes responses: '200': $ref: '#/components/responses/GlobalIpHealthCheckTypesResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: List all Global IP Health check types tags: - Global IPs x-latency-category: responsive /global_ip_health_checks: get: description: List all Global IP health checks. operationId: ListGlobalIpHealthChecks parameters: - $ref: '#/components/parameters/PageConsolidated' responses: '200': $ref: '#/components/responses/GlobalIpHealthCheckListResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: List all Global IP health checks tags: - Global IPs x-latency-category: responsive post: description: Create a Global IP health check. operationId: CreateGlobalIpHealthCheck requestBody: content: application/json: schema: $ref: '#/components/schemas/GlobalIPHealthCheck' required: true responses: '202': $ref: '#/components/responses/GlobalIpHealthCheckResponse' '422': $ref: '#/components/responses/netapps_UnprocessableEntity' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Create a Global IP health check tags: - Global IPs x-latency-category: responsive /global_ip_health_checks/{id}: delete: description: Delete a Global IP health check. operationId: DeleteGlobalIpHealthCheck parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': $ref: '#/components/responses/GlobalIpHealthCheckResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Delete a Global IP health check tags: - Global IPs x-latency-category: responsive get: description: Retrieve a Global IP health check. operationId: GetGlobalIpHealthCheck parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': $ref: '#/components/responses/GlobalIpHealthCheckResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Retrieve a Global IP health check tags: - Global IPs x-latency-category: responsive /global_ip_latency: description: Global IP Latency Metrics over time get: operationId: GetGlobalIpLatency parameters: - description: 'Consolidated filter parameter (deepObject style). Originally: filter[global_ip_id][in]' explode: true in: query name: filter schema: additionalProperties: false properties: global_ip_id: oneOf: - description: Filter by exact Global IP ID type: string - additionalProperties: false description: Filtering operations properties: in: description: Filter by Global IP ID(s) separated by commas type: string type: object type: object style: deepObject responses: '200': $ref: '#/components/responses/GlobalIpLatencyResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Global IP Latency Metrics tags: - Global IPs x-latency-category: responsive /global_ip_protocols: get: description: List all Global IP Protocols operationId: ListGlobalIpProtocols responses: '200': $ref: '#/components/responses/GlobalIpProtocolListResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: List all Global IP Protocols tags: - Global IPs x-latency-category: responsive /global_ip_usage: description: Global IP Usage Metrics over time get: operationId: GetGlobalIpUsage parameters: - description: 'Consolidated filter parameter (deepObject style). Originally: filter[global_ip_id][in]' explode: true in: query name: filter schema: additionalProperties: false properties: global_ip_id: oneOf: - description: Filter by exact Global IP ID type: string - additionalProperties: false description: Filtering operations properties: in: description: Filter by Global IP ID(s) separated by commas type: string type: object type: object style: deepObject responses: '200': $ref: '#/components/responses/GlobalIpUsageResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Global IP Usage Metrics tags: - Global IPs x-latency-category: responsive /global_ips: get: description: List all Global IPs. operationId: ListGlobalIps parameters: - $ref: '#/components/parameters/PageConsolidated' responses: '200': $ref: '#/components/responses/GlobalIpListResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: List all Global IPs tags: - Global IPs x-latency-category: responsive post: description: Create a Global IP. operationId: CreateGlobalIp requestBody: content: application/json: schema: $ref: '#/components/schemas/GlobalIP' required: true responses: '202': $ref: '#/components/responses/GlobalIpResponse' '422': $ref: '#/components/responses/netapps_UnprocessableEntity' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Create a Global IP tags: - Global IPs x-latency-category: responsive /global_ips/{id}: delete: description: Delete a Global IP. operationId: DeleteGlobalIp parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': $ref: '#/components/responses/GlobalIpResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Delete a Global IP tags: - Global IPs x-latency-category: responsive get: description: Retrieve a Global IP. operationId: GetGlobalIp parameters: - $ref: '#/components/parameters/ResourceId' responses: '200': $ref: '#/components/responses/GlobalIpResponse' '422': $ref: '#/components/responses/netapps_GenericErrorResponse' default: $ref: '#/components/responses/netapps_GenericErrorResponse' summary: Retrieve a Global IP tags: - Global IPs x-latency-category: responsive components: schemas: GlobalIpAssignmentHealthMetric: properties: global_ip: properties: id: description: Global IP ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string ip_address: description: The Global IP address. example: 192.0.2.1 readOnly: true type: string type: object global_ip_assignment: properties: id: description: Global IP assignment ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string wireguard_peer: properties: ip_address: description: The IP address of the interface. example: 73.47.1.23 type: string name: description: A user specified name for the interface. example: Wireguard Peer 1 type: string type: object wireguard_peer_id: description: Wireguard peer ID. example: e66c496d-4a85-423b-8b2a-8e63fac20320 format: uuid type: string type: object health: properties: fail: description: The number of failed health checks. example: 0 type: number pass: description: The number of successful health checks. example: 100 type: number type: object timestamp: description: The timestamp of the metric. example: '2020-01-01T00:00:00.000Z' format: date-time type: string type: object GlobalIPHealthCheck: allOf: - $ref: '#/components/schemas/Record' - properties: global_ip_id: description: Global IP ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string health_check_params: additionalProperties: true description: A Global IP health check params. example: path: / port: 8080 type: object health_check_type: description: The Global IP health check type. example: http_status_2xx type: string record_type: description: Identifies the type of the resource. example: global_ip_health_check readOnly: true type: string title: Global IP health check type: object GlobalIPAllowedPort: allOf: - properties: first_port: description: First port of a range. example: 1024 type: integer id: description: Identifies the resource. example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58 format: uuid readOnly: true type: string last_port: description: Last port of a range. example: 49151 type: integer name: description: A name for the Global IP ports range. example: TCP Registered type: string protocol_code: description: The Global IP Protocol code. example: tcp readOnly: true type: string record_type: description: Identifies the type of the resource. example: global_ip_allowed_port readOnly: true type: string title: Global IP Allowed Port Range type: object netapps_Errors: properties: errors: items: $ref: '#/components/schemas/netapps_Error' type: array type: object InterfaceStatus: description: The current status of the interface deployment. enum: - created - provisioning - provisioned - deleting example: provisioned readOnly: true type: string GlobalIPProtocol: allOf: - properties: code: description: The Global IP Protocol code. example: tcp readOnly: true type: string name: description: A name for Global IP Protocol. example: TCP type: string record_type: description: Identifies the type of the resource. example: global_ip_protocol readOnly: true type: string title: Global IP Protocol type: object Record: properties: created_at: description: ISO 8601 formatted date-time indicating when the resource was created. example: '2018-02-02T22:25:27.521Z' readOnly: true type: string id: description: Identifies the resource. example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58 format: uuid readOnly: true type: string record_type: description: Identifies the type of the resource. example: sample_record_type readOnly: true type: string updated_at: description: ISO 8601 formatted date-time indicating when the resource was updated. example: '2018-02-02T22:25:27.521Z' readOnly: true type: string type: object netapps_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 GlobalIpHealthCheckType: allOf: - properties: health_check_params: additionalProperties: true description: Global IP Health check params. example: health_check_params: path: str port: int type: object health_check_type: description: Global IP Health check type. example: http_status_2xx type: string record_type: description: Identifies the type of the resource. example: global_ip_health_check_type readOnly: true type: string title: Global IP Health Check Type type: object GlobalIpAssignmentUsageMetric: properties: global_ip: properties: id: description: Global IP ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string ip_address: description: The Global IP address. example: 64.1.4.130 readOnly: true type: string type: object global_ip_assignment: properties: id: description: Global IP assignment ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string wireguard_peer: properties: ip_address: description: The IP address of the interface. example: 172.1.0.1 type: string name: description: A user specified name for the interface. example: Wireguard Peer 1 type: string type: object wireguard_peer_id: description: Wireguard peer ID. example: e66c496d-4a85-423b-8b2a-8e63fac20320 format: uuid type: string type: object received: properties: amount: description: The amount of data received. example: 100000 type: number unit: description: The unit of the amount of data received. example: B type: string type: object timestamp: description: The timestamp of the metric. example: '2020-01-01T00:00:00.000Z' format: date-time type: string transmitted: properties: amount: description: The amount of data transmitted. example: 100000 type: number unit: description: The unit of the amount of data transmitted. example: B type: string type: object type: object GlobalIpLatencyMetric: properties: global_ip: properties: id: description: Global IP ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string ip_address: description: The Global IP address. example: 192.0.2.1 readOnly: true type: string type: object mean_latency: properties: amount: description: The average latency. example: 100 type: number unit: description: The unit of the average latency. example: ms type: string type: object percentile_latency: properties: '0': properties: amount: description: The minimum latency. example: 100 type: number unit: description: The unit of the minimum latency. example: ms type: string type: object '100': properties: amount: description: The maximum latency. example: 100 type: number unit: description: The unit of the maximum latency. example: ms type: string type: object '25': properties: amount: description: The 25th percentile latency. example: 100 type: number unit: description: The unit of the 25th percentile latency. example: ms type: string type: object '50': properties: amount: description: The 50th percentile latency. example: 100 type: number unit: description: The unit of the 50th percentile latency. example: ms type: string type: object '75': properties: amount: description: The 75th percentile latency. example: 100 type: number unit: description: The unit of the 75th percentile latency. example: ms type: string type: object '90': properties: amount: description: The 90th percentile latency. example: 100 type: number unit: description: The unit of the 90th percentile latency. example: ms type: string type: object '99': properties: amount: description: The 99th percentile latency. example: 100 type: number unit: description: The unit of the 99th percentile latency. example: ms type: string type: object type: object prober_location: properties: id: description: Location ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string lat: description: Latitude. example: 52.370216 type: number lon: description: Longitude. example: 4.895168 type: number name: description: Location name. example: Amsterdam type: string type: object timestamp: description: The timestamp of the metric. example: '2020-01-01T00:00:00.000Z' format: date-time type: string type: object GlobalIpAssignment: allOf: - $ref: '#/components/schemas/Record' - properties: global_ip_id: description: Global IP ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string is_announced: description: Status of BGP announcement. readOnly: true type: boolean is_connected: description: Wireguard peer is connected. readOnly: true type: boolean is_in_maintenance: description: Enable/disable BGP announcement. type: boolean record_type: description: Identifies the type of the resource. example: global_ip_assignment readOnly: true type: string status: $ref: '#/components/schemas/InterfaceStatus' wireguard_peer_id: description: Wireguard peer ID. example: e66c496d-4a85-423b-8b2a-8e63fac20320 format: uuid type: string title: Global IP 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 GlobalIpUsageMetric: properties: global_ip: properties: id: description: Global IP ID. example: a836125b-20b6-452e-9c03-2653f09c7ed7 format: uuid type: string ip_address: description: The Global IP address. example: 64.1.2.130 readOnly: true type: string type: object received: properties: amount: description: The amount of data received. example: 100000 type: number unit: description: The unit of the amount of data received. example: B type: string type: object timestamp: description: The timestamp of the metric. example: '2020-01-01T00:00:00.000Z' format: date-time type: string transmitted: properties: amount: description: The amount of data transmitted. example: 100000 type: number unit: description: The unit of the amount of data transmitted. example: B type: string type: object type: object GlobalIpAssignmentUpdate: allOf: - $ref: '#/components/schemas/GlobalIpAssignment' - properties: global_ip_id: readOnly: true type: string wireguard_peer_id: readOnly: true type: string title: Global IP type: object GlobalIP: allOf: - $ref: '#/components/schemas/Record' - properties: description: description: A user specified description for the address. example: test interface type: string ip_address: description: The Global IP address. example: 198.51.100.1 readOnly: true type: string name: description: A user specified name for the address. example: test interface type: string ports: additionalProperties: true description: A Global IP ports grouped by protocol code. example: tcp: - 80 - 8080 udp: - 5000 - 5050 type: object record_type: description: Identifies the type of the resource. example: global_ip readOnly: true type: string title: Global IP type: object responses: GlobalIpHealthCheckTypesResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIpHealthCheckType' type: array type: object description: Successful response GlobalIpProtocolListResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIPProtocol' type: array type: object description: Successful response GlobalIpLatencyResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIpLatencyMetric' type: array type: object description: Successful response GlobalIpListResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIP' type: array meta: $ref: '#/components/schemas/PaginationMeta' type: object description: Successful response GlobalIpResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/GlobalIP' type: object description: Successful response GlobalIpAssignmentResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/GlobalIpAssignment' type: object description: Successful response GlobalIpAssignmentListResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIpAssignment' type: array meta: $ref: '#/components/schemas/PaginationMeta' type: object description: Successful response GlobalIpAllowedPortListResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIPAllowedPort' type: array type: object description: Successful response netapps_GenericErrorResponse: content: application/json: schema: $ref: '#/components/schemas/netapps_Errors' description: Unexpected error GlobalIpHealthCheckListResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIPHealthCheck' type: array meta: $ref: '#/components/schemas/PaginationMeta' type: object description: Successful response GlobalIpUsageResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIpUsageMetric' type: array type: object description: Successful response GlobalIpAssignmentUsageResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIpAssignmentUsageMetric' type: array type: object description: Successful response GlobalIpHealthCheckResponse: content: application/json: schema: properties: data: $ref: '#/components/schemas/GlobalIPHealthCheck' type: object description: Successful response netapps_UnprocessableEntity: content: application/json: schema: $ref: '#/components/schemas/netapps_Errors' description: Unprocessable entity. Check the 'detail' field in response for details. GlobalIpHealthResponse: content: application/json: schema: properties: data: items: $ref: '#/components/schemas/GlobalIpAssignmentHealthMetric' type: array type: object description: Successful response parameters: 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 ResourceId: description: Identifies the resource. in: path name: id required: true schema: example: 6a09cdc3-8948-47f0-aa62-74ac943d6c58 format: uuid 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