OpenAPI Specification
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 IP Addresses 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: IP Address Operations
name: IP Addresses
paths:
/access_ip_address:
get:
operationId: ListAccessIpAddresses
parameters:
- description: 'Consolidated filter parameter (deepObject style). Originally: filter[ip_source], filter[ip_address], filter[created_at]. Supports complex bracket operations for dynamic filtering.'
examples:
Complex filtering example:
summary: 'Combine multiple filters: cloudflare source IPs created within 2023'
value:
created_at:
gt: '2023-01-01T00:00:00Z'
lt: '2023-12-31T23:59:59Z'
ip_source: cloudflare
filter[created_at][gt]=2023-01-01T00:00:00Z:
summary: Filter IP addresses created after the specified date-time
value:
created_at:
gt: '2023-01-01T00:00:00Z'
filter[created_at][lt]=2023-12-31T23:59:59Z:
summary: Filter IP addresses created before the specified date-time
value:
created_at:
lt: '2023-12-31T23:59:59Z'
filter[ip_address]=192.168.1.1:
summary: Filter by specific IP address
value:
ip_address: 192.168.1.1
filter[ip_source]=cloudflare:
summary: Filter access IP addresses by source 'cloudflare'
value:
ip_source: cloudflare
explode: true
in: query
name: filter
schema:
additionalProperties: true
properties:
created_at:
oneOf:
- description: Filter by exact creation date-time
format: date-time
type: string
- additionalProperties: false
description: Date range filtering operations
properties:
gt:
description: Filter for creation date-time greater than
format: date-time
type: string
gte:
description: Filter for creation date-time greater than or equal to
format: date-time
type: string
lt:
description: Filter for creation date-time less than
format: date-time
type: string
lte:
description: Filter for creation date-time less than or equal to
format: date-time
type: string
title: DateRangeFilter
type: object
ip_address:
description: Filter by IP address
type: string
ip_source:
description: Filter by IP source
type: string
type: object
style: deepObject
- description: 'Consolidated page parameter (deepObject style). Originally: page[number], page[size]'
examples:
page[number]=1&page[size]=20:
summary: Default pagination with first page and 20 records per page
value:
number: 1
size: 20
page[number]=1&page[size]=50:
summary: First page with 50 records per page
value:
number: 1
size: 50
page[number]=2&page[size]=20:
summary: Second page with 20 records per page
value:
number: 2
size: 20
page[number]=5&page[size]=100:
summary: Fifth page with 100 records per page
value:
number: 5
size: 100
explode: true
in: query
name: page
schema:
properties:
number:
default: 1
type: integer
size:
default: 20
maximum: 250
type: integer
type: object
style: deepObject
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccessIPAddressListResponseSchema'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/cloudflare-ip-list-sync_Errors'
description: Validation Error
summary: List all Access IP Addresses
tags:
- IP Addresses
x-latency-category: responsive
post:
operationId: CreateAccessIpAddress
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AccessIPAddressPOST'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccessIPAddressResponseSchema'
description: Successful Response
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/cloudflare-ip-list-sync_Errors'
description: Validation Error
summary: Create new Access IP Address
tags:
- IP Addresses
x-latency-category: responsive
/access_ip_address/{access_ip_address_id}:
delete:
operationId: DeleteAccessIpAddress
parameters:
- in: path
name: access_ip_address_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccessIPAddressResponseSchema'
description: Successful Response
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/cloudflare-ip-list-sync_Errors'
description: Resource not found
summary: Delete access IP address
tags:
- IP Addresses
x-latency-category: responsive
get:
operationId: GetAccessIpAddress
parameters:
- in: path
name: access_ip_address_id
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AccessIPAddressResponseSchema'
description: Successful Response
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/cloudflare-ip-list-sync_Errors'
description: Resource not found
summary: Retrieve an access IP address
tags:
- IP Addresses
x-latency-category: responsive
components:
schemas:
AccessIPAddressResponseSchema:
properties:
created_at:
format: date-time
title: Created At
type: string
description:
title: Description
type: string
id:
title: Id
type: string
ip_address:
title: Ip Address
type: string
source:
title: Source
type: string
status:
$ref: '#/components/schemas/CloudflareSyncStatus'
updated_at:
format: date-time
title: Updated At
type: string
user_id:
title: User Id
type: string
required:
- id
- ip_address
- source
- status
- user_id
title: AccessIPAddressResponseSchema
type: object
cloudflare-ip-list-sync_Errors:
properties:
errors:
items:
$ref: '#/components/schemas/cloudflare-ip-list-sync_Error'
type: array
type: object
AccessIPAddressPOST:
properties:
description:
title: Description
type: string
ip_address:
title: Ip Address
type: string
required:
- ip_address
title: AccessIPAddressPOST
type: object
AccessIPAddressListResponseSchema:
properties:
data:
items:
$ref: '#/components/schemas/AccessIPAddressResponseSchema'
title: Data
type: array
meta:
$ref: '#/components/schemas/cloudflare-ip-list-sync_PaginationMeta'
required:
- data
- meta
title: AccessIPAddressListResponseSchema
type: object
cloudflare-ip-list-sync_PaginationMeta:
properties:
page_number:
type: integer
page_size:
type: integer
total_pages:
type: integer
total_results:
type: integer
required:
- page_number
- page_size
- total_pages
- total_results
title: PaginationMeta
type: object
cloudflare-ip-list-sync_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
CloudflareSyncStatus:
description: An enumeration.
enum:
- pending
- added
title: CloudflareSyncStatus
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