api/python/telnyx-messaging-hosted-python/SKILL.md
Set up hosted SMS numbers, toll-free verification, and RCS messaging. Use when migrating numbers or enabling rich messaging features. This skill provides Python SDK examples.
npx skillsauth add team-telnyx/telnyx-toolkit telnyx-messaging-hosted-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 /messaging_hosted_number_orders
page = client.messaging_hosted_number_orders.list()
page = page.data[0]
print(page.id)
POST /messaging_hosted_number_orders
messaging_hosted_number_order = client.messaging_hosted_number_orders.create()
print(messaging_hosted_number_order.data)
GET /messaging_hosted_number_orders/{id}
messaging_hosted_number_order = client.messaging_hosted_number_orders.retrieve(
"id",
)
print(messaging_hosted_number_order.data)
Delete a messaging hosted number order and all associated phone numbers.
DELETE /messaging_hosted_number_orders/{id}
messaging_hosted_number_order = client.messaging_hosted_number_orders.delete(
"id",
)
print(messaging_hosted_number_order.data)
POST /messaging_hosted_number_orders/{id}/actions/file_upload
response = client.messaging_hosted_number_orders.actions.upload_file(
id="id",
)
print(response.data)
Validate the verification codes sent to the numbers of the hosted order.
POST /messaging_hosted_number_orders/{id}/validation_codes — Required: verification_codes
response = client.messaging_hosted_number_orders.validate_codes(
id="id",
verification_codes=[{
"code": "code",
"phone_number": "phone_number",
}],
)
print(response.data)
Create verification codes to validate numbers of the hosted order.
POST /messaging_hosted_number_orders/{id}/verification_codes — Required: phone_numbers, verification_method
response = client.messaging_hosted_number_orders.create_verification_codes(
id="id",
phone_numbers=["string"],
verification_method="sms",
)
print(response.data)
POST /messaging_hosted_number_orders/eligibility_numbers_check — Required: phone_numbers
response = client.messaging_hosted_number_orders.check_eligibility(
phone_numbers=["string"],
)
print(response.phone_numbers)
DELETE /messaging_hosted_numbers/{id}
messaging_hosted_number = client.messaging_hosted_numbers.delete(
"id",
)
print(messaging_hosted_number.data)
POST /messages/rcs — Required: agent_id, to, messaging_profile_id, agent_message
response = client.messages.rcs.send(
agent_id="Agent007",
agent_message={},
messaging_profile_id="messaging_profile_id",
to="+13125551234",
)
print(response.data)
GET /messaging/rcs/agents
page = client.messaging.rcs.agents.list()
page = page.data[0]
print(page.agent_id)
GET /messaging/rcs/agents/{id}
rcs_agent_response = client.messaging.rcs.agents.retrieve(
"id",
)
print(rcs_agent_response.data)
PATCH /messaging/rcs/agents/{id}
rcs_agent_response = client.messaging.rcs.agents.update(
id="id",
)
print(rcs_agent_response.data)
POST /messaging/rcs/bulk_capabilities — Required: agent_id, phone_numbers
response = client.messaging.rcs.list_bulk_capabilities(
agent_id="TestAgent",
phone_numbers=["+13125551234"],
)
print(response.data)
GET /messaging/rcs/capabilities/{agent_id}/{phone_number}
response = client.messaging.rcs.retrieve_capabilities(
phone_number="phone_number",
agent_id="agent_id",
)
print(response.data)
Adds a test phone number to an RCS agent for testing purposes.
PUT /messaging/rcs/test_number_invite/{id}/{phone_number}
response = client.messaging.rcs.invite_test_number(
phone_number="phone_number",
id="id",
)
print(response.data)
Generate a deeplink URL that can be used to start an RCS conversation with a specific agent.
GET /messages/rcs_deeplinks/{agent_id}
response = client.messages.rcs.generate_deeplink(
agent_id="agent_id",
)
print(response.data)
Get a list of previously-submitted tollfree verification requests
GET /messaging_tollfree/verification/requests
page = client.messaging_tollfree.verification.requests.list(
page=1,
page_size=1,
)
page = page.records[0]
print(page.id)
Submit a new tollfree verification request
POST /messaging_tollfree/verification/requests — Required: businessName, corporateWebsite, businessAddr1, businessCity, businessState, businessZip, businessContactFirstName, businessContactLastName, businessContactEmail, businessContactPhone, messageVolume, phoneNumbers, useCase, useCaseSummary, productionMessageContent, optInWorkflow, optInWorkflowImageURLs, additionalInformation, isvReseller
verification_request_egress = client.messaging_tollfree.verification.requests.create(
additional_information="additionalInformation",
business_addr1="600 Congress Avenue",
business_city="Austin",
business_contact_email="[email protected]",
business_contact_first_name="John",
business_contact_last_name="Doe",
business_contact_phone="+18005550100",
business_name="Telnyx LLC",
business_state="Texas",
business_zip="78701",
corporate_website="http://example.com",
isv_reseller="isvReseller",
message_volume="100,000",
opt_in_workflow="User signs into the Telnyx portal, enters a number and is prompted to select whether they want to use 2FA verification for security purposes. If they've opted in a confirmation message is sent out to the handset",
opt_in_workflow_image_urls=[{
"url": "https://telnyx.com/sign-up"
}, {
"url": "https://telnyx.com/company/data-privacy"
}],
phone_numbers=[{
"phone_number": "+18773554398"
}, {
"phone_number": "+18773554399"
}],
production_message_content="Your Telnyx OTP is XXXX",
use_case="2FA",
use_case_summary="This is a use case where Telnyx sends out 2FA codes to portal users to verify their identity in order to sign into the portal",
)
print(verification_request_egress.id)
Get a single verification request by its ID.
GET /messaging_tollfree/verification/requests/{id}
verification_request_status = client.messaging_tollfree.verification.requests.retrieve(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
print(verification_request_status.id)
Update an existing tollfree verification request.
PATCH /messaging_tollfree/verification/requests/{id} — Required: businessName, corporateWebsite, businessAddr1, businessCity, businessState, businessZip, businessContactFirstName, businessContactLastName, businessContactEmail, businessContactPhone, messageVolume, phoneNumbers, useCase, useCaseSummary, productionMessageContent, optInWorkflow, optInWorkflowImageURLs, additionalInformation, isvReseller
verification_request_egress = client.messaging_tollfree.verification.requests.update(
id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
additional_information="additionalInformation",
business_addr1="600 Congress Avenue",
business_city="Austin",
business_contact_email="[email protected]",
business_contact_first_name="John",
business_contact_last_name="Doe",
business_contact_phone="+18005550100",
business_name="Telnyx LLC",
business_state="Texas",
business_zip="78701",
corporate_website="http://example.com",
isv_reseller="isvReseller",
message_volume="100,000",
opt_in_workflow="User signs into the Telnyx portal, enters a number and is prompted to select whether they want to use 2FA verification for security purposes. If they've opted in a confirmation message is sent out to the handset",
opt_in_workflow_image_urls=[{
"url": "https://telnyx.com/sign-up"
}, {
"url": "https://telnyx.com/company/data-privacy"
}],
phone_numbers=[{
"phone_number": "+18773554398"
}, {
"phone_number": "+18773554399"
}],
production_message_content="Your Telnyx OTP is XXXX",
use_case="2FA",
use_case_summary="This is a use case where Telnyx sends out 2FA codes to portal users to verify their identity in order to sign into the portal",
)
print(verification_request_egress.id)
Delete a verification request
A request may only be deleted when when the request is in the "rejected" state.
DELETE /messaging_tollfree/verification/requests/{id}
client.messaging_tollfree.verification.requests.delete(
"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
)
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.