api/python/telnyx-sip-python/SKILL.md
Configure SIP trunking connections and outbound voice profiles. Use when connecting PBX systems or managing SIP infrastructure. This skill provides Python SDK examples.
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-sip-pythonInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
pip install telnyx
import os
from telnyx import Telnyx
client = Telnyx(
api_key=os.environ.get("TELNYX_API_KEY"), # This is the default and can be omitted
)
All examples below assume client is already initialized as shown above.
Get all outbound voice profiles belonging to the user that match the given filters.
GET /outbound_voice_profiles
page = client.outbound_voice_profiles.list()
page = page.data[0]
print(page.id)
Create an outbound voice profile.
POST /outbound_voice_profiles — Required: name
outbound_voice_profile = client.outbound_voice_profiles.create(
name="office",
)
print(outbound_voice_profile.data)
Retrieves the details of an existing outbound voice profile.
GET /outbound_voice_profiles/{id}
outbound_voice_profile = client.outbound_voice_profiles.retrieve(
"1293384261075731499",
)
print(outbound_voice_profile.data)
PATCH /outbound_voice_profiles/{id} — Required: name
outbound_voice_profile = client.outbound_voice_profiles.update(
id="1293384261075731499",
name="office",
)
print(outbound_voice_profile.data)
Deletes an existing outbound voice profile.
DELETE /outbound_voice_profiles/{id}
outbound_voice_profile = client.outbound_voice_profiles.delete(
"1293384261075731499",
)
print(outbound_voice_profile.data)
Returns a list of your connections irrespective of type.
GET /connections
page = client.connections.list()
page = page.data[0]
print(page.id)
Retrieves the high-level details of an existing connection.
GET /connections/{id}
connection = client.connections.retrieve(
"id",
)
print(connection.data)
Returns a list of your credential connections.
GET /credential_connections
page = client.credential_connections.list()
page = page.data[0]
print(page.id)
Creates a credential connection.
POST /credential_connections — Required: user_name, password, connection_name
credential_connection = client.credential_connections.create(
connection_name="my name",
password="my123secure456password789",
user_name="myusername123",
)
print(credential_connection.data)
Retrieves the details of an existing credential connection.
GET /credential_connections/{id}
credential_connection = client.credential_connections.retrieve(
"id",
)
print(credential_connection.data)
Updates settings of an existing credential connection.
PATCH /credential_connections/{id}
credential_connection = client.credential_connections.update(
id="id",
)
print(credential_connection.data)
Deletes an existing credential connection.
DELETE /credential_connections/{id}
credential_connection = client.credential_connections.delete(
"id",
)
print(credential_connection.data)
Checks the registration_status for a credential connection, (registration_status) as well as the timestamp for the last SIP registration event (registration_status_updated_at)
POST /credential_connections/{id}/actions/check_registration_status
response = client.credential_connections.actions.check_registration_status(
"id",
)
print(response.data)
Get all IPs belonging to the user that match the given filters.
GET /ips
page = client.ips.list()
page = page.data[0]
print(page.id)
Create a new IP object.
POST /ips — Required: ip_address
ip = client.ips.create(
ip_address="192.168.0.0",
)
print(ip.data)
Return the details regarding a specific IP.
GET /ips/{id}
ip = client.ips.retrieve(
"6a09cdc3-8948-47f0-aa62-74ac943d6c58",
)
print(ip.data)
Update the details of a specific IP.
PATCH /ips/{id} — Required: ip_address
ip = client.ips.update(
id="6a09cdc3-8948-47f0-aa62-74ac943d6c58",
ip_address="192.168.0.0",
)
print(ip.data)
Delete an IP.
DELETE /ips/{id}
ip = client.ips.delete(
"6a09cdc3-8948-47f0-aa62-74ac943d6c58",
)
print(ip.data)
Returns a list of your IP connections.
GET /ip_connections
page = client.ip_connections.list()
page = page.data[0]
print(page.id)
Creates an IP connection.
POST /ip_connections
ip_connection = client.ip_connections.create()
print(ip_connection.data)
Retrieves the details of an existing ip connection.
GET /ip_connections/{id}
ip_connection = client.ip_connections.retrieve(
"id",
)
print(ip_connection.data)
Updates settings of an existing IP connection.
PATCH /ip_connections/{id}
ip_connection = client.ip_connections.update(
id="id",
)
print(ip_connection.data)
Deletes an existing IP connection.
DELETE /ip_connections/{id}
ip_connection = client.ip_connections.delete(
"id",
)
print(ip_connection.data)
Get all FQDNs belonging to the user that match the given filters.
GET /fqdns
page = client.fqdns.list()
page = page.data[0]
print(page.id)
Create a new FQDN object.
POST /fqdns — Required: fqdn, dns_record_type, connection_id
fqdn = client.fqdns.create(
connection_id="1516447646313612565",
dns_record_type="a",
fqdn="example.com",
)
print(fqdn.data)
Return the details regarding a specific FQDN.
GET /fqdns/{id}
fqdn = client.fqdns.retrieve(
"id",
)
print(fqdn.data)
Update the details of a specific FQDN.
PATCH /fqdns/{id}
fqdn = client.fqdns.update(
id="id",
)
print(fqdn.data)
Delete an FQDN.
DELETE /fqdns/{id}
fqdn = client.fqdns.delete(
"id",
)
print(fqdn.data)
Returns a list of your FQDN connections.
GET /fqdn_connections
page = client.fqdn_connections.list()
page = page.data[0]
print(page.id)
Creates a FQDN connection.
POST /fqdn_connections — Required: connection_name
fqdn_connection = client.fqdn_connections.create(
connection_name="string",
)
print(fqdn_connection.data)
Retrieves the details of an existing FQDN connection.
GET /fqdn_connections/{id}
fqdn_connection = client.fqdn_connections.retrieve(
"id",
)
print(fqdn_connection.data)
Updates settings of an existing FQDN connection.
PATCH /fqdn_connections/{id}
fqdn_connection = client.fqdn_connections.update(
id="id",
)
print(fqdn_connection.data)
Deletes an FQDN connection.
DELETE /fqdn_connections/{id}
fqdn_connection = client.fqdn_connections.delete(
"id",
)
print(fqdn_connection.data)
GET /v2/mobile_voice_connections
page = client.mobile_voice_connections.list()
page = page.data[0]
print(page.id)
POST /v2/mobile_voice_connections
mobile_voice_connection = client.mobile_voice_connections.create()
print(mobile_voice_connection.data)
GET /v2/mobile_voice_connections/{id}
mobile_voice_connection = client.mobile_voice_connections.retrieve(
"id",
)
print(mobile_voice_connection.data)
PATCH /v2/mobile_voice_connections/{id}
mobile_voice_connection = client.mobile_voice_connections.update(
id="id",
)
print(mobile_voice_connection.data)
DELETE /v2/mobile_voice_connections/{id}
mobile_voice_connection = client.mobile_voice_connections.delete(
"id",
)
print(mobile_voice_connection.data)
tools
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. High-level reactive API with automatic lifecycle management, CallKit/ConnectionService integration, and push notifications. Use for mobile VoIP apps with minimal setup.
tools
Build browser-based VoIP calling apps using Telnyx WebRTC JavaScript SDK. Covers authentication, voice calls, events, debugging, call quality metrics, and AI Agent integration. Use for web-based real-time communication.
tools
Build VoIP calling apps on iOS using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, CallKit integration, PushKit/APNS push notifications, call quality metrics, and AI Agent integration. Use when implementing real-time voice communication on iOS.
tools
Build cross-platform VoIP calling apps with Flutter using Telnyx WebRTC SDK. Covers authentication, making/receiving calls, push notifications (FCM + APNS), call quality metrics, and AI Agent integration. Works on Android, iOS, and Web.