api/python/telnyx-numbers-compliance-python/SKILL.md
Manage regulatory requirements, number bundles, supporting documents, and verified numbers for compliance. This skill provides Python SDK examples.
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-numbers-compliance-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 allowed bundles.
GET /bundle_pricing/billing_bundles
page = client.bundle_pricing.billing_bundles.list()
page = page.data[0]
print(page.id)
Get a single bundle by ID.
GET /bundle_pricing/billing_bundles/{bundle_id}
billing_bundle = client.bundle_pricing.billing_bundles.retrieve(
bundle_id="8661948c-a386-4385-837f-af00f40f111a",
)
print(billing_bundle.data)
Get a paginated list of user bundles.
GET /bundle_pricing/user_bundles
page = client.bundle_pricing.user_bundles.list()
page = page.data[0]
print(page.id)
Creates multiple user bundles for the user.
POST /bundle_pricing/user_bundles/bulk
user_bundle = client.bundle_pricing.user_bundles.create()
print(user_bundle.data)
Returns all user bundles that aren't in use.
GET /bundle_pricing/user_bundles/unused
response = client.bundle_pricing.user_bundles.list_unused()
print(response.data)
Retrieves a user bundle by its ID.
GET /bundle_pricing/user_bundles/{user_bundle_id}
user_bundle = client.bundle_pricing.user_bundles.retrieve(
user_bundle_id="ca1d2263-d1f1-43ac-ba53-248e7a4bb26a",
)
print(user_bundle.data)
Deactivates a user bundle by its ID.
DELETE /bundle_pricing/user_bundles/{user_bundle_id}
response = client.bundle_pricing.user_bundles.deactivate(
user_bundle_id="ca1d2263-d1f1-43ac-ba53-248e7a4bb26a",
)
print(response.data)
Retrieves the resources of a user bundle by its ID.
GET /bundle_pricing/user_bundles/{user_bundle_id}/resources
response = client.bundle_pricing.user_bundles.list_resources(
user_bundle_id="ca1d2263-d1f1-43ac-ba53-248e7a4bb26a",
)
print(response.data)
List all documents links ordered by created_at descending.
GET /document_links
page = client.document_links.list()
page = page.data[0]
print(page.id)
List all documents ordered by created_at descending.
GET /documents
page = client.documents.list()
page = page.data[0]
print(page.id)
Upload a document.<br /><br />Uploaded files must be linked to a service within 30 minutes or they will be automatically deleted.
POST /documents
response = client.documents.upload_json(
document={},
)
print(response.data)
Retrieve a document.
GET /documents/{id}
document = client.documents.retrieve(
"6a09cdc3-8948-47f0-aa62-74ac943d6c58",
)
print(document.data)
Update a document.
PATCH /documents/{id}
document = client.documents.update(
document_id="6a09cdc3-8948-47f0-aa62-74ac943d6c58",
)
print(document.data)
Delete a document.<br /><br />A document can only be deleted if it's not linked to a service.
DELETE /documents/{id}
document = client.documents.delete(
"6a09cdc3-8948-47f0-aa62-74ac943d6c58",
)
print(document.data)
Download a document.
GET /documents/{id}/download
response = client.documents.download(
"6a09cdc3-8948-47f0-aa62-74ac943d6c58",
)
print(response)
content = response.read()
print(content)
Generates a temporary pre-signed URL that can be used to download the document directly from the storage backend without authentication.
GET /documents/{id}/download_link
response = client.documents.generate_download_link(
"550e8400-e29b-41d4-a716-446655440000",
)
print(response.data)
List all requirements with filtering, sorting, and pagination
GET /requirements
page = client.requirements.list()
page = page.data[0]
print(page.id)
Retrieve a document requirement record
GET /requirements/{id}
requirement = client.requirements.retrieve(
"a9dad8d5-fdbd-49d7-aa23-39bb08a5ebaa",
)
print(requirement.data)
List all requirement types ordered by created_at descending
GET /requirement_types
requirement_types = client.requirement_types.list()
print(requirement_types.data)
Retrieve a requirement type by id
GET /requirement_types/{id}
requirement_type = client.requirement_types.retrieve(
"a38c217a-8019-48f8-bff6-0fdd9939075b",
)
print(requirement_type.data)
GET /regulatory_requirements
regulatory_requirement = client.regulatory_requirements.retrieve()
print(regulatory_requirement.data)
GET /requirement_groups
requirement_groups = client.requirement_groups.list()
print(requirement_groups)
POST /requirement_groups — Required: country_code, phone_number_type, action
requirement_group = client.requirement_groups.create(
action="ordering",
country_code="US",
phone_number_type="local",
)
print(requirement_group.id)
GET /requirement_groups/{id}
requirement_group = client.requirement_groups.retrieve(
"id",
)
print(requirement_group.id)
PATCH /requirement_groups/{id}
requirement_group = client.requirement_groups.update(
id="id",
)
print(requirement_group.id)
DELETE /requirement_groups/{id}
requirement_group = client.requirement_groups.delete(
"id",
)
print(requirement_group.id)
POST /requirement_groups/{id}/submit_for_approval
requirement_group = client.requirement_groups.submit_for_approval(
"id",
)
print(requirement_group.id)
Gets a paginated list of Verified Numbers.
GET /verified_numbers
page = client.verified_numbers.list()
page = page.data[0]
print(page.phone_number)
Initiates phone number verification procedure.
POST /verified_numbers — Required: phone_number, verification_method
verified_number = client.verified_numbers.create(
phone_number="+15551234567",
verification_method="sms",
)
print(verified_number.phone_number)
GET /verified_numbers/{phone_number}
verified_number_data_wrapper = client.verified_numbers.retrieve(
"+15551234567",
)
print(verified_number_data_wrapper.data)
DELETE /verified_numbers/{phone_number}
verified_number_data_wrapper = client.verified_numbers.delete(
"+15551234567",
)
print(verified_number_data_wrapper.data)
POST /verified_numbers/{phone_number}/actions/verify — Required: verification_code
verified_number_data_wrapper = client.verified_numbers.actions.submit_verification_code(
phone_number="+15551234567",
verification_code="123456",
)
print(verified_number_data_wrapper.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.