{"id":"c25704ea-67a5-4c69-85b4-20228975c9c8","shortId":"GKBeC4","kind":"skill","title":"telnyx-messaging-hosted-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Messaging Hosted - Python\n\n## Installation\n\n```bash\npip install telnyx\n```\n\n## Setup\n\n```python\nimport os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n    api_key=os.environ.get(\"TELNYX_API_KEY\"),  # This is the default and can be omitted\n)\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```python\nimport telnyx\n\ntry:\n    result = client.messages.send(to=\"+13125550001\", from_=\"+13125550002\", text=\"Hello\")\nexcept telnyx.APIConnectionError:\n    print(\"Network error — check connectivity and retry\")\nexcept telnyx.RateLimitError:\n    # 429: rate limited — wait and retry with exponential backoff\n    import time\n    time.sleep(1)  # Check Retry-After header for actual delay\nexcept telnyx.APIStatusError as e:\n    print(f\"API error {e.status_code}: {e.message}\")\n    if e.status_code == 422:\n        print(\"Validation error — check required fields and formats\")\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Phone numbers** must be in E.164 format (e.g., `+13125550001`). Include the `+` prefix and country code. No spaces, dashes, or parentheses.\n- **Pagination:** List methods return an auto-paginating iterator. Use `for item in page_result:` to iterate through all pages automatically.\n\n## Send an RCS message\n\n`POST /messages/rcs` — Required: `agent_id`, `to`, `messaging_profile_id`, `agent_message`\n\nOptional: `mms_fallback` (object), `sms_fallback` (object), `type` (enum: RCS), `webhook_url` (url)\n\n```python\nresponse = client.messages.rcs.send(\n    agent_id=\"Agent007\",\n    agent_message={},\n    messaging_profile_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    to=\"+13125551234\",\n)\nprint(response.data)\n```\n\nReturns: `body` (object), `direction` (string), `encoding` (string), `from` (object), `id` (string), `messaging_profile_id` (string), `organization_id` (string), `received_at` (date-time), `record_type` (string), `to` (array[object]), `type` (string), `wait_seconds` (float)\n\n## Generate RCS deeplink\n\nGenerate a deeplink URL that can be used to start an RCS conversation with a specific agent.\n\n`GET /messages/rcs/deeplinks/{agent_id}`\n\n```python\nresponse = client.messages.rcs.generate_deeplink(\n    agent_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `url` (string)\n\n## List all RCS agents\n\n`GET /messaging/rcs/agents`\n\n```python\npage = client.messaging.rcs.agents.list()\npage = page.data[0]\nprint(page.agent_id)\n```\n\nReturns: `agent_id` (string), `agent_name` (string), `created_at` (date-time), `enabled` (boolean), `profile_id` (uuid), `updated_at` (date-time), `user_id` (string), `webhook_failover_url` (url), `webhook_url` (url)\n\n## Retrieve an RCS agent\n\n`GET /messaging/rcs/agents/{id}`\n\n```python\nrcs_agent_response = client.messaging.rcs.agents.retrieve(\n    \"id\",\n)\nprint(rcs_agent_response.data)\n```\n\nReturns: `agent_id` (string), `agent_name` (string), `created_at` (date-time), `enabled` (boolean), `profile_id` (uuid), `updated_at` (date-time), `user_id` (string), `webhook_failover_url` (url), `webhook_url` (url)\n\n## Modify an RCS agent\n\n`PATCH /messaging/rcs/agents/{id}`\n\nOptional: `profile_id` (uuid), `webhook_failover_url` (url), `webhook_url` (url)\n\n```python\nrcs_agent_response = client.messaging.rcs.agents.update(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(rcs_agent_response.data)\n```\n\nReturns: `agent_id` (string), `agent_name` (string), `created_at` (date-time), `enabled` (boolean), `profile_id` (uuid), `updated_at` (date-time), `user_id` (string), `webhook_failover_url` (url), `webhook_url` (url)\n\n## Check RCS capabilities (batch)\n\n`POST /messaging/rcs/bulk_capabilities` — Required: `agent_id`, `phone_numbers`\n\n```python\nresponse = client.messaging.rcs.list_bulk_capabilities(\n    agent_id=\"TestAgent\",\n    phone_numbers=[\"+13125551234\"],\n)\nprint(response.data)\n```\n\nReturns: `agent_id` (string), `agent_name` (string), `features` (array[string]), `phone_number` (string), `record_type` (enum: rcs.capabilities)\n\n## Check RCS capabilities\n\n`GET /messaging/rcs/capabilities/{agent_id}/{phone_number}`\n\n```python\nresponse = client.messaging.rcs.retrieve_capabilities(\n    phone_number=\"+13125550001\",\n    agent_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `agent_id` (string), `agent_name` (string), `features` (array[string]), `phone_number` (string), `record_type` (enum: rcs.capabilities)\n\n## Add RCS test number\n\nAdds a test phone number to an RCS agent for testing purposes.\n\n`PUT /messaging/rcs/test_number_invite/{id}/{phone_number}`\n\n```python\nresponse = client.messaging.rcs.invite_test_number(\n    phone_number=\"+13125550001\",\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `agent_id` (string), `phone_number` (string), `record_type` (enum: rcs.test_number_invite), `status` (string)\n\n## List messaging hosted number orders\n\n`GET /messaging_hosted_number_orders`\n\n```python\npage = client.messaging_hosted_number_orders.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `id` (uuid), `messaging_profile_id` (string | null), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: carrier_rejected, compliance_review_failed, deleted, failed, incomplete_documentation, incorrect_billing_information, ineligible_carrier, loa_file_invalid, loa_file_successful, pending, provisioning, successful)\n\n## Create a messaging hosted number order\n\n`POST /messaging_hosted_number_orders`\n\nOptional: `messaging_profile_id` (string), `phone_numbers` (array[string])\n\n```python\nmessaging_hosted_number_order = client.messaging_hosted_number_orders.create()\nprint(messaging_hosted_number_order.data)\n```\n\nReturns: `id` (uuid), `messaging_profile_id` (string | null), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: carrier_rejected, compliance_review_failed, deleted, failed, incomplete_documentation, incorrect_billing_information, ineligible_carrier, loa_file_invalid, loa_file_successful, pending, provisioning, successful)\n\n## Check hosted messaging eligibility\n\n`POST /messaging_hosted_number_orders/eligibility_numbers_check` — Required: `phone_numbers`\n\n```python\nresponse = client.messaging_hosted_number_orders.check_eligibility(\n    phone_numbers=[\"string\"],\n)\nprint(response.phone_numbers)\n```\n\nReturns: `phone_numbers` (array[object])\n\n## Retrieve a messaging hosted number order\n\n`GET /messaging_hosted_number_orders/{id}`\n\n```python\nmessaging_hosted_number_order = client.messaging_hosted_number_orders.retrieve(\n    \"id\",\n)\nprint(messaging_hosted_number_order.data)\n```\n\nReturns: `id` (uuid), `messaging_profile_id` (string | null), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: carrier_rejected, compliance_review_failed, deleted, failed, incomplete_documentation, incorrect_billing_information, ineligible_carrier, loa_file_invalid, loa_file_successful, pending, provisioning, successful)\n\n## Delete a messaging hosted number order\n\nDelete a messaging hosted number order and all associated phone numbers.\n\n`DELETE /messaging_hosted_number_orders/{id}`\n\n```python\nmessaging_hosted_number_order = client.messaging_hosted_number_orders.delete(\n    \"id\",\n)\nprint(messaging_hosted_number_order.data)\n```\n\nReturns: `id` (uuid), `messaging_profile_id` (string | null), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: carrier_rejected, compliance_review_failed, deleted, failed, incomplete_documentation, incorrect_billing_information, ineligible_carrier, loa_file_invalid, loa_file_successful, pending, provisioning, successful)\n\n## Upload hosted number document\n\n`POST /messaging_hosted_number_orders/{id}/actions/file_upload`\n\n```python\nresponse = client.messaging_hosted_number_orders.actions.upload_file(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `id` (uuid), `messaging_profile_id` (string | null), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: carrier_rejected, compliance_review_failed, deleted, failed, incomplete_documentation, incorrect_billing_information, ineligible_carrier, loa_file_invalid, loa_file_successful, pending, provisioning, successful)\n\n## Validate hosted number codes\n\nValidate the verification codes sent to the numbers of the hosted order. The verification codes must be created in the verification codes endpoint.\n\n`POST /messaging_hosted_number_orders/{id}/validation_codes` — Required: `verification_codes`\n\n```python\nresponse = client.messaging_hosted_number_orders.validate_codes(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    verification_codes=[{\n        \"code\": \"code\",\n        \"phone_number\": \"phone_number\",\n    }],\n)\nprint(response.data)\n```\n\nReturns: `order_id` (uuid), `phone_numbers` (array[object])\n\n## Create hosted number verification codes\n\nCreate verification codes to validate numbers of the hosted order. The verification codes will be sent to the numbers of the hosted order.\n\n`POST /messaging_hosted_number_orders/{id}/verification_codes` — Required: `phone_numbers`, `verification_method`\n\n```python\nresponse = client.messaging_hosted_number_orders.create_verification_codes(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    phone_numbers=[\"string\"],\n    verification_method=\"sms\",\n)\nprint(response.data)\n```\n\nReturns: `error` (string), `phone_number` (string), `type` (enum: sms, call), `verification_code_id` (uuid)\n\n## Delete a messaging hosted number\n\n`DELETE /messaging_hosted_numbers/{id}`\n\n```python\nmessaging_hosted_number = client.messaging_hosted_numbers.delete(\n    \"id\",\n)\nprint(messaging_hosted_number.data)\n```\n\nReturns: `id` (uuid), `messaging_profile_id` (string | null), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: carrier_rejected, compliance_review_failed, deleted, failed, incomplete_documentation, incorrect_billing_information, ineligible_carrier, loa_file_invalid, loa_file_successful, pending, provisioning, successful)\n\n## List Verification Requests\n\nGet a list of previously-submitted tollfree verification requests\n\n`GET /messaging_tollfree/verification/requests`\n\n```python\npage = client.messaging_tollfree.verification.requests.list(\n    page=1,\n    page_size=1,\n)\npage = page.records[0]\nprint(page.id)\n```\n\nReturns: `records` (array[object]), `total_records` (integer)\n\n## Submit Verification Request\n\nSubmit a new tollfree verification request\n\n`POST /messaging_tollfree/verification/requests` — Required: `businessName`, `corporateWebsite`, `businessAddr1`, `businessCity`, `businessState`, `businessZip`, `businessContactFirstName`, `businessContactLastName`, `businessContactEmail`, `businessContactPhone`, `messageVolume`, `phoneNumbers`, `useCase`, `useCaseSummary`, `productionMessageContent`, `optInWorkflow`, `optInWorkflowImageURLs`, `additionalInformation`\n\nOptional: `ageGatedContent` (boolean), `businessAddr2` (string), `businessRegistrationCountry` (string | null), `businessRegistrationNumber` (string | null), `businessRegistrationType` (string | null), `campaignVerifyAuthorizationToken` (string | null), `doingBusinessAs` (string | null), `entityType` (object), `helpMessageResponse` (string | null), `isvReseller` (string | null), `optInConfirmationResponse` (string | null), `optInKeywords` (string | null), `privacyPolicyURL` (string | null), `termsAndConditionURL` (string | null), `webhookUrl` (string)\n\n```python\nverification_request_egress = client.messaging_tollfree.verification.requests.create(\n    additional_information=\"additionalInformation\",\n    business_addr1=\"600 Congress Avenue\",\n    business_city=\"Austin\",\n    business_contact_email=\"email@example.com\",\n    business_contact_first_name=\"John\",\n    business_contact_last_name=\"Doe\",\n    business_contact_phone=\"+18005550100\",\n    business_name=\"Telnyx LLC\",\n    business_state=\"Texas\",\n    business_zip=\"78701\",\n    corporate_website=\"http://example.com\",\n    message_volume=\"100,000\",\n    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\",\n    opt_in_workflow_image_urls=[{\n        \"url\": \"https://telnyx.com/sign-up\"\n    }, {\n        \"url\": \"https://telnyx.com/company/data-privacy\"\n    }],\n    phone_numbers=[{\n        \"phone_number\": \"+18773554398\"\n    }, {\n        \"phone_number\": \"+18773554399\"\n    }],\n    production_message_content=\"Your Telnyx OTP is XXXX\",\n    use_case=\"2FA\",\n    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\",\n)\nprint(verification_request_egress.id)\n```\n\nReturns: `additionalInformation` (string), `ageGatedContent` (boolean), `businessAddr1` (string), `businessAddr2` (string), `businessCity` (string), `businessContactEmail` (string), `businessContactFirstName` (string), `businessContactLastName` (string), `businessContactPhone` (string), `businessName` (string), `businessRegistrationCountry` (string), `businessRegistrationNumber` (string), `businessRegistrationType` (string), `businessState` (string), `businessZip` (string), `campaignVerifyAuthorizationToken` (string | null), `corporateWebsite` (string), `doingBusinessAs` (string), `entityType` (object), `helpMessageResponse` (string), `id` (uuid), `isvReseller` (string), `messageVolume` (object), `optInConfirmationResponse` (string), `optInKeywords` (string), `optInWorkflow` (string), `optInWorkflowImageURLs` (array[object]), `phoneNumbers` (array[object]), `privacyPolicyURL` (string), `productionMessageContent` (string), `termsAndConditionURL` (string), `useCase` (object), `useCaseSummary` (string), `verificationRequestId` (string), `verificationStatus` (object), `webhookUrl` (string)\n\n## Get Verification Request\n\nGet a single verification request by its ID.\n\n`GET /messaging_tollfree/verification/requests/{id}`\n\n```python\nverification_request_status = client.messaging_tollfree.verification.requests.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(verification_request_status.id)\n```\n\nReturns: `additionalInformation` (string), `ageGatedContent` (boolean), `businessAddr1` (string), `businessAddr2` (string), `businessCity` (string), `businessContactEmail` (string), `businessContactFirstName` (string), `businessContactLastName` (string), `businessContactPhone` (string), `businessName` (string), `businessRegistrationCountry` (string), `businessRegistrationNumber` (string), `businessRegistrationType` (string), `businessState` (string), `businessZip` (string), `campaignVerifyAuthorizationToken` (string | null), `corporateWebsite` (string), `createdAt` (date-time), `doingBusinessAs` (string), `entityType` (object), `helpMessageResponse` (string), `id` (uuid), `isvReseller` (string), `messageVolume` (object), `optInConfirmationResponse` (string), `optInKeywords` (string), `optInWorkflow` (string), `optInWorkflowImageURLs` (array[object]), `phoneNumbers` (array[object]), `privacyPolicyURL` (string), `productionMessageContent` (string), `reason` (string), `termsAndConditionURL` (string), `updatedAt` (date-time), `useCase` (object), `useCaseSummary` (string), `verificationStatus` (object), `webhookUrl` (string)\n\n## Update Verification Request\n\nUpdate an existing tollfree verification request. This is particularly useful when there are pending customer actions to be taken.\n\n`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`\n\nOptional: `ageGatedContent` (boolean), `businessAddr2` (string), `businessRegistrationCountry` (string | null), `businessRegistrationNumber` (string | null), `businessRegistrationType` (string | null), `campaignVerifyAuthorizationToken` (string | null), `doingBusinessAs` (string | null), `entityType` (object), `helpMessageResponse` (string | null), `isvReseller` (string | null), `optInConfirmationResponse` (string | null), `optInKeywords` (string | null), `privacyPolicyURL` (string | null), `termsAndConditionURL` (string | null), `webhookUrl` (string)\n\n```python\nverification_request_egress = client.messaging_tollfree.verification.requests.update(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    additional_information=\"additionalInformation\",\n    business_addr1=\"600 Congress Avenue\",\n    business_city=\"Austin\",\n    business_contact_email=\"email@example.com\",\n    business_contact_first_name=\"John\",\n    business_contact_last_name=\"Doe\",\n    business_contact_phone=\"+18005550100\",\n    business_name=\"Telnyx LLC\",\n    business_state=\"Texas\",\n    business_zip=\"78701\",\n    corporate_website=\"http://example.com\",\n    message_volume=\"100,000\",\n    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\",\n    opt_in_workflow_image_urls=[{\n        \"url\": \"https://telnyx.com/sign-up\"\n    }, {\n        \"url\": \"https://telnyx.com/company/data-privacy\"\n    }],\n    phone_numbers=[{\n        \"phone_number\": \"+18773554398\"\n    }, {\n        \"phone_number\": \"+18773554399\"\n    }],\n    production_message_content=\"Your Telnyx OTP is XXXX\",\n    use_case=\"2FA\",\n    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\",\n)\nprint(verification_request_egress.id)\n```\n\nReturns: `additionalInformation` (string), `ageGatedContent` (boolean), `businessAddr1` (string), `businessAddr2` (string), `businessCity` (string), `businessContactEmail` (string), `businessContactFirstName` (string), `businessContactLastName` (string), `businessContactPhone` (string), `businessName` (string), `businessRegistrationCountry` (string), `businessRegistrationNumber` (string), `businessRegistrationType` (string), `businessState` (string), `businessZip` (string), `campaignVerifyAuthorizationToken` (string | null), `corporateWebsite` (string), `doingBusinessAs` (string), `entityType` (object), `helpMessageResponse` (string), `id` (uuid), `isvReseller` (string), `messageVolume` (object), `optInConfirmationResponse` (string), `optInKeywords` (string), `optInWorkflow` (string), `optInWorkflowImageURLs` (array[object]), `phoneNumbers` (array[object]), `privacyPolicyURL` (string), `productionMessageContent` (string), `termsAndConditionURL` (string), `useCase` (object), `useCaseSummary` (string), `verificationRequestId` (string), `verificationStatus` (object), `webhookUrl` (string)\n\n## Delete Verification Request\n\nDelete a verification request\n\nA request may only be deleted when when the request is in the \"rejected\" state. * `HTTP 200`: request successfully deleted\n* `HTTP 400`: request exists but can't be deleted (i.e. not rejected)\n* `HTTP 404`: request unknown or already deleted\n\n`DELETE /messaging_tollfree/verification/requests/{id}`\n\n```python\nclient.messaging_tollfree.verification.requests.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\n```\n\n## Get Verification Request Status History\n\nGet the history of status changes for a verification request. Returns a paginated list of historical status changes including the reason for each change and when it occurred.\n\n`GET /messaging_tollfree/verification/requests/{id}/status_history`\n\n```python\nresponse = client.messaging_tollfree.verification.requests.retrieve_status_history(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    page_number=1,\n    page_size=1,\n)\nprint(response.records)\n```\n\nReturns: `records` (array[object]), `total_records` (integer)\n\n## List messaging URL domains\n\n`GET /messaging_url_domains`\n\n```python\npage = client.messaging_url_domains.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `id` (string), `record_type` (string), `url_domain` (string), `use_case` (string)","tags":["telnyx","messaging","hosted","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-messaging-hosted-python","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-messaging-hosted-python","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (20,553 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T06:54:39.153Z","embedding":null,"createdAt":"2026-04-18T22:06:42.271Z","updatedAt":"2026-04-22T06:54:39.153Z","lastSeenAt":"2026-04-22T06:54:39.153Z","tsv":"'+13125550001':83,180,551,607 '+13125550002':85 '+13125551234':259,516 '+18005550100':1294,1728 '+18773554398':1370,1804 '+18773554399':1373,1807 '/actions/file_upload':910 '/company/data-privacy':1365,1799 '/messages/rcs':218 '/messages/rcs/deeplinks':317 '/messaging/rcs/agents':342,389,436 '/messaging/rcs/bulk_capabilities':500 '/messaging/rcs/capabilities':540 '/messaging/rcs/test_number_invite':596 '/messaging_hosted_number_orders':638,694,783,852,908,992,1056 '/messaging_hosted_number_orders/eligibility_numbers_check':757 '/messaging_hosted_numbers':1104 '/messaging_tollfree/verification/requests':1168,1199,1503,1625,1972,2016 '/messaging_url_domains':2051 '/sign-up':1361,1795 '/status_history':2018 '/validation_codes':994 '/verification_codes':1058 '0':348,644,1179,2057 '000':1311,1745 '1':111,1173,1176,2033,2036 '100':1310,1744 '182bd5e5':1511,1695,1977,2026 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':1510,1694,1976,2025 '200':1948 '2fa':1334,1384,1397,1768,1818,1831 '400':1953 '401':69,146 '403':150 '404':153,1965 '41d4':255,329,458,557,612,919,1006,1073 '422':65,134,157 '429':62,99,163 '446655440000':257,331,460,559,614,921,1008,1075 '4fe4':1513,1697,1979,2028 '550e8400':252,326,455,554,609,916,1003,1070 '600':1271,1705 '6e1a':1512,1696,1978,2027 '78701':1304,1738 'a716':256,330,459,558,613,920,1007,1074 'a799':1514,1698,1980,2029 'aa6d9a6ab26e':1515,1699,1981,2030 'action':1620 'actual':118 'add':579,583 'addit':1266,1700 'additionalinform':1218,1268,1416,1519,1645,1702,1850 'addr1':1270,1704 'agegatedcont':1220,1418,1521,1647,1852 'agent':220,226,244,247,315,318,324,340,353,356,387,393,400,403,434,451,464,467,502,511,520,523,541,552,563,566,591,618 'agent007':246 'alreadi':45,1969 'alway':70 'api':25,29,53,126,148 'array':289,527,570,657,702,722,774,804,873,934,1025,1124,1184,1470,1473,1577,1580,1904,1907,2041 'associ':848 'assum':42 'austin':1276,1710 'authent':67 'auto':198 'auto-pagin':197 'automat':212 'avenu':1273,1707 'backoff':107,169 'bash':11 'batch':498 'bill':674,739,821,890,951,1141 'bodi':263 'boolean':365,412,476,1221,1419,1522,1648,1853 'bulk':509 'busi':1269,1274,1277,1281,1286,1291,1295,1299,1302,1703,1708,1711,1715,1720,1725,1729,1733,1736 'businessaddr1':1203,1420,1523,1630,1854 'businessaddr2':1222,1422,1525,1649,1856 'businessc':1204,1424,1527,1631,1858 'businesscontactemail':1209,1426,1529,1636,1860 'businesscontactfirstnam':1207,1428,1531,1634,1862 'businesscontactlastnam':1208,1430,1533,1635,1864 'businesscontactphon':1210,1432,1535,1637,1866 'businessnam':1201,1434,1537,1628,1868 'businessregistrationcountri':1224,1436,1539,1651,1870 'businessregistrationnumb':1227,1438,1541,1654,1872 'businessregistrationtyp':1230,1440,1543,1657,1874 'businessst':1205,1442,1545,1632,1876 'businesszip':1206,1444,1547,1633,1878 'call':54,1093 'campaignverifyauthorizationtoken':1233,1446,1549,1660,1880 'capabl':497,510,538,548 'carrier':664,677,729,742,811,824,880,893,941,954,1131,1144 'case':1383,1386,1392,1817,1820,1826,2070 'chang':1992,2004,2010 'check':93,112,138,160,495,536,752 'citi':1275,1709 'client':23,43 'client.messages.rcs.generate':322 'client.messages.rcs.send':243 'client.messages.send':81 'client.messaging.rcs.agents.list':345 'client.messaging.rcs.agents.retrieve':395 'client.messaging.rcs.agents.update':453 'client.messaging.rcs.invite':602 'client.messaging.rcs.list':508 'client.messaging.rcs.retrieve':547 'client.messaging_hosted_number_orders.actions.upload':913 'client.messaging_hosted_number_orders.check':763 'client.messaging_hosted_number_orders.create':709,1066 'client.messaging_hosted_number_orders.delete':859 'client.messaging_hosted_number_orders.list':641 'client.messaging_hosted_number_orders.retrieve':790 'client.messaging_hosted_number_orders.validate':1000 'client.messaging_hosted_numbers.delete':1110 'client.messaging_tollfree.verification.requests.create':1265 'client.messaging_tollfree.verification.requests.delete':1975 'client.messaging_tollfree.verification.requests.list':1171 'client.messaging_tollfree.verification.requests.retrieve':1509,2021 'client.messaging_tollfree.verification.requests.update':1692 'client.messaging_url_domains.list':2054 'code':75,129,133,145,186,967,971,982,989,997,1001,1010,1011,1012,1031,1034,1044,1068,1095,1398,1832 'common':143 'complianc':666,731,813,882,943,1133 'confirm':1345,1779 'congress':1272,1706 'connect':94 'contact':1278,1282,1287,1292,1712,1716,1721,1726 'content':1376,1810 'convers':311 'corpor':1305,1739 'corporatewebsit':1202,1449,1552,1629,1883 'countri':185 'creat':359,406,470,687,985,1027,1032 'createdat':1554 'custom':1619 'dash':189 'date':283,362,372,409,419,473,483,1556,1592 'date-tim':282,361,371,408,418,472,482,1555,1591 'deeplink':298,301,323 'default':34 'delay':119 'delet':669,734,816,834,840,851,885,946,1098,1103,1136,1925,1928,1937,1951,1960,1970,1971 'direct':265 'document':672,737,819,888,906,949,1139 'doe':1290,1724 'doingbusinessa':1236,1451,1558,1663,1885 'domain':2049,2067 'e':123 'e.164':177 'e.g':179 'e.message':130 'e.status':128,132 'e29b':254,328,457,556,611,918,1005,1072 'e29b-41d4-a716':253,327,456,555,610,917,1004,1071 'egress':1264,1691 'elig':755,764 'email':1279,1713 'email@example.com':1280,1714 'enabl':364,411,475 'encod':267 'endpoint':990 'enter':1321,1755 'entitytyp':1239,1453,1560,1666,1887 'enum':236,534,577,626,663,728,810,879,940,1091,1130 'error':50,59,64,68,72,92,127,137,144,159,1085 'exampl':40 'example.com':1307,1741 'except':88,97,120 'exist':1607,1955 'exponenti':106,168 'f':125 'fail':56,668,670,733,735,815,817,884,886,945,947,1135,1137 'failov':378,425,443,489 'fallback':230,233 'featur':526,569 'field':140,161 'file':679,682,744,747,826,829,895,898,914,956,959,1146,1149 'first':1283,1717 'float':295 'format':142,162,178 'found':156 'generat':296,299 'get':316,341,388,539,637,782,1157,1167,1491,1494,1502,1982,1987,2015,2050 'handl':51,71 'handset':1352,1786 'header':116 'hello':87 'helpmessagerespons':1241,1455,1562,1668,1889 'histor':2002 'histori':1986,1989,2023 'host':4,8,634,690,706,753,779,787,837,843,856,904,965,978,1028,1040,1053,1101,1108 'http':1947,1952,1964 'i.e':1961 'id':221,225,245,251,271,275,278,319,325,351,354,367,375,390,396,401,414,422,437,440,454,465,478,486,503,512,521,542,553,564,597,608,619,648,652,698,713,717,784,791,795,799,853,860,864,868,909,915,925,929,993,1002,1021,1057,1069,1096,1105,1111,1115,1119,1457,1501,1504,1564,1626,1693,1891,1973,2017,2024,2061 'ident':1405,1839 'imag':1356,1790 'import':17,21,77,108,170 'includ':181,2005 'incomplet':671,736,818,887,948,1138 'incorrect':673,738,820,889,950,1140 'inelig':676,741,823,892,953,1143 'inform':675,740,822,891,952,1142,1267,1701 'initi':46 'instal':10,13 'insuffici':151 'integ':1188,2045 'invalid':147,680,745,827,896,957,1147 'invit':629 'isvresel':1244,1459,1566,1671,1893 'item':203 'iter':200,208 'john':1285,1719 'key':26,30,149 'last':1288,1722 'limit':61,101,165 'list':193,337,632,1154,1159,2000,2046 'llc':1298,1732 'loa':678,681,743,746,825,828,894,897,955,958,1145,1148 'may':1934 'messag':3,7,216,223,227,248,249,273,633,650,689,696,705,715,754,778,786,797,836,842,855,866,927,1100,1107,1117,1308,1346,1375,1742,1780,1809,2047 'messagevolum':1211,1461,1568,1638,1895 'messaging_hosted_number.data':1113 'messaging_hosted_number_order.data':711,793,862 'method':194,1063,1080 'mms':229 'modifi':431 'must':174,983 'name':357,404,468,524,567,1284,1289,1296,1718,1723,1730 'network':58,91 'new':1194 'note':171 'null':654,719,801,870,931,1121,1226,1229,1232,1235,1238,1243,1246,1249,1252,1255,1258,1448,1551,1653,1656,1659,1662,1665,1670,1673,1676,1679,1682,1685,1882 'number':173,505,515,530,544,550,573,582,587,599,604,606,622,628,635,656,691,701,707,721,760,766,770,773,780,788,803,838,844,850,857,872,905,933,966,975,1014,1016,1024,1029,1037,1050,1061,1077,1088,1102,1109,1123,1323,1367,1369,1372,1757,1801,1803,1806,2032 'object':231,234,264,270,290,658,723,775,805,874,935,1026,1125,1185,1240,1454,1462,1471,1474,1482,1488,1561,1569,1578,1581,1595,1599,1667,1888,1896,1905,1908,1916,1922,2042 'occur':2014 'omit':38 'opt':1312,1342,1353,1746,1776,1787 'optinconfirmationrespons':1247,1463,1570,1674,1897 'optinkeyword':1250,1465,1572,1677,1899 'optinworkflow':1216,1467,1574,1643,1901 'optinworkflowimageurl':1217,1469,1576,1644,1903 'option':228,438,695,1219,1646 'order':636,692,708,781,789,839,845,858,979,1020,1041,1054,1407,1841 'organ':277 'os':18 'os.environ.get':27 'otp':1379,1813 'page':205,211,344,346,640,642,1170,1172,1174,1177,2031,2034,2053,2055 'page.agent':350 'page.data':347,643,2056 'page.id':646,1181,2059 'page.records':1178 'pagin':192,199,1999 'parenthes':191 'particular':1613 'patch':435,1624 'pend':684,749,831,900,961,1151,1618 'permiss':152 'phone':172,504,514,529,543,549,572,586,598,605,621,655,700,720,759,765,772,802,849,871,932,1013,1015,1023,1060,1076,1087,1122,1293,1366,1368,1371,1727,1800,1802,1805 'phonenumb':1212,1472,1579,1639,1906 'pip':12 'portal':1320,1400,1412,1754,1834,1846 'post':217,499,693,756,907,991,1055,1198 'prefix':183 'previous':1162 'previously-submit':1161 'print':90,124,135,260,332,349,397,461,517,560,615,645,710,768,792,861,922,1017,1082,1112,1180,1413,1516,1847,2037,2058 'privacypolicyurl':1253,1475,1582,1680,1909 'product':74,1374,1808 'productionmessagecont':1215,1477,1584,1642,1911 'profil':224,250,274,366,413,439,477,651,697,716,798,867,928,1118 'prompt':1326,1760 'provis':685,750,832,901,962,1152 'purpos':594,1338,1772 'put':595 'python':5,9,16,76,241,320,343,391,449,506,545,600,639,704,761,785,854,911,998,1064,1106,1169,1261,1505,1688,1974,2019,2052 'rate':60,100,164 'rcs':215,237,297,310,339,386,392,433,450,496,537,580,590 'rcs.capabilities':535,578 'rcs.test':627 'rcs_agent_response.data':398,462 'reason':1586,2007 'receiv':280 'record':285,532,575,624,659,724,806,875,936,1126,1183,1187,2040,2044,2063 'reject':665,730,812,881,942,1132,1945,1963 'request':1156,1166,1191,1197,1263,1493,1498,1507,1604,1610,1690,1927,1931,1933,1941,1949,1954,1966,1984,1996 'requir':139,219,501,758,995,1059,1200,1627 'resourc':154 'respons':242,321,394,452,507,546,601,762,912,999,1065,2020 'response.data':261,333,518,561,616,923,1018,1083 'response.phone':769 'response.records':2038 'result':80,206 'retri':96,104,114,166 'retriev':384,776 'retry-aft':113 'return':195,262,334,352,399,463,519,562,617,647,712,771,794,863,924,1019,1084,1114,1182,1415,1518,1849,1997,2039,2060 'review':667,732,814,883,944,1134 'second':294 'secur':1337,1771 'select':1328,1762 'send':213,1395,1829 'sent':972,1047,1348,1782 'setup':15 'shown':48 'sign':1316,1409,1750,1843 'singl':1496 'size':1175,2035 'skill' 'skill-telnyx-messaging-hosted-python' 'sms':232,1081,1092 'source-team-telnyx' 'space':188 'specif':314 'start':308 'state':1300,1734,1946 'status':630,662,727,809,878,939,1129,1508,1985,1991,2003,2022 'string':266,268,272,276,279,287,292,336,355,358,376,402,405,423,466,469,487,522,525,528,531,565,568,571,574,620,623,631,653,661,699,703,718,726,767,800,808,869,877,930,938,1078,1086,1089,1120,1128,1223,1225,1228,1231,1234,1237,1242,1245,1248,1251,1254,1257,1260,1417,1421,1423,1425,1427,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1450,1452,1456,1460,1464,1466,1468,1476,1478,1480,1484,1486,1490,1520,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1553,1559,1563,1567,1571,1573,1575,1583,1585,1587,1589,1597,1601,1650,1652,1655,1658,1661,1664,1669,1672,1675,1678,1681,1684,1687,1851,1855,1857,1859,1861,1863,1865,1867,1869,1871,1873,1875,1877,1879,1881,1884,1886,1890,1894,1898,1900,1902,1910,1912,1914,1918,1920,1924,2062,2065,2068,2071 'submit':1163,1189,1192 'success':683,686,748,751,830,833,899,902,960,963,1150,1153,1950 'summari':1387,1821 'taken':1623 'telnyx':2,6,14,20,22,24,28,78,1297,1319,1378,1394,1731,1753,1812,1828 'telnyx-messaging-hosted-python':1 'telnyx.apiconnectionerror':89 'telnyx.apistatuserror':121 'telnyx.com':1360,1364,1794,1798 'telnyx.com/company/data-privacy':1363,1797 'telnyx.com/sign-up':1359,1793 'telnyx.ratelimiterror':98 'termsandconditionurl':1256,1479,1588,1683,1913 'test':581,585,593,603 'testag':513 'texa':1301,1735 'text':86 'time':109,284,363,373,410,420,474,484,1557,1593 'time.sleep':110 'tollfre':1164,1195,1608 'topic-agent-skills' 'topic-ai-coding-agent' 'topic-claude-code' 'topic-cpaas' 'topic-cursor' 'topic-iot' 'topic-llm' 'topic-sdk' 'topic-sip' 'topic-sms' 'topic-speech-to-text' 'topic-telephony' 'total':1186,2043 'tri':79 'type':235,286,291,533,576,625,660,725,807,876,937,1090,1127,2064 'unknown':1967 'updat':369,416,480,1602,1605 'updatedat':1590 'upload':903 'url':239,240,302,335,379,380,382,383,426,427,429,430,444,445,447,448,490,491,493,494,1357,1358,1362,1791,1792,1796,2048,2066 'use':201,306,1333,1382,1385,1391,1614,1767,1816,1819,1825,2069 'usecas':1213,1481,1594,1640,1915 'usecasesummari':1214,1483,1596,1641,1917 'user':374,421,485,1315,1401,1749,1835 'uuid':368,415,441,479,649,714,796,865,926,1022,1097,1116,1458,1565,1892 'valid':63,136,158,964,968,1036 've':1341,1775 'verif':970,981,988,996,1009,1030,1033,1043,1062,1067,1079,1094,1155,1165,1190,1196,1262,1335,1492,1497,1506,1603,1609,1689,1769,1926,1930,1983,1995 'verifi':1403,1837 'verification_request_egress.id':1414,1848 'verification_request_status.id':1517 'verificationrequestid':1485,1919 'verificationstatus':1487,1598,1921 'volum':1309,1743 'wait':102,293 'want':1331,1765 'webhook':238,377,381,424,428,442,446,488,492 'webhookurl':1259,1489,1600,1686,1923 'websit':1306,1740 'whether':1329,1763 'workflow':1314,1355,1748,1789 'xxxx':1381,1815 'zip':1303,1737","prices":[{"id":"6e8d4aa2-fdc7-490a-9980-67c9137a4aaf","listingId":"c25704ea-67a5-4c69-85b4-20228975c9c8","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"team-telnyx","category":"ai","install_from":"skills.sh"},"createdAt":"2026-04-18T22:06:42.271Z"}],"sources":[{"listingId":"c25704ea-67a5-4c69-85b4-20228975c9c8","source":"github","sourceId":"team-telnyx/ai/telnyx-messaging-hosted-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-messaging-hosted-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:06:42.271Z","lastSeenAt":"2026-04-22T06:54:39.153Z"}],"details":{"listingId":"c25704ea-67a5-4c69-85b4-20228975c9c8","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-messaging-hosted-python","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"1d11aa065f73b78c7ae262ce6326015ec619ad0d","skill_md_path":"skills/telnyx-messaging-hosted-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-messaging-hosted-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-messaging-hosted-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-messaging-hosted-python"},"updatedAt":"2026-04-22T06:54:39.153Z"}}