{"id":"a8806ac1-5126-4dae-8bd6-c462c7021c17","shortId":"2W8ACc","kind":"skill","title":"telnyx-porting-in-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Porting In - 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## Run a portability check\n\nRuns a portability check, returning the results immediately.\n\n`POST /portability_checks`\n\nOptional: `phone_numbers` (array[string])\n\n```python\nresponse = client.portability_checks.run(\n    phone_numbers=[\"+18005550101\"],\n)\nprint(response.data)\n```\n\nReturns: `fast_portable` (boolean), `not_portable_reason` (string), `phone_number` (string), `portable` (boolean), `record_type` (string)\n\n## List all porting events\n\nReturns a list of all porting events.\n\n`GET /porting/events`\n\n```python\npage = client.porting.events.list()\npage = page.data[0]\nprint(page)\n```\n\nReturns: `available_notification_methods` (array[string]), `event_type` (enum: porting_order.deleted), `id` (uuid), `payload` (object), `payload_status` (enum: created, completed), `porting_order_id` (uuid)\n\n## Show a porting event\n\nShow a specific porting event.\n\n`GET /porting/events/{id}`\n\n```python\nevent = client.porting.events.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(event.data)\n```\n\nReturns: `available_notification_methods` (array[string]), `event_type` (enum: porting_order.deleted), `id` (uuid), `payload` (object), `payload_status` (enum: created, completed), `porting_order_id` (uuid)\n\n## Republish a porting event\n\nRepublish a specific porting event.\n\n`POST /porting/events/{id}/republish`\n\n```python\nclient.porting.events.republish(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\n```\n\n## List LOA configurations\n\nList the LOA configurations.\n\n`GET /porting/loa_configurations`\n\n```python\npage = client.porting.loa_configurations.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `address` (object), `company_name` (string), `contact` (object), `created_at` (date-time), `id` (uuid), `logo` (object), `name` (string), `organization_id` (string), `record_type` (string), `updated_at` (date-time)\n\n## Create a LOA configuration\n\nCreate a LOA configuration.\n\n`POST /porting/loa_configurations`\n\n```python\nloa_configuration = client.porting.loa_configurations.create(\n    address={\n        \"city\": \"Austin\",\n        \"country_code\": \"US\",\n        \"state\": \"TX\",\n        \"street_address\": \"600 Congress Avenue\",\n        \"zip_code\": \"78701\",\n    },\n    company_name=\"Telnyx\",\n    contact={\n        \"email\": \"testing@telnyx.com\",\n        \"phone_number\": \"+12003270001\",\n    },\n    logo={\n        \"document_id\": \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\"\n    },\n    name=\"My LOA Configuration\",\n)\nprint(loa_configuration.data)\n```\n\nReturns: `address` (object), `company_name` (string), `contact` (object), `created_at` (date-time), `id` (uuid), `logo` (object), `name` (string), `organization_id` (string), `record_type` (string), `updated_at` (date-time)\n\n## Preview the LOA configuration parameters\n\nPreview the LOA template that would be generated without need to create LOA configuration.\n\n`POST /porting/loa_configurations/preview`\n\n```python\nresponse = client.porting.loa_configurations.preview(\n    address={\n        \"city\": \"Austin\",\n        \"country_code\": \"US\",\n        \"state\": \"TX\",\n        \"street_address\": \"600 Congress Avenue\",\n        \"zip_code\": \"78701\",\n    },\n    company_name=\"Telnyx\",\n    contact={\n        \"email\": \"testing@telnyx.com\",\n        \"phone_number\": \"+12003270001\",\n    },\n    logo={\n        \"document_id\": \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\"\n    },\n    name=\"My LOA Configuration\",\n)\nprint(response)\ncontent = response.read()\nprint(content)\n```\n\n## Retrieve a LOA configuration\n\nRetrieve a specific LOA configuration.\n\n`GET /porting/loa_configurations/{id}`\n\n```python\nloa_configuration = client.porting.loa_configurations.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(loa_configuration.data)\n```\n\nReturns: `address` (object), `company_name` (string), `contact` (object), `created_at` (date-time), `id` (uuid), `logo` (object), `name` (string), `organization_id` (string), `record_type` (string), `updated_at` (date-time)\n\n## Update a LOA configuration\n\nUpdate a specific LOA configuration.\n\n`PATCH /porting/loa_configurations/{id}`\n\n```python\nloa_configuration = client.porting.loa_configurations.update(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    address={\n        \"city\": \"Austin\",\n        \"country_code\": \"US\",\n        \"state\": \"TX\",\n        \"street_address\": \"600 Congress Avenue\",\n        \"zip_code\": \"78701\",\n    },\n    company_name=\"Telnyx\",\n    contact={\n        \"email\": \"testing@telnyx.com\",\n        \"phone_number\": \"+12003270001\",\n    },\n    logo={\n        \"document_id\": \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\"\n    },\n    name=\"My LOA Configuration\",\n)\nprint(loa_configuration.data)\n```\n\nReturns: `address` (object), `company_name` (string), `contact` (object), `created_at` (date-time), `id` (uuid), `logo` (object), `name` (string), `organization_id` (string), `record_type` (string), `updated_at` (date-time)\n\n## Delete a LOA configuration\n\nDelete a specific LOA configuration.\n\n`DELETE /porting/loa_configurations/{id}`\n\n```python\nclient.porting.loa_configurations.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\n```\n\n## Preview a LOA configuration\n\nPreview a specific LOA configuration.\n\n`GET /porting/loa_configurations/{id}/preview`\n\n```python\nresponse = client.porting.loa_configurations.preview_1(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response)\ncontent = response.read()\nprint(content)\n```\n\n## List porting related reports\n\nList the reports generated about porting operations.\n\n`GET /porting/reports`\n\n```python\npage = client.porting.reports.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `created_at` (date-time), `document_id` (uuid), `id` (uuid), `params` (object), `record_type` (string), `report_type` (enum: export_porting_orders_csv), `status` (enum: pending, completed), `updated_at` (date-time)\n\n## Create a porting related report\n\nGenerate reports about porting operations.\n\n`POST /porting/reports`\n\n```python\nreport = client.porting.reports.create(\n    params={\n        \"filters\": {}\n    },\n    report_type=\"export_porting_orders_csv\",\n)\nprint(report.data)\n```\n\nReturns: `created_at` (date-time), `document_id` (uuid), `id` (uuid), `params` (object), `record_type` (string), `report_type` (enum: export_porting_orders_csv), `status` (enum: pending, completed), `updated_at` (date-time)\n\n## Retrieve a report\n\nRetrieve a specific report generated.\n\n`GET /porting/reports/{id}`\n\n```python\nreport = client.porting.reports.retrieve(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(report.data)\n```\n\nReturns: `created_at` (date-time), `document_id` (uuid), `id` (uuid), `params` (object), `record_type` (string), `report_type` (enum: export_porting_orders_csv), `status` (enum: pending, completed), `updated_at` (date-time)\n\n## List available carriers in the UK\n\nList available carriers in the UK.\n\n`GET /porting/uk_carriers`\n\n```python\nresponse = client.porting.list_uk_carriers()\nprint(response.data)\n```\n\nReturns: `alternative_cupids` (array[string]), `created_at` (date-time), `cupid` (string), `id` (uuid), `name` (string), `record_type` (string), `updated_at` (date-time)\n\n## List all porting orders\n\nReturns a list of your porting order.\n\n`GET /porting_orders`\n\n```python\npage = client.porting_orders.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `activation_settings` (object), `additional_steps` (array[string]), `created_at` (date-time), `customer_group_reference` (string | null), `customer_reference` (string | null), `description` (string), `documents` (object), `end_user` (object), `id` (uuid), `messaging` (object), `misc` (object), `old_service_provider_ocn` (string), `parent_support_key` (string | null), `phone_number_configuration` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `phone_numbers` (array[object]), `porting_phone_numbers_count` (integer), `record_type` (string), `requirements` (array[object]), `requirements_met` (boolean), `status` (object), `support_key` (string | null), `updated_at` (date-time), `user_feedback` (object), `user_id` (uuid), `webhook_url` (uri)\n\n## Create a porting order\n\nCreates a new porting order object.\n\n`POST /porting_orders` — Required: `phone_numbers`\n\nOptional: `customer_group_reference` (string), `customer_reference` (string | null)\n\n```python\nporting_order = client.porting_orders.create(\n    phone_numbers=[\"+13035550000\", \"+13035550001\", \"+13035550002\"],\n)\nprint(porting_order.data)\n```\n\nReturns: `activation_settings` (object), `additional_steps` (array[string]), `created_at` (date-time), `customer_group_reference` (string | null), `customer_reference` (string | null), `description` (string), `documents` (object), `end_user` (object), `id` (uuid), `messaging` (object), `misc` (object), `old_service_provider_ocn` (string), `parent_support_key` (string | null), `phone_number_configuration` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `phone_numbers` (array[object]), `porting_phone_numbers_count` (integer), `record_type` (string), `requirements` (array[object]), `requirements_met` (boolean), `status` (object), `support_key` (string | null), `updated_at` (date-time), `user_feedback` (object), `user_id` (uuid), `webhook_url` (uri)\n\n## List all exception types\n\nReturns a list of all possible exception types for a porting order.\n\n`GET /porting_orders/exception_types`\n\n```python\nresponse = client.porting_orders.retrieve_exception_types()\nprint(response.data)\n```\n\nReturns: `code` (enum: ACCOUNT_NUMBER_MISMATCH, AUTH_PERSON_MISMATCH, BTN_ATN_MISMATCH, ENTITY_NAME_MISMATCH, FOC_EXPIRED, FOC_REJECTED, LOCATION_MISMATCH, LSR_PENDING, MAIN_BTN_PORTING, OSP_IRRESPONSIVE, OTHER, PASSCODE_PIN_INVALID, PHONE_NUMBER_HAS_SPECIAL_FEATURE, PHONE_NUMBER_MISMATCH, PHONE_NUMBER_NOT_PORTABLE, PORT_TYPE_INCORRECT, PORTING_ORDER_SPLIT_REQUIRED, POSTAL_CODE_MISMATCH, RATE_CENTER_NOT_PORTABLE, SV_CONFLICT, SV_UNKNOWN_FAILURE), `description` (string)\n\n## List all phone number configurations\n\nReturns a list of phone number configurations paginated.\n\n`GET /porting_orders/phone_number_configurations`\n\n```python\npage = client.porting_orders.phone_number_configurations.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `created_at` (date-time), `id` (uuid), `porting_phone_number_id` (uuid), `record_type` (string), `updated_at` (date-time), `user_bundle_id` (uuid)\n\n## Create a list of phone number configurations\n\nCreates a list of phone number configurations.\n\n`POST /porting_orders/phone_number_configurations`\n\n```python\nphone_number_configuration = client.porting_orders.phone_number_configurations.create()\nprint(phone_number_configuration.data)\n```\n\nReturns: `created_at` (date-time), `id` (uuid), `porting_phone_number_id` (uuid), `record_type` (string), `updated_at` (date-time), `user_bundle_id` (uuid)\n\n## Retrieve a porting order\n\nRetrieves the details of an existing porting order.\n\n`GET /porting_orders/{id}`\n\n```python\nporting_order = client.porting_orders.retrieve(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(porting_order.data)\n```\n\nReturns: `activation_settings` (object), `additional_steps` (array[string]), `created_at` (date-time), `customer_group_reference` (string | null), `customer_reference` (string | null), `description` (string), `documents` (object), `end_user` (object), `id` (uuid), `messaging` (object), `misc` (object), `old_service_provider_ocn` (string), `parent_support_key` (string | null), `phone_number_configuration` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `phone_numbers` (array[object]), `porting_phone_numbers_count` (integer), `record_type` (string), `requirements` (array[object]), `requirements_met` (boolean), `status` (object), `support_key` (string | null), `updated_at` (date-time), `user_feedback` (object), `user_id` (uuid), `webhook_url` (uri)\n\n## Edit a porting order\n\nEdits the details of an existing porting order. Any or all of a porting orders attributes may be included in the resource object included in a PATCH request. If a request does not include all of the attributes for a resource, the system will interpret the missing attributes as if they were included with their current values.\n\n`PATCH /porting_orders/{id}`\n\nOptional: `activation_settings` (object), `customer_group_reference` (string), `customer_reference` (string), `documents` (object), `end_user` (object), `messaging` (object), `misc` (object), `phone_number_configuration` (object), `requirement_group_id` (uuid), `requirements` (array[object]), `user_feedback` (object), `webhook_url` (uri)\n\n```python\nporting_order = client.porting_orders.update(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(porting_order.data)\n```\n\nReturns: `activation_settings` (object), `additional_steps` (array[string]), `created_at` (date-time), `customer_group_reference` (string | null), `customer_reference` (string | null), `description` (string), `documents` (object), `end_user` (object), `id` (uuid), `messaging` (object), `misc` (object), `old_service_provider_ocn` (string), `parent_support_key` (string | null), `phone_number_configuration` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `phone_numbers` (array[object]), `porting_phone_numbers_count` (integer), `record_type` (string), `requirements` (array[object]), `requirements_met` (boolean), `status` (object), `support_key` (string | null), `updated_at` (date-time), `user_feedback` (object), `user_id` (uuid), `webhook_url` (uri)\n\n## Delete a porting order\n\nDeletes an existing porting order. This operation is restrict to porting orders in draft state.\n\n`DELETE /porting_orders/{id}`\n\n```python\nclient.porting_orders.delete(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\n```\n\n## Activate every number in a porting order asynchronously.\n\nActivate each number in a porting order asynchronously. This operation is limited to US FastPort orders only.\n\n`POST /porting_orders/{id}/actions/activate`\n\n```python\nresponse = client.porting_orders.actions.activate(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `activate_at` (date-time), `activation_type` (enum: scheduled, on-demand), `activation_windows` (array[object]), `created_at` (date-time), `id` (uuid), `record_type` (string), `status` (enum: created, in-process, completed, failed), `updated_at` (date-time)\n\n## Cancel a porting order\n\n`POST /porting_orders/{id}/actions/cancel`\n\n```python\nresponse = client.porting_orders.actions.cancel(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `activation_settings` (object), `additional_steps` (array[string]), `created_at` (date-time), `customer_group_reference` (string | null), `customer_reference` (string | null), `description` (string), `documents` (object), `end_user` (object), `id` (uuid), `messaging` (object), `misc` (object), `old_service_provider_ocn` (string), `parent_support_key` (string | null), `phone_number_configuration` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `phone_numbers` (array[object]), `porting_phone_numbers_count` (integer), `record_type` (string), `requirements` (array[object]), `requirements_met` (boolean), `status` (object), `support_key` (string | null), `updated_at` (date-time), `user_feedback` (object), `user_id` (uuid), `webhook_url` (uri)\n\n## Submit a porting order.\n\nConfirm and submit your porting order.\n\n`POST /porting_orders/{id}/actions/confirm`\n\n```python\nresponse = client.porting_orders.actions.confirm(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `activation_settings` (object), `additional_steps` (array[string]), `created_at` (date-time), `customer_group_reference` (string | null), `customer_reference` (string | null), `description` (string), `documents` (object), `end_user` (object), `id` (uuid), `messaging` (object), `misc` (object), `old_service_provider_ocn` (string), `parent_support_key` (string | null), `phone_number_configuration` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `phone_numbers` (array[object]), `porting_phone_numbers_count` (integer), `record_type` (string), `requirements` (array[object]), `requirements_met` (boolean), `status` (object), `support_key` (string | null), `updated_at` (date-time), `user_feedback` (object), `user_id` (uuid), `webhook_url` (uri)\n\n## Share a porting order\n\nCreates a sharing token for a porting order. The token can be used to share the porting order with non-Telnyx users.\n\n`POST /porting_orders/{id}/actions/share`\n\n```python\nresponse = client.porting_orders.actions.share(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `created_at` (date-time), `expires_at` (date-time), `expires_in_seconds` (integer), `id` (uuid), `permissions` (array[string]), `porting_order_id` (uuid), `record_type` (string), `token` (string)\n\n## List all porting activation jobs\n\nReturns a list of your porting activation jobs.\n\n`GET /porting_orders/{id}/activation_jobs`\n\n```python\npage = client.porting_orders.activation_jobs.list(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `activate_at` (date-time), `activation_type` (enum: scheduled, on-demand), `activation_windows` (array[object]), `created_at` (date-time), `id` (uuid), `record_type` (string), `status` (enum: created, in-process, completed, failed), `updated_at` (date-time)\n\n## Retrieve a porting activation job\n\nReturns a porting activation job.\n\n`GET /porting_orders/{id}/activation_jobs/{activationJobId}`\n\n```python\nactivation_job = client.porting_orders.activation_jobs.retrieve(\n    activation_job_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(activation_job.data)\n```\n\nReturns: `activate_at` (date-time), `activation_type` (enum: scheduled, on-demand), `activation_windows` (array[object]), `created_at` (date-time), `id` (uuid), `record_type` (string), `status` (enum: created, in-process, completed, failed), `updated_at` (date-time)\n\n## Update a porting activation job\n\nUpdates the activation time of a porting activation job.\n\n`PATCH /porting_orders/{id}/activation_jobs/{activationJobId}`\n\n```python\nactivation_job = client.porting_orders.activation_jobs.update(\n    activation_job_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(activation_job.data)\n```\n\nReturns: `activate_at` (date-time), `activation_type` (enum: scheduled, on-demand), `activation_windows` (array[object]), `created_at` (date-time), `id` (uuid), `record_type` (string), `status` (enum: created, in-process, completed, failed), `updated_at` (date-time)\n\n## List additional documents\n\nReturns a list of additional documents for a porting order.\n\n`GET /porting_orders/{id}/additional_documents`\n\n```python\npage = client.porting_orders.additional_documents.list(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `content_type` (string), `created_at` (date-time), `document_id` (uuid), `document_type` (enum: loa, invoice, csr, other), `filename` (string), `id` (uuid), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## Create a list of additional documents\n\nCreates a list of additional documents for a porting order.\n\n`POST /porting_orders/{id}/additional_documents`\n\n```python\nadditional_document = client.porting_orders.additional_documents.create(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(additional_document.data)\n```\n\nReturns: `content_type` (string), `created_at` (date-time), `document_id` (uuid), `document_type` (enum: loa, invoice, csr, other), `filename` (string), `id` (uuid), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## Delete an additional document\n\nDeletes an additional document for a porting order.\n\n`DELETE /porting_orders/{id}/additional_documents/{additional_document_id}`\n\n```python\nclient.porting_orders.additional_documents.delete(\n    additional_document_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\n```\n\n## List allowed FOC dates\n\nReturns a list of allowed FOC dates for a porting order.\n\n`GET /porting_orders/{id}/allowed_foc_windows`\n\n```python\nresponse = client.porting_orders.retrieve_allowed_foc_windows(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `ended_at` (date-time), `record_type` (string), `started_at` (date-time)\n\n## List all comments of a porting order\n\nReturns a list of all comments of a porting order.\n\n`GET /porting_orders/{id}/comments`\n\n```python\npage = client.porting_orders.comments.list(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `body` (string), `created_at` (date-time), `id` (uuid), `porting_order_id` (uuid), `record_type` (string), `user_type` (enum: admin, user, system)\n\n## Create a comment for a porting order\n\nCreates a new comment for a porting order.\n\n`POST /porting_orders/{id}/comments`\n\nOptional: `body` (string)\n\n```python\ncomment = client.porting_orders.comments.create(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(comment.data)\n```\n\nReturns: `body` (string), `created_at` (date-time), `id` (uuid), `porting_order_id` (uuid), `record_type` (string), `user_type` (enum: admin, user, system)\n\n## Download a porting order loa template\n\n`GET /porting_orders/{id}/loa_template`\n\n```python\nresponse = client.porting_orders.retrieve_loa_template(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response)\ncontent = response.read()\nprint(content)\n```\n\n## List porting order requirements\n\nReturns a list of all requirements based on country/number type for this porting order.\n\n`GET /porting_orders/{id}/requirements`\n\n```python\npage = client.porting_orders.retrieve_requirements(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.field_type)\n```\n\nReturns: `field_type` (enum: document, textual), `field_value` (string), `record_type` (string), `requirement_status` (string), `requirement_type` (object)\n\n## Retrieve the associated V1 sub_request_id and port_request_id\n\n`GET /porting_orders/{id}/sub_request`\n\n```python\nresponse = client.porting_orders.retrieve_sub_request(\n    \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `port_request_id` (string), `sub_request_id` (string)\n\n## List verification codes\n\nReturns a list of verification codes for a porting order.\n\n`GET /porting_orders/{id}/verification_codes`\n\n```python\npage = client.porting_orders.verification_codes.list(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `created_at` (date-time), `id` (uuid), `phone_number` (string), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time), `verified` (boolean)\n\n## Send the verification codes\n\nSend the verification code for all porting phone numbers.\n\n`POST /porting_orders/{id}/verification_codes/send`\n\n```python\nclient.porting_orders.verification_codes.send(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\n```\n\n## Verify the verification code for a list of phone numbers\n\nVerifies the verification code for a list of phone numbers.\n\n`POST /porting_orders/{id}/verification_codes/verify`\n\n```python\nresponse = client.porting_orders.verification_codes.verify(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `created_at` (date-time), `id` (uuid), `phone_number` (string), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time), `verified` (boolean)\n\n## List action requirements for a porting order\n\nReturns a list of action requirements for a specific porting order.\n\n`GET /porting_orders/{porting_order_id}/action_requirements`\n\n```python\npage = client.porting_orders.action_requirements.list(\n    porting_order_id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `action_type` (string), `action_url` (string | null), `cancel_reason` (string | null), `created_at` (date-time), `id` (string), `porting_order_id` (string), `record_type` (enum: porting_action_requirement), `requirement_type_id` (string), `status` (enum: created, pending, completed, cancelled, failed), `updated_at` (date-time)\n\n## Initiate an action requirement\n\nInitiates a specific action requirement for a porting order.\n\n`POST /porting_orders/{porting_order_id}/action_requirements/{id}/initiate`\n\n```python\nresponse = client.porting_orders.action_requirements.initiate(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n    porting_order_id=\"550e8400-e29b-41d4-a716-446655440000\",\n    params={\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n    },\n)\nprint(response.data)\n```\n\nReturns: `action_type` (string), `action_url` (string | null), `cancel_reason` (string | null), `created_at` (date-time), `id` (string), `porting_order_id` (string), `record_type` (enum: porting_action_requirement), `requirement_type_id` (string), `status` (enum: created, pending, completed, cancelled, failed), `updated_at` (date-time)\n\n## List all associated phone numbers\n\nReturns a list of all associated phone numbers for a porting order. Associated phone numbers are used for partial porting in GB to specify which phone numbers should be kept or disconnected.\n\n`GET /porting_orders/{porting_order_id}/associated_phone_numbers`\n\n```python\npage = client.porting_orders.associated_phone_numbers.list(\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `action` (enum: keep, disconnect), `country_code` (string), `created_at` (date-time), `id` (uuid), `phone_number_range` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## Create an associated phone number\n\nCreates a new associated phone number for a porting order. This is used for partial porting in GB to specify which phone numbers should be kept or disconnected.\n\n`POST /porting_orders/{porting_order_id}/associated_phone_numbers`\n\n```python\nassociated_phone_number = client.porting_orders.associated_phone_numbers.create(\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    action=\"keep\",\n    phone_number_range={},\n)\nprint(associated_phone_number.data)\n```\n\nReturns: `action` (enum: keep, disconnect), `country_code` (string), `created_at` (date-time), `id` (uuid), `phone_number_range` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## Delete an associated phone number\n\nDeletes an associated phone number from a porting order.\n\n`DELETE /porting_orders/{porting_order_id}/associated_phone_numbers/{id}`\n\n```python\nassociated_phone_number = client.porting_orders.associated_phone_numbers.delete(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(associated_phone_number.data)\n```\n\nReturns: `action` (enum: keep, disconnect), `country_code` (string), `created_at` (date-time), `id` (uuid), `phone_number_range` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `porting_order_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## List all phone number blocks\n\nReturns a list of all phone number blocks of a porting order.\n\n`GET /porting_orders/{porting_order_id}/phone_number_blocks`\n\n```python\npage = client.porting_orders.phone_number_blocks.list(\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `activation_ranges` (array[object]), `country_code` (string), `created_at` (date-time), `id` (uuid), `phone_number_range` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `record_type` (string), `updated_at` (date-time)\n\n## Create a phone number block\n\nCreates a new phone number block.\n\n`POST /porting_orders/{porting_order_id}/phone_number_blocks`\n\n```python\nphone_number_block = client.porting_orders.phone_number_blocks.create(\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    activation_ranges=[{\n        \"end_at\": \"+4930244999910\",\n        \"start_at\": \"+4930244999901\",\n    }],\n    phone_number_range={\n        \"end_at\": \"+4930244999910\",\n        \"start_at\": \"+4930244999901\",\n    },\n)\nprint(phone_number_block.data)\n```\n\nReturns: `activation_ranges` (array[object]), `country_code` (string), `created_at` (date-time), `id` (uuid), `phone_number_range` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `record_type` (string), `updated_at` (date-time)\n\n## Delete a phone number block\n\nDeletes a phone number block.\n\n`DELETE /porting_orders/{porting_order_id}/phone_number_blocks/{id}`\n\n```python\nphone_number_block = client.porting_orders.phone_number_blocks.delete(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(phone_number_block.data)\n```\n\nReturns: `activation_ranges` (array[object]), `country_code` (string), `created_at` (date-time), `id` (uuid), `phone_number_range` (object), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `record_type` (string), `updated_at` (date-time)\n\n## List all phone number extensions\n\nReturns a list of all phone number extensions of a porting order.\n\n`GET /porting_orders/{porting_order_id}/phone_number_extensions`\n\n```python\npage = client.porting_orders.phone_number_extensions.list(\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `activation_ranges` (array[object]), `created_at` (date-time), `extension_range` (object), `id` (uuid), `porting_phone_number_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## Create a phone number extension\n\nCreates a new phone number extension.\n\n`POST /porting_orders/{porting_order_id}/phone_number_extensions`\n\n```python\nphone_number_extension = client.porting_orders.phone_number_extensions.create(\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    activation_ranges=[{\n        \"end_at\": 10,\n        \"start_at\": 1,\n    }],\n    extension_range={\n        \"end_at\": 10,\n        \"start_at\": 1,\n    },\n    porting_phone_number_id=\"f24151b6-3389-41d3-8747-7dd8c681e5e2\",\n)\nprint(phone_number_extension.data)\n```\n\nReturns: `activation_ranges` (array[object]), `created_at` (date-time), `extension_range` (object), `id` (uuid), `porting_phone_number_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## Delete a phone number extension\n\nDeletes a phone number extension.\n\n`DELETE /porting_orders/{porting_order_id}/phone_number_extensions/{id}`\n\n```python\nphone_number_extension = client.porting_orders.phone_number_extensions.delete(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    porting_order_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(phone_number_extension.data)\n```\n\nReturns: `activation_ranges` (array[object]), `created_at` (date-time), `extension_range` (object), `id` (uuid), `porting_phone_number_id` (uuid), `record_type` (string), `updated_at` (date-time)\n\n## List all porting phone numbers\n\nReturns a list of your porting phone numbers.\n\n`GET /porting_phone_numbers`\n\n```python\npage = client.porting_phone_numbers.list()\npage = page.data[0]\nprint(page.porting_order_id)\n```\n\nReturns: `activation_status` (enum: New, Pending, Conflict, Cancel Pending, Failed, Concurred, Activate RDY, Disconnect Pending, Concurrence Sent, Old, Sending, Active, Cancelled), `phone_number` (string), `phone_number_type` (enum: landline, local, mobile, national, shared_cost, toll_free), `portability_status` (enum: pending, confirmed, provisional), `porting_order_id` (uuid), `porting_order_status` (enum: draft, in-process, submitted, exception, foc-date-confirmed, cancel-pending, ported, cancelled), `record_type` (string), `requirements_status` (enum: requirement-info-pending, requirement-info-under-review, requirement-info-exception, approved), `support_key` (string)","tags":["telnyx","porting","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-porting-in-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-porting-in-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 (33,915 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:45.850Z","embedding":null,"createdAt":"2026-04-18T22:07:30.909Z","updatedAt":"2026-04-22T06:54:45.850Z","lastSeenAt":"2026-04-22T06:54:45.850Z","tsv":"'+12003270001':452,546,667 '+13035550000':1121 '+13035550001':1122 '+13035550002':1123 '+13125550001':83,180 '+13125550002':85 '+18005550101':237 '+4930244999901':3596,3605 '+4930244999910':3593,3602 '-3389':3846 '-41':3847 '-7':3850 '-8747':3849 '/action_requirements':3029,3110 '/actions/activate':1809 '/actions/cancel':1868 '/actions/confirm':1992 '/actions/share':2133 '/activation_jobs':2191,2260,2341 '/additional_documents':2421,2491,2555 '/allowed_foc_windows':2595 '/associated_phone_numbers':3228,3327,3411 '/comments':2644,2701 '/initiate':3112 '/loa_template':2749 '/phone_number_blocks':3501,3574,3662 '/phone_number_extensions':3748,3810,3897 '/portability_checks':226 '/porting/events':268,310,356 '/porting/loa_configurations':375,423,576,630,723,743 '/porting/loa_configurations/preview':518 '/porting/reports':774,826,881 '/porting/uk_carriers':939 '/porting_orders':983,1102,1424,1600,1771,1807,1866,1990,2131,2189,2258,2339,2419,2489,2553,2593,2642,2699,2747,2787,2837,2876,2933,2966,3025,3106,3224,3323,3407,3497,3570,3658,3744,3806,3893 '/porting_orders/exception_types':1242 '/porting_orders/phone_number_configurations':1329,1378 '/porting_phone_numbers':3964 '/preview':745 '/republish':358 '/requirements':2789 '/sub_request':2839 '/verification_codes':2878 '/verification_codes/send':2935 '/verification_codes/verify':2968 '0':274,381,780,989,1335,2204,2434,2657,2803,2891,3044,3243,3516,3763,3970 '1':111,749,3832,3840 '10':3829,3837 '182bd5e5':316,362,457,551,583,638,672,728,751,887,1432,1645,1776,1814,1873,1997,2139,2197,2270,2277,2351,2358,2427,2498,2565,2572,2603,2650,2710,2757,2796,2846,2884,2940,2974,3236,3337,3420,3429,3509,3584,3671,3680,3756,3820,3906,3915 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':315,361,456,550,582,637,671,727,750,886,1431,1644,1775,1813,1872,1996,2138,2196,2269,2276,2350,2357,2426,2497,2564,2571,2602,2649,2709,2756,2795,2845,2883,2939,2973,3235,3336,3419,3428,3508,3583,3670,3679,3755,3819,3905,3914 '401':69,146 '403':150 '404':153 '41d4':3039,3120,3129 '422':65,134,157 '429':62,99,163 '446655440000':3041,3122,3131 '4fe4':318,364,459,553,585,640,674,730,753,889,1434,1647,1778,1816,1875,1999,2141,2199,2272,2279,2353,2360,2429,2500,2567,2574,2605,2652,2712,2759,2798,2848,2886,2942,2976,3238,3339,3422,3431,3511,3586,3673,3682,3758,3822,3908,3917 '550e8400':3036,3117,3126 '600':438,532,653 '6e1a':317,363,458,552,584,639,673,729,752,888,1433,1646,1777,1815,1874,1998,2140,2198,2271,2278,2352,2359,2428,2499,2566,2573,2604,2651,2711,2758,2797,2847,2885,2941,2975,3237,3338,3421,3430,3510,3585,3672,3681,3757,3821,3907,3916 '78701':443,537,658 'a716':3040,3121,3130 'a799':319,365,460,554,586,641,675,731,754,890,1435,1648,1779,1817,1876,2000,2142,2200,2273,2280,2354,2361,2430,2501,2568,2575,2606,2653,2713,2760,2799,2849,2887,2943,2977,3239,3340,3423,3432,3512,3587,3674,3683,3759,3823,3909,3918 'aa6d9a6ab26e':320,366,461,555,587,642,676,732,755,891,1436,1649,1780,1818,1877,2001,2143,2201,2274,2281,2355,2362,2431,2502,2569,2576,2607,2654,2714,2761,2800,2850,2888,2944,2978,3240,3341,3424,3433,3513,3588,3675,3684,3760,3824,3910,3919 'account':1253 'action':3007,3017,3048,3051,3074,3094,3099,3142,3145,3168,3247,3342,3350,3437 'activ':993,1127,1440,1603,1653,1781,1789,1822,1827,1834,1881,2005,2178,2186,2208,2213,2220,2250,2255,2263,2266,2285,2290,2297,2327,2331,2336,2344,2347,2366,2371,2378,3520,3589,3609,3688,3767,3825,3855,3923,3976,3986,3994 'activation_job.data':2283,2364 'activationjobid':2261,2342 'actual':118 'addit':996,1130,1443,1656,1884,2008,2406,2412,2476,2482,2493,2542,2546,2556,2561 'additional_document.data':2504 'address':385,428,437,469,522,531,591,643,652,684 'admin':2680,2737 'allow':2578,2585,2599 'alreadi':45 'altern':948 'alway':70 'api':25,29,53,126,148 'approv':4059 'array':230,281,327,950,998,1055,1066,1132,1189,1200,1445,1502,1513,1631,1658,1715,1726,1836,1886,1943,1954,2010,2067,2078,2164,2222,2299,2380,3522,3611,3690,3769,3857,3925 'associ':2827,3188,3196,3203,3291,3297,3329,3394,3399,3414 'associated_phone_number.data':3348,3435 'assum':42 'asynchron':1788,1796 'atn':1260 'attribut':1557,1579,1589 'austin':430,524,645 'auth':1256 'authent':67 'auto':198 'auto-pagin':197 'automat':212 'avail':278,324,927,933 'avenu':440,534,655 'backoff':107,169 'base':2778 'bash':11 'block':3483,3491,3562,3568,3578,3651,3656,3667 'bodi':2661,2703,2718 'boolean':243,252,1070,1204,1517,1730,1958,2082,2918,3005 'btn':1259,1274 'bundl':1360,1408 'call':54 'cancel':1861,3055,3085,3149,3179,3982,3995,4036,4039 'cancel-pend':4035 'carrier':928,934,944 'center':1305 'check':93,112,138,160,216,220 'citi':429,523,644 'client':23,43 'client.messages.send':81 'client.portability_checks.run':234 'client.porting.events.list':271 'client.porting.events.republish':360 'client.porting.events.retrieve':314 'client.porting.list':942 'client.porting.loa_configurations.create':427 'client.porting.loa_configurations.delete':726 'client.porting.loa_configurations.list':378 'client.porting.loa_configurations.preview':521,748 'client.porting.loa_configurations.retrieve':581 'client.porting.loa_configurations.update':635 'client.porting.reports.create':829 'client.porting.reports.list':777 'client.porting.reports.retrieve':885 'client.porting_orders.action_requirements.initiate':3115 'client.porting_orders.action_requirements.list':3032 'client.porting_orders.actions.activate':1812 'client.porting_orders.actions.cancel':1871 'client.porting_orders.actions.confirm':1995 'client.porting_orders.actions.share':2136 'client.porting_orders.activation_jobs.list':2194 'client.porting_orders.activation_jobs.retrieve':2265 'client.porting_orders.activation_jobs.update':2346 'client.porting_orders.additional_documents.create':2495 'client.porting_orders.additional_documents.delete':2560 'client.porting_orders.additional_documents.list':2424 'client.porting_orders.associated_phone_numbers.create':3332 'client.porting_orders.associated_phone_numbers.delete':3417 'client.porting_orders.associated_phone_numbers.list':3231 'client.porting_orders.comments.create':2707 'client.porting_orders.comments.list':2647 'client.porting_orders.create':1118 'client.porting_orders.delete':1774 'client.porting_orders.list':986 'client.porting_orders.phone_number_blocks.create':3579 'client.porting_orders.phone_number_blocks.delete':3668 'client.porting_orders.phone_number_blocks.list':3504 'client.porting_orders.phone_number_configurations.create':1383 'client.porting_orders.phone_number_configurations.list':1332 'client.porting_orders.phone_number_extensions.create':3815 'client.porting_orders.phone_number_extensions.delete':3903 'client.porting_orders.phone_number_extensions.list':3751 'client.porting_orders.retrieve':1245,1429,2598,2752,2792,2842 'client.porting_orders.update':1642 'client.porting_orders.verification_codes.list':2881 'client.porting_orders.verification_codes.send':2937 'client.porting_orders.verification_codes.verify':2971 'client.porting_phone_numbers.list':3967 'code':75,129,133,145,186,432,442,526,536,647,657,1251,1302,2864,2870,2922,2926,2948,2958,3252,3355,3442,3525,3614,3693 'comment':2626,2636,2685,2693,2706 'comment.data':2716 'common':143 'compani':387,444,471,538,593,659,686 'complet':295,341,809,866,920,1854,2240,2317,2398,3084,3178 'concur':3985 'concurr':3990 'configur':369,373,417,421,426,465,501,516,559,569,574,580,623,628,634,680,716,721,736,741,1039,1173,1319,1326,1369,1376,1382,1486,1624,1699,1927,2051 'confirm':1983,4015,4034 'conflict':1309,3981 'congress':439,533,654 'connect':94 'contact':390,447,474,541,596,662,689 'content':562,565,758,761,2438,2506,2764,2767 'cost':1050,1184,1497,1710,1938,2062,3274,3377,3464,3547,3636,3715,4008 'count':1060,1194,1507,1720,1948,2072 'countri':185,431,525,646,3251,3354,3441,3524,3613,3692 'country/number':2780 'creat':294,340,392,414,418,476,514,598,691,784,815,841,895,952,1000,1091,1095,1134,1339,1363,1370,1387,1447,1660,1838,1850,1888,2012,2107,2147,2224,2236,2301,2313,2382,2394,2441,2472,2478,2509,2663,2683,2690,2720,2895,2982,3059,3082,3153,3176,3254,3289,3294,3357,3444,3527,3558,3563,3616,3695,3771,3794,3799,3859,3927 'csr':2454,2522 'csv':805,837,862,916 'cupid':949,957 'current':1597 'custom':1005,1010,1107,1111,1139,1144,1452,1457,1606,1610,1665,1670,1893,1898,2017,2022 'd3':3848 'dash':189 'date':395,412,479,496,601,618,694,711,787,813,844,870,898,924,955,969,1003,1080,1137,1214,1342,1357,1390,1405,1450,1527,1663,1740,1825,1841,1859,1891,1968,2015,2092,2150,2155,2211,2227,2245,2288,2304,2322,2369,2385,2403,2444,2470,2512,2538,2580,2587,2614,2622,2666,2723,2898,2915,2985,3002,3062,3090,3156,3184,3257,3287,3360,3390,3447,3477,3530,3556,3619,3645,3698,3724,3774,3792,3862,3880,3930,3948,4033 'date-tim':394,411,478,495,600,617,693,710,786,812,843,869,897,923,954,968,1002,1079,1136,1213,1341,1356,1389,1404,1449,1526,1662,1739,1824,1840,1858,1890,1967,2014,2091,2149,2154,2210,2226,2244,2287,2303,2321,2368,2384,2402,2443,2469,2511,2537,2613,2621,2665,2722,2897,2914,2984,3001,3061,3089,3155,3183,3256,3286,3359,3389,3446,3476,3529,3555,3618,3644,3697,3723,3773,3791,3861,3879,3929,3947 'dd8c681e5e2':3851 'default':34 'delay':119 'delet':713,717,722,1751,1755,1770,2540,2544,2552,3392,3397,3406,3647,3652,3657,3882,3887,3892 'demand':1833,2219,2296,2377 'descript':1014,1148,1313,1461,1674,1902,2026 'detail':1417,1544 'disconnect':3222,3250,3321,3353,3440,3988 'document':454,548,669,789,846,900,1016,1150,1463,1613,1676,1904,2028,2407,2413,2446,2449,2477,2483,2494,2514,2517,2543,2547,2557,2562,2811 'doe':3138 'download':2740 'draft':1768,4025 'e':123 'e.164':177 'e.g':179 'e.message':130 'e.status':128,132 'e29b':3038,3119,3128 'e29b-41d4-a716':3037,3118,3127 'edit':1538,1542 'email':448,542,663 'end':1018,1152,1465,1615,1678,1906,2030,2611,3591,3600,3827,3835 'entiti':1262 'enum':285,293,331,339,801,807,858,864,912,918,1044,1178,1252,1491,1704,1829,1849,1932,2056,2215,2235,2292,2312,2373,2393,2451,2519,2679,2736,2810,3072,3081,3166,3175,3248,3268,3351,3371,3438,3458,3541,3630,3709,3978,4002,4013,4024,4045 'error':50,59,64,68,72,92,127,137,144,159 'event':259,266,283,303,308,313,329,349,354 'event.data':322 'everi':1782 'exampl':40 'except':88,97,120,1227,1235,1246,4030,4058 'exist':1420,1547,1757 'expir':1266,2152,2157 'exponenti':106,168 'export':802,834,859,913 'extens':3730,3738,3776,3798,3804,3814,3833,3864,3886,3891,3902,3932 'f':125 'f24151b6':3845 'fail':56,1855,2241,2318,2399,3086,3180,3984 'failur':1312 'fast':241 'fastport':1803 'featur':1286 'feedback':1083,1217,1530,1634,1743,1971,2095 'field':140,161,2808,2813 'filenam':2456,2524 'filter':831 'first':3133 'foc':1265,1267,2579,2586,2600,4032 'foc-date-confirm':4031 'format':142,162,178 'found':156 'free':1052,1186,1499,1712,1940,2064,3276,3379,3466,3549,3638,3717,4010 'gb':3212,3311 'generat':510,769,820,879 'get':267,309,374,575,742,773,880,938,982,1241,1328,1423,2188,2257,2418,2592,2641,2746,2786,2836,2875,3024,3223,3496,3743,3963 'group':1006,1108,1140,1453,1607,1627,1666,1894,2018 'handl':51,71 'header':116 'hello':87 'id':287,298,311,333,344,357,397,404,455,481,488,549,577,603,610,631,636,670,696,703,724,744,790,792,847,849,882,901,903,959,1021,1086,1155,1220,1344,1349,1361,1392,1397,1409,1425,1430,1468,1533,1601,1628,1643,1681,1746,1772,1808,1843,1867,1909,1974,1991,2033,2098,2132,2137,2161,2168,2190,2195,2229,2259,2268,2275,2306,2340,2349,2356,2387,2420,2425,2447,2458,2462,2490,2496,2515,2526,2530,2554,2558,2563,2570,2594,2643,2648,2668,2672,2700,2708,2725,2729,2748,2755,2788,2794,2831,2835,2838,2856,2860,2877,2882,2900,2907,2934,2938,2967,2972,2987,2994,3028,3035,3064,3068,3078,3109,3111,3116,3125,3158,3162,3172,3227,3234,3259,3279,3326,3335,3362,3382,3410,3412,3418,3427,3449,3469,3500,3507,3532,3573,3582,3621,3661,3663,3669,3678,3700,3747,3754,3779,3784,3809,3818,3844,3867,3872,3896,3898,3904,3913,3935,3940,3974,4019 'immedi':224 'import':17,21,77,108,170 'in-process':1851,2237,2314,2395,4026 'includ':181,1560,1565,1575,1594 'incorrect':1296 'info':4048,4052,4057 'initi':46,3092,3096 'instal':10,13 'insuffici':151 'integ':1061,1195,1508,1721,1949,2073,2160 'interpret':1586 'invalid':147,1281 'invoic':2453,2521 'irrespons':1277 'item':203 'iter':200,208 'job':2179,2187,2251,2256,2264,2267,2328,2337,2345,2348 'john':3135 'keep':3249,3343,3352,3439 'kept':3220,3319 'key':26,30,149,1034,1074,1168,1208,1481,1521,1694,1734,1922,1962,2046,2086,4061 'landlin':1045,1179,1492,1705,1933,2057,3269,3372,3459,3542,3631,3710,4003 'last':3136 'limit':61,101,165,1800 'list':193,256,262,367,370,762,766,926,932,971,977,1225,1231,1315,1322,1365,1372,2175,2182,2405,2410,2474,2480,2577,2583,2624,2633,2768,2774,2862,2867,2951,2961,3006,3015,3186,3193,3479,3486,3726,3733,3950,3957 'loa':368,372,416,420,425,464,500,505,515,558,568,573,579,622,627,633,679,715,720,735,740,2452,2520,2744,2753 'loa_configuration.data':467,589,682 'local':1046,1180,1493,1706,1934,2058,3270,3373,3460,3543,3632,3711,4004 'locat':1269 'logo':399,453,483,547,605,668,698 'lsr':1271 'main':1273 'may':1558 'messag':1023,1157,1470,1618,1683,1911,2035 'met':1069,1203,1516,1729,1957,2081 'method':194,280,326 'misc':1025,1159,1472,1620,1685,1913,2037 'mismatch':1255,1258,1261,1264,1270,1289,1303 'miss':1588 'mobil':1047,1181,1494,1707,1935,2059,3271,3374,3461,3544,3633,3712,4005 'must':174 'name':388,401,445,462,472,485,539,556,594,607,660,677,687,700,961,1263,3134,3137 'nation':1048,1182,1495,1708,1936,2060,3272,3375,3462,3545,3634,3713,4006 'need':512 'network':58,91 'new':1097,2692,3296,3565,3801,3979 'non':2127 'non-telnyx':2126 'note':171 'notif':279,325 'null':1009,1013,1036,1076,1114,1143,1147,1170,1210,1456,1460,1483,1523,1669,1673,1696,1736,1897,1901,1924,1964,2021,2025,2048,2088,3054,3058,3148,3152 'number':173,229,236,249,451,545,666,1038,1042,1054,1059,1105,1120,1172,1176,1188,1193,1254,1283,1288,1291,1318,1325,1348,1368,1375,1381,1396,1485,1489,1501,1506,1623,1698,1702,1714,1719,1783,1791,1926,1930,1942,1947,2050,2054,2066,2071,2903,2931,2954,2964,2990,3190,3198,3205,3217,3262,3266,3293,3299,3316,3331,3345,3365,3369,3396,3401,3416,3452,3456,3482,3490,3535,3539,3561,3567,3577,3598,3624,3628,3650,3655,3666,3703,3707,3729,3737,3783,3797,3803,3813,3843,3871,3885,3890,3901,3939,3954,3962,3997,4000 'object':290,336,386,391,400,470,475,484,592,597,606,685,690,699,795,852,906,995,1017,1020,1024,1026,1040,1056,1067,1072,1084,1100,1129,1151,1154,1158,1160,1174,1190,1201,1206,1218,1442,1464,1467,1471,1473,1487,1503,1514,1519,1531,1564,1605,1614,1617,1619,1621,1625,1632,1635,1655,1677,1680,1684,1686,1700,1716,1727,1732,1744,1837,1883,1905,1908,1912,1914,1928,1944,1955,1960,1972,2007,2029,2032,2036,2038,2052,2068,2079,2084,2096,2223,2300,2381,2824,3264,3367,3454,3523,3537,3612,3626,3691,3705,3770,3778,3858,3866,3926,3934 'ocn':1030,1164,1477,1690,1918,2042 'old':1027,1161,1474,1687,1915,2039,3992 'omit':38 'on-demand':1831,2217,2294,2375 'oper':772,824,1761,1798 'option':227,1106,1602,2702 'order':297,343,804,836,861,915,974,981,1094,1099,1117,1240,1298,1414,1422,1428,1541,1549,1556,1641,1754,1759,1766,1787,1795,1804,1864,1982,1988,2106,2114,2124,2167,2417,2461,2487,2529,2551,2591,2630,2640,2671,2689,2697,2728,2743,2770,2785,2874,2906,2993,3012,3023,3027,3034,3067,3104,3108,3124,3161,3202,3226,3233,3278,3303,3325,3334,3381,3405,3409,3426,3468,3495,3499,3506,3572,3581,3660,3677,3742,3746,3753,3808,3817,3895,3912,3973,4018,4022 'organ':403,487,609,702 'os':18 'os.environ.get':27 'osp':1276 'page':205,211,270,272,276,377,379,776,778,985,987,1331,1333,2193,2202,2423,2432,2646,2655,2791,2801,2880,2889,3031,3042,3230,3241,3503,3514,3750,3761,3966,3968 'page.data':273,380,779,988,1334,2203,2433,2656,2802,2890,3043,3242,3515,3762,3969 'page.field':2805 'page.id':383,782,991,1337,2206,2436,2659,2893,3046,3245,3518,3765 'page.porting':3972 'pagin':192,199,1327 'param':794,830,851,905,3132 'paramet':502 'parent':1032,1166,1479,1692,1920,2044 'parenthes':191 'partial':3209,3308 'passcod':1279 'patch':629,1568,1599,2338 'payload':289,291,335,337 'pend':808,865,919,1272,3083,3177,3980,3983,3989,4014,4037,4049 'permiss':152,2163 'person':1257 'phone':172,228,235,248,450,544,665,1037,1041,1053,1058,1104,1119,1171,1175,1187,1192,1282,1287,1290,1317,1324,1347,1367,1374,1380,1395,1484,1488,1500,1505,1622,1697,1701,1713,1718,1925,1929,1941,1946,2049,2053,2065,2070,2902,2930,2953,2963,2989,3189,3197,3204,3216,3261,3265,3292,3298,3315,3330,3344,3364,3368,3395,3400,3415,3451,3455,3481,3489,3534,3538,3560,3566,3576,3597,3623,3627,3649,3654,3665,3702,3706,3728,3736,3782,3796,3802,3812,3842,3870,3884,3889,3900,3938,3953,3961,3996,3999 'phone_number_block.data':3607,3686 'phone_number_configuration.data':1385 'phone_number_extension.data':3853,3921 'pin':1280 'pip':12 'port':3,7,258,265,296,302,307,342,348,353,763,771,803,817,823,835,860,914,973,980,1057,1093,1098,1116,1191,1239,1275,1294,1297,1346,1394,1413,1421,1427,1504,1540,1548,1555,1640,1717,1753,1758,1765,1786,1794,1863,1945,1981,1987,2069,2105,2113,2123,2166,2177,2185,2249,2254,2326,2335,2416,2460,2486,2528,2550,2590,2629,2639,2670,2688,2696,2727,2742,2769,2784,2833,2854,2873,2905,2929,2992,3011,3022,3026,3033,3066,3073,3103,3107,3123,3160,3167,3201,3210,3225,3232,3277,3302,3309,3324,3333,3380,3404,3408,3425,3467,3494,3498,3505,3571,3580,3659,3676,3741,3745,3752,3781,3807,3816,3841,3869,3894,3911,3937,3952,3960,4017,4021,4038 'portabl':215,219,242,245,251,1293,1307,4011 'porting_order.data':1125,1438,1651 'porting_order.deleted':286,332 'possibl':1234 'post':225,355,422,517,825,1101,1377,1806,1865,1989,2130,2488,2698,2932,2965,3105,3322,3569,3805 'postal':1301 'prefix':183 'preview':498,503,733,737 'print':90,124,135,238,275,321,382,466,560,564,588,681,756,760,781,838,892,945,990,1124,1248,1336,1384,1437,1650,1819,1878,2002,2144,2205,2282,2363,2435,2503,2608,2658,2715,2762,2766,2804,2851,2892,2979,3045,3139,3244,3347,3434,3517,3606,3685,3764,3852,3920,3971 'process':1853,2239,2316,2397,4028 'product':74 'provid':1029,1163,1476,1689,1917,2041 'provision':4016 'python':5,9,16,76,232,269,312,359,376,424,519,578,632,725,746,775,827,883,940,984,1115,1243,1330,1379,1426,1639,1773,1810,1869,1993,2134,2192,2262,2343,2422,2492,2559,2596,2645,2705,2750,2790,2840,2879,2936,2969,3030,3113,3229,3328,3413,3502,3575,3664,3749,3811,3899,3965 'rang':3263,3346,3366,3453,3521,3536,3590,3599,3610,3625,3689,3704,3768,3777,3826,3834,3856,3865,3924,3933 'rate':60,100,164,1304 'rdi':3987 'reason':246,3056,3150 'record':253,406,490,612,705,796,853,907,963,1062,1196,1351,1399,1509,1722,1845,1950,2074,2170,2231,2308,2389,2464,2532,2616,2674,2731,2816,2909,2996,3070,3164,3281,3384,3471,3550,3639,3718,3786,3874,3942,4040 'refer':1007,1011,1109,1112,1141,1145,1454,1458,1608,1611,1667,1671,1895,1899,2019,2023 'reject':1268 'relat':764,818 'report':765,768,799,819,821,828,832,856,874,878,884,910 'report.data':839,893 'republish':346,350 'request':1569,1572,2830,2834,2844,2855,2859 'requir':139,1065,1068,1103,1199,1202,1300,1512,1515,1626,1630,1725,1728,1953,1956,2077,2080,2771,2777,2793,2819,2822,3008,3018,3075,3076,3095,3100,3169,3170,4043,4047,4051,4056 'requirement-info-except':4055 'requirement-info-pend':4046 'requirement-info-under-review':4050 'resourc':154,1563,1582 'respons':233,520,561,747,757,941,1244,1811,1870,1994,2135,2597,2751,2763,2841,2970,3114 'response.data':239,946,1249,1820,1879,2003,2145,2609,2852,2980,3140 'response.read':563,759,2765 'restrict':1763 'result':80,206,223 'retri':96,104,114,166 'retriev':566,570,872,875,1411,1415,2247,2825 'retry-aft':113 'return':195,221,240,260,277,323,384,468,590,683,783,840,894,947,975,992,1126,1229,1250,1320,1338,1386,1439,1652,1821,1880,2004,2146,2180,2207,2252,2284,2365,2408,2437,2505,2581,2610,2631,2660,2717,2772,2807,2853,2865,2894,2981,3013,3047,3141,3191,3246,3349,3436,3484,3519,3608,3687,3731,3766,3854,3922,3955,3975 'review':4054 'run':213,217 'schedul':1830,2216,2293,2374 'second':2159 'send':2919,2923,3993 'sent':3991 'servic':1028,1162,1475,1688,1916,2040 'set':994,1128,1441,1604,1654,1882,2006 'setup':15 'share':1049,1183,1496,1709,1937,2061,2103,2109,2121,3273,3376,3463,3546,3635,3714,4007 'show':300,304 'shown':48 'skill' 'skill-telnyx-porting-in-python' 'source-team-telnyx' 'space':188 'special':1285 'specif':306,352,572,626,719,739,877,3021,3098 'specifi':3214,3313 'split':1299 'start':2619,3594,3603,3830,3838 'state':434,528,649,1769 'status':292,338,806,863,917,1071,1205,1518,1731,1848,1959,2083,2234,2311,2392,2820,3080,3174,3977,4012,4023,4044 'step':997,1131,1444,1657,1885,2009 'street':436,530,651 'string':231,247,250,255,282,328,389,402,405,408,473,486,489,492,595,608,611,614,688,701,704,707,798,855,909,951,958,962,965,999,1008,1012,1015,1031,1035,1064,1075,1110,1113,1133,1142,1146,1149,1165,1169,1198,1209,1314,1353,1401,1446,1455,1459,1462,1478,1482,1511,1522,1609,1612,1659,1668,1672,1675,1691,1695,1724,1735,1847,1887,1896,1900,1903,1919,1923,1952,1963,2011,2020,2024,2027,2043,2047,2076,2087,2165,2172,2174,2233,2310,2391,2440,2457,2466,2508,2525,2534,2618,2662,2676,2704,2719,2733,2815,2818,2821,2857,2861,2904,2911,2991,2998,3050,3053,3057,3065,3069,3079,3144,3147,3151,3159,3163,3173,3253,3283,3356,3386,3443,3473,3526,3552,3615,3641,3694,3720,3788,3876,3944,3998,4042,4062 'sub':2829,2843,2858 'submit':1979,1985,4029 'support':1033,1073,1167,1207,1480,1520,1693,1733,1921,1961,2045,2085,4060 'sv':1308,1310 'system':1584,2682,2739 'telnyx':2,6,14,20,22,24,28,78,446,540,661,2128 'telnyx-porting-in-python':1 'telnyx.apiconnectionerror':89 'telnyx.apistatuserror':121 'telnyx.ratelimiterror':98 'templat':506,2745,2754 'testing@telnyx.com':449,543,664 'text':86 'textual':2812 'time':109,396,413,480,497,602,619,695,712,788,814,845,871,899,925,956,970,1004,1081,1138,1215,1343,1358,1391,1406,1451,1528,1664,1741,1826,1842,1860,1892,1969,2016,2093,2151,2156,2212,2228,2246,2289,2305,2323,2332,2370,2386,2404,2445,2471,2513,2539,2615,2623,2667,2724,2899,2916,2986,3003,3063,3091,3157,3185,3258,3288,3361,3391,3448,3478,3531,3557,3620,3646,3699,3725,3775,3793,3863,3881,3931,3949 'time.sleep':110 'token':2110,2116,2173 'toll':1051,1185,1498,1711,1939,2063,3275,3378,3465,3548,3637,3716,4009 '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' 'tri':79 'tx':435,529,650 'type':254,284,330,407,491,613,706,797,800,833,854,857,908,911,964,1043,1063,1177,1197,1228,1236,1247,1295,1352,1400,1490,1510,1703,1723,1828,1846,1931,1951,2055,2075,2171,2214,2232,2291,2309,2372,2390,2439,2450,2465,2507,2518,2533,2617,2675,2678,2732,2735,2781,2806,2809,2817,2823,2910,2997,3049,3071,3077,3143,3165,3171,3267,3282,3370,3385,3457,3472,3540,3551,3629,3640,3708,3719,3787,3875,3943,4001,4041 'uk':931,937,943 'unknown':1311 'updat':409,493,615,620,624,708,810,867,921,966,1077,1211,1354,1402,1524,1737,1856,1965,2089,2242,2319,2324,2329,2400,2467,2535,2912,2999,3087,3181,3284,3387,3474,3553,3642,3721,3789,3877,3945 'uri':1090,1224,1537,1638,1750,1978,2102 'url':1089,1223,1536,1637,1749,1977,2101,3052,3146 'us':433,527,648,1802 'use':201,2119,3207,3306 'user':1019,1082,1085,1153,1216,1219,1359,1407,1466,1529,1532,1616,1633,1679,1742,1745,1907,1970,1973,2031,2094,2097,2129,2677,2681,2734,2738 'uuid':288,299,334,345,398,482,604,697,791,793,848,850,902,904,960,1022,1087,1156,1221,1345,1350,1362,1393,1398,1410,1469,1534,1629,1682,1747,1844,1910,1975,2034,2099,2162,2169,2230,2307,2388,2448,2459,2463,2516,2527,2531,2669,2673,2726,2730,2901,2908,2988,2995,3260,3280,3363,3383,3450,3470,3533,3622,3701,3780,3785,3868,3873,3936,3941,4020 'v1':2828 'valid':63,136,158 'valu':1598,2814 'verif':2863,2869,2921,2925,2947,2957 'verifi':2917,2945,2955,3004 'wait':102 'webhook':1088,1222,1535,1636,1748,1976,2100 'window':1835,2221,2298,2379,2601 'without':511 'would':508 'zip':441,535,656","prices":[{"id":"e355b8f3-b780-4ade-b9df-d32c0b26ee49","listingId":"a8806ac1-5126-4dae-8bd6-c462c7021c17","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:07:30.909Z"}],"sources":[{"listingId":"a8806ac1-5126-4dae-8bd6-c462c7021c17","source":"github","sourceId":"team-telnyx/ai/telnyx-porting-in-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-porting-in-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:30.909Z","lastSeenAt":"2026-04-22T06:54:45.850Z"}],"details":{"listingId":"a8806ac1-5126-4dae-8bd6-c462c7021c17","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-porting-in-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":"7ecc1a7d0026757d0b11b053cc94676bd811f399","skill_md_path":"skills/telnyx-porting-in-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-porting-in-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-porting-in-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-porting-in-python"},"updatedAt":"2026-04-22T06:54:45.850Z"}}