{"id":"43d077fd-affd-4a43-a4d4-c71e0b7facf6","shortId":"J62c5j","kind":"skill","title":"telnyx-numbers-compliance-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Numbers Compliance - 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## Retrieve Bundles\n\nGet all allowed bundles.\n\n`GET /bundle_pricing/billing_bundles`\n\n```python\npage = client.bundle_pricing.billing_bundles.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `cost_code` (string), `created_at` (date), `currency` (string), `id` (uuid), `is_public` (boolean), `mrc_price` (float), `name` (string), `slug` (string), `specs` (array[string])\n\n## Get Bundle By Id\n\nGet a single bundle by ID.\n\n`GET /bundle_pricing/billing_bundles/{bundle_id}`\n\n```python\nbilling_bundle = client.bundle_pricing.billing_bundles.retrieve(\n    bundle_id=\"8661948c-a386-4385-837f-af00f40f111a\",\n)\nprint(billing_bundle.data)\n```\n\nReturns: `active` (boolean), `bundle_limits` (array[object]), `cost_code` (string), `created_at` (date), `id` (uuid), `is_public` (boolean), `name` (string), `slug` (string)\n\n## Get User Bundles\n\nGet a paginated list of user bundles.\n\n`GET /bundle_pricing/user_bundles`\n\n```python\npage = client.bundle_pricing.user_bundles.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `active` (boolean), `billing_bundle` (object), `created_at` (date), `id` (uuid), `resources` (array[object]), `updated_at` (date), `user_id` (uuid)\n\n## Create User Bundles\n\nCreates multiple user bundles for the user.\n\n`POST /bundle_pricing/user_bundles/bulk`\n\nOptional: `idempotency_key` (uuid), `items` (array[object])\n\n```python\nuser_bundle = client.bundle_pricing.user_bundles.create()\nprint(user_bundle.data)\n```\n\nReturns: `active` (boolean), `billing_bundle` (object), `created_at` (date), `id` (uuid), `resources` (array[object]), `updated_at` (date), `user_id` (uuid)\n\n## Get Unused User Bundles\n\nReturns all user bundles that aren't in use.\n\n`GET /bundle_pricing/user_bundles/unused`\n\n```python\nresponse = client.bundle_pricing.user_bundles.list_unused()\nprint(response.data)\n```\n\nReturns: `billing_bundle` (object), `user_bundle_ids` (array[string])\n\n## Get User Bundle by Id\n\nRetrieves a user bundle by its ID.\n\n`GET /bundle_pricing/user_bundles/{user_bundle_id}`\n\n```python\nuser_bundle = client.bundle_pricing.user_bundles.retrieve(\n    user_bundle_id=\"ca1d2263-d1f1-43ac-ba53-248e7a4bb26a\",\n)\nprint(user_bundle.data)\n```\n\nReturns: `active` (boolean), `billing_bundle` (object), `created_at` (date), `id` (uuid), `resources` (array[object]), `updated_at` (date), `user_id` (uuid)\n\n## Deactivate User Bundle\n\nDeactivates a user bundle by its ID.\n\n`DELETE /bundle_pricing/user_bundles/{user_bundle_id}`\n\n```python\nresponse = client.bundle_pricing.user_bundles.deactivate(\n    user_bundle_id=\"ca1d2263-d1f1-43ac-ba53-248e7a4bb26a\",\n)\nprint(response.data)\n```\n\nReturns: `active` (boolean), `billing_bundle` (object), `created_at` (date), `id` (uuid), `resources` (array[object]), `updated_at` (date), `user_id` (uuid)\n\n## Get User Bundle Resources\n\nRetrieves the resources of a user bundle by its ID.\n\n`GET /bundle_pricing/user_bundles/{user_bundle_id}/resources`\n\n```python\nresponse = client.bundle_pricing.user_bundles.list_resources(\n    user_bundle_id=\"ca1d2263-d1f1-43ac-ba53-248e7a4bb26a\",\n)\nprint(response.data)\n```\n\nReturns: `created_at` (date), `id` (uuid), `resource` (string), `resource_type` (string), `updated_at` (date)\n\n## List all document links\n\nList all documents links ordered by created_at descending.\n\n`GET /document_links`\n\n```python\npage = client.document_links.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `created_at` (string), `document_id` (uuid), `id` (uuid), `linked_record_type` (string), `linked_resource_id` (string), `record_type` (string), `updated_at` (string)\n\n## List all documents\n\nList all documents ordered by created_at descending.\n\n`GET /documents`\n\n```python\npage = client.documents.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `av_scan_status` (enum: scanned, infected, pending_scan, not_scanned), `content_type` (string), `created_at` (string), `customer_reference` (string), `filename` (string), `id` (uuid), `record_type` (string), `sha256` (string), `size` (object), `status` (enum: pending, verified, denied), `updated_at` (string)\n\n## Upload a document\n\nUpload a document.  Uploaded files must be linked to a service within 30 minutes or they will be automatically deleted.\n\n`POST /documents`\n\nOptional: `customer_reference` (string), `file` (byte), `filename` (string), `url` (string)\n\n```python\nresponse = client.documents.upload_json(\n    document={},\n)\nprint(response.data)\n```\n\nReturns: `av_scan_status` (enum: scanned, infected, pending_scan, not_scanned), `content_type` (string), `created_at` (string), `customer_reference` (string), `filename` (string), `id` (uuid), `record_type` (string), `sha256` (string), `size` (object), `status` (enum: pending, verified, denied), `updated_at` (string)\n\n## Retrieve a document\n\nRetrieve a document.\n\n`GET /documents/{id}`\n\n```python\ndocument = client.documents.retrieve(\n    \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n)\nprint(document.data)\n```\n\nReturns: `av_scan_status` (enum: scanned, infected, pending_scan, not_scanned), `content_type` (string), `created_at` (string), `customer_reference` (string), `filename` (string), `id` (uuid), `record_type` (string), `sha256` (string), `size` (object), `status` (enum: pending, verified, denied), `updated_at` (string)\n\n## Update a document\n\nUpdate a document.\n\n`PATCH /documents/{id}`\n\nOptional: `av_scan_status` (enum: scanned, infected, pending_scan, not_scanned), `content_type` (string), `created_at` (string), `customer_reference` (string), `filename` (string), `id` (uuid), `record_type` (string), `sha256` (string), `size` (object), `status` (enum: pending, verified, denied), `updated_at` (string)\n\n```python\ndocument = client.documents.update(\n    document_id=\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n)\nprint(document.data)\n```\n\nReturns: `av_scan_status` (enum: scanned, infected, pending_scan, not_scanned), `content_type` (string), `created_at` (string), `customer_reference` (string), `filename` (string), `id` (uuid), `record_type` (string), `sha256` (string), `size` (object), `status` (enum: pending, verified, denied), `updated_at` (string)\n\n## Delete a document\n\nDelete a document.  A document can only be deleted if it's not linked to a service. If it is linked to a service, it must be unlinked prior to deleting.\n\n`DELETE /documents/{id}`\n\n```python\ndocument = client.documents.delete(\n    \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n)\nprint(document.data)\n```\n\nReturns: `av_scan_status` (enum: scanned, infected, pending_scan, not_scanned), `content_type` (string), `created_at` (string), `customer_reference` (string), `filename` (string), `id` (uuid), `record_type` (string), `sha256` (string), `size` (object), `status` (enum: pending, verified, denied), `updated_at` (string)\n\n## Download a document\n\nDownload a document.\n\n`GET /documents/{id}/download`\n\n```python\nresponse = client.documents.download(\n    \"6a09cdc3-8948-47f0-aa62-74ac943d6c58\",\n)\nprint(response)\ncontent = response.read()\nprint(content)\n```\n\n## Generate a temporary download link for a document\n\nGenerates a temporary pre-signed URL that can be used to download the document directly from the storage backend without authentication.\n\n`GET /documents/{id}/download_link`\n\n```python\nresponse = client.documents.generate_download_link(\n    \"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(response.data)\n```\n\nReturns: `url` (uri)\n\n## Update requirement group for a phone number order\n\n`POST /number_order_phone_numbers/{id}/requirement_group` — Required: `requirement_group_id`\n\n```python\nresponse = client.number_order_phone_numbers.update_requirement_group(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    requirement_group_id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n)\nprint(response.data)\n```\n\nReturns: `bundle_id` (uuid), `country_code` (string), `deadline` (date-time), `id` (uuid), `is_block_number` (boolean), `locality` (string), `order_request_id` (uuid), `phone_number` (string), `phone_number_type` (string), `record_type` (string), `regulatory_requirements` (array[object]), `requirements_met` (boolean), `requirements_status` (string), `status` (string), `sub_number_order_id` (uuid)\n\n## Retrieve regulatory requirements for a list of phone numbers\n\n`GET /phone_numbers_regulatory_requirements`\n\n```python\nphone_numbers_regulatory_requirement = client.phone_numbers_regulatory_requirements.retrieve()\nprint(phone_numbers_regulatory_requirement.data)\n```\n\nReturns: `phone_number` (string), `phone_number_type` (string), `record_type` (string), `region_information` (array[object]), `regulatory_requirements` (array[object])\n\n## Retrieve regulatory requirements\n\n`GET /regulatory_requirements`\n\n```python\nregulatory_requirement = client.regulatory_requirements.retrieve()\nprint(regulatory_requirement.data)\n```\n\nReturns: `action` (string), `country_code` (string), `phone_number_type` (string), `regulatory_requirements` (array[object])\n\n## List requirement groups\n\n`GET /requirement_groups`\n\n```python\nrequirement_groups = client.requirement_groups.list()\nprint(requirement_groups)\n```\n\n## Create a new requirement group\n\n`POST /requirement_groups` — Required: `country_code`, `phone_number_type`, `action`\n\nOptional: `customer_reference` (string), `regulatory_requirements` (array[object])\n\n```python\nrequirement_group = client.requirement_groups.create(\n    action=\"ordering\",\n    country_code=\"US\",\n    phone_number_type=\"local\",\n)\nprint(requirement_group.id)\n```\n\nReturns: `action` (string), `country_code` (string), `created_at` (date-time), `customer_reference` (string), `id` (string), `phone_number_type` (string), `record_type` (string), `regulatory_requirements` (array[object]), `status` (enum: approved, unapproved, pending-approval, declined, expired), `updated_at` (date-time)\n\n## Get a single requirement group by ID\n\n`GET /requirement_groups/{id}`\n\n```python\nrequirement_group = client.requirement_groups.retrieve(\n    \"id\",\n)\nprint(requirement_group.id)\n```\n\nReturns: `action` (string), `country_code` (string), `created_at` (date-time), `customer_reference` (string), `id` (string), `phone_number_type` (string), `record_type` (string), `regulatory_requirements` (array[object]), `status` (enum: approved, unapproved, pending-approval, declined, expired), `updated_at` (date-time)\n\n## Update requirement values in requirement group\n\n`PATCH /requirement_groups/{id}`\n\nOptional: `customer_reference` (string), `regulatory_requirements` (array[object])\n\n```python\nrequirement_group = client.requirement_groups.update(\n    id=\"550e8400-e29b-41d4-a716-446655440000\",\n)\nprint(requirement_group.id)\n```\n\nReturns: `action` (string), `country_code` (string), `created_at` (date-time), `customer_reference` (string), `id` (string), `phone_number_type` (string), `record_type` (string), `regulatory_requirements` (array[object]), `status` (enum: approved, unapproved, pending-approval, declined, expired), `updated_at` (date-time)\n\n## Delete a requirement group by ID\n\n`DELETE /requirement_groups/{id}`\n\n```python\nrequirement_group = client.requirement_groups.delete(\n    \"id\",\n)\nprint(requirement_group.id)\n```\n\nReturns: `action` (string), `country_code` (string), `created_at` (date-time), `customer_reference` (string), `id` (string), `phone_number_type` (string), `record_type` (string), `regulatory_requirements` (array[object]), `status` (enum: approved, unapproved, pending-approval, declined, expired), `updated_at` (date-time)\n\n## Submit a Requirement Group for Approval\n\n`POST /requirement_groups/{id}/submit_for_approval`\n\n```python\nrequirement_group = client.requirement_groups.submit_for_approval(\n    \"id\",\n)\nprint(requirement_group.id)\n```\n\nReturns: `action` (string), `country_code` (string), `created_at` (date-time), `customer_reference` (string), `id` (string), `phone_number_type` (string), `record_type` (string), `regulatory_requirements` (array[object]), `status` (enum: approved, unapproved, pending-approval, declined, expired), `updated_at` (date-time)\n\n## List all requirement types\n\nList all requirement types ordered by created_at descending\n\n`GET /requirement_types`\n\n```python\nrequirement_types = client.requirement_types.list()\nprint(requirement_types.data)\n```\n\nReturns: `acceptance_criteria` (object), `created_at` (string), `description` (string), `example` (string), `id` (uuid), `name` (string), `record_type` (string), `type` (enum: document, address, textual), `updated_at` (string)\n\n## Retrieve a requirement types\n\nRetrieve a requirement type by id\n\n`GET /requirement_types/{id}`\n\n```python\nrequirement_type = client.requirement_types.retrieve(\n    \"a38c217a-8019-48f8-bff6-0fdd9939075b\",\n)\nprint(requirement_type.data)\n```\n\nReturns: `acceptance_criteria` (object), `created_at` (string), `description` (string), `example` (string), `id` (uuid), `name` (string), `record_type` (string), `type` (enum: document, address, textual), `updated_at` (string)\n\n## List all requirements\n\nList all requirements with filtering, sorting, and pagination\n\n`GET /requirements`\n\n```python\npage = client.requirements.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `action` (enum: both, branded_calling, ordering, porting), `country_code` (string), `created_at` (string), `id` (uuid), `locality` (string), `phone_number_type` (enum: local, national, toll_free), `record_type` (string), `requirements_types` (array[object]), `updated_at` (string)\n\n## Retrieve a document requirement\n\nRetrieve a document requirement record\n\n`GET /requirements/{id}`\n\n```python\nrequirement = client.requirements.retrieve(\n    \"a9dad8d5-fdbd-49d7-aa23-39bb08a5ebaa\",\n)\nprint(requirement.data)\n```\n\nReturns: `action` (enum: both, branded_calling, ordering, porting), `country_code` (string), `created_at` (string), `id` (uuid), `locality` (string), `phone_number_type` (enum: local, national, toll_free), `record_type` (string), `requirements_types` (array[object]), `updated_at` (string)\n\n## Update requirement group for a sub number order\n\n`POST /sub_number_orders/{id}/requirement_group` — Required: `requirement_group_id`\n\n```python\nresponse = client.sub_number_orders.update_requirement_group(\n    id=\"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n    requirement_group_id=\"a4b201f9-8646-4e54-a7d2-b2e403eeaf8c\",\n)\nprint(response.data)\n```\n\nReturns: `country_code` (string), `created_at` (date-time), `customer_reference` (string), `id` (uuid), `is_block_sub_number_order` (boolean), `order_request_id` (uuid), `phone_number_type` (string), `phone_numbers` (array[object]), `phone_numbers_count` (integer), `record_type` (string), `regulatory_requirements` (array[object]), `requirements_met` (boolean), `status` (string), `updated_at` (date-time)\n\n## List all user addresses\n\nReturns a list of your user addresses.\n\n`GET /user_addresses`\n\n```python\npage = client.user_addresses.list()\npage = page.data[0]\nprint(page.id)\n```\n\nReturns: `administrative_area` (string), `borough` (string), `business_name` (string), `country_code` (string), `created_at` (string), `customer_reference` (string), `extended_address` (string), `first_name` (string), `id` (uuid), `last_name` (string), `locality` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `record_type` (string), `street_address` (string), `updated_at` (string)\n\n## Creates a user address\n\nCreates a user address.\n\n`POST /user_addresses` — Required: `first_name`, `last_name`, `business_name`, `street_address`, `locality`, `country_code`\n\nOptional: `administrative_area` (string), `borough` (string), `customer_reference` (string), `extended_address` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `skip_address_verification` (boolean)\n\n```python\nuser_address = client.user_addresses.create(\n    business_name=\"Toy-O'Kon\",\n    country_code=\"US\",\n    first_name=\"Alfred\",\n    last_name=\"Foster\",\n    locality=\"Austin\",\n    street_address=\"600 Congress Avenue\",\n)\nprint(user_address.data)\n```\n\nReturns: `administrative_area` (string), `borough` (string), `business_name` (string), `country_code` (string), `created_at` (string), `customer_reference` (string), `extended_address` (string), `first_name` (string), `id` (uuid), `last_name` (string), `locality` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `record_type` (string), `street_address` (string), `updated_at` (string)\n\n## Retrieve a user address\n\nRetrieves the details of an existing user address.\n\n`GET /user_addresses/{id}`\n\n```python\nuser_address = client.user_addresses.retrieve(\n    \"id\",\n)\nprint(user_address.data)\n```\n\nReturns: `administrative_area` (string), `borough` (string), `business_name` (string), `country_code` (string), `created_at` (string), `customer_reference` (string), `extended_address` (string), `first_name` (string), `id` (uuid), `last_name` (string), `locality` (string), `neighborhood` (string), `phone_number` (string), `postal_code` (string), `record_type` (string), `street_address` (string), `updated_at` (string)\n\n## List all Verified Numbers\n\nGets a paginated list of Verified Numbers.\n\n`GET /verified_numbers`\n\n```python\npage = client.verified_numbers.list()\npage = page.data[0]\nprint(page.phone_number)\n```\n\nReturns: `phone_number` (string), `record_type` (enum: verified_number), `verified_at` (string)\n\n## Request phone number verification\n\nInitiates phone number verification procedure. Supports DTMF extension dialing for voice calls to numbers behind IVR systems.\n\n`POST /verified_numbers` — Required: `phone_number`, `verification_method`\n\nOptional: `extension` (string)\n\n```python\nverified_number = client.verified_numbers.create(\n    phone_number=\"+15551234567\",\n    verification_method=\"sms\",\n)\nprint(verified_number.phone_number)\n```\n\nReturns: `phone_number` (string), `verification_method` (string)\n\n## Retrieve a verified number\n\n`GET /verified_numbers/{phone_number}`\n\n```python\nverified_number_data_wrapper = client.verified_numbers.retrieve(\n    \"+15551234567\",\n)\nprint(verified_number_data_wrapper.data)\n```\n\nReturns: `phone_number` (string), `record_type` (enum: verified_number), `verified_at` (string)\n\n## Delete a verified number\n\n`DELETE /verified_numbers/{phone_number}`\n\n```python\nverified_number_data_wrapper = client.verified_numbers.delete(\n    \"+15551234567\",\n)\nprint(verified_number_data_wrapper.data)\n```\n\nReturns: `phone_number` (string), `record_type` (enum: verified_number), `verified_at` (string)\n\n## Submit verification code\n\n`POST /verified_numbers/{phone_number}/actions/verify` — Required: `verification_code`\n\n```python\nverified_number_data_wrapper = client.verified_numbers.actions.submit_verification_code(\n    phone_number=\"+15551234567\",\n    verification_code=\"123456\",\n)\nprint(verified_number_data_wrapper.data)\n```\n\nReturns: `phone_number` (string), `record_type` (enum: verified_number), `verified_at` (string)","tags":["telnyx","numbers","compliance","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-numbers-compliance-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-numbers-compliance-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,381 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:42.060Z","embedding":null,"createdAt":"2026-04-18T22:07:05.848Z","updatedAt":"2026-04-22T06:54:42.060Z","lastSeenAt":"2026-04-22T06:54:42.060Z","tsv":"'+13125550001':83,180 '+13125550002':85 '+15551234567':2209,2237,2266,2302 '-47':771,872,960,1021 '-48':1636 '-4e54':1818 '-8019':1635 '-837':277 '-8646':1817 '-8948':770,871,959,1020 '/actions/verify':2288 '/bundle_pricing/billing_bundles':220,264 '/bundle_pricing/user_bundles':316,433,483,536 '/bundle_pricing/user_bundles/bulk':356 '/bundle_pricing/user_bundles/unused':404 '/document_links':584 '/documents':628,700,764,824,953,1013,1063 '/download':1015 '/download_link':1065 '/number_order_phone_numbers':1091 '/phone_numbers_regulatory_requirements':1181 '/regulatory_requirements':1213 '/requirement_group':1093,1796 '/requirement_groups':1238,1252,1332,1389,1460,1517 '/requirement_types':1584,1628 '/requirements':1681,1736 '/resources':540 '/sub_number_orders':1794 '/submit_for_approval':1519 '/user_addresses':1889,1955,2081 '/verified_numbers':2150,2194,2228,2257,2285 '0':226,322,590,634,1687,1895,2156 '0fdd9939075b':1640 '1':111 '123456':2305 '182bd5e5':1105,1114,1808 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':1104,1113,1807 '248e7a4bb26a':449,498,553 '30':691 '39bb08a5ebaa':1746 '401':69,146 '403':150 '404':153 '41d4':1074,1407 '422':65,134,157 '429':62,99,163 '4385':276 '43ac':447,496,551 '446655440000':1076,1409 '49d7':1744 '4fe4':1107,1116,1810 '550e8400':1071,1404 '600':2015 '6a09cdc3':769,870,958,1019 '6e1a':1106,1115,1809 '74ac943d6c58':775,876,964,1025 '8661948c':274 '8661948c-a386':273 'a386':275 'a38c217a':1634 'a4b201f9':1816 'a716':1075,1408 'a799':1108,1117,1811 'a7d2':1820 'a7d2-b2e403eeaf8c':1819 'a9dad8d5':1742 'a9dad8d5-fdbd-49d7-aa23-39bb08a5ebaa':1741 'aa23':1745 'aa62':774,875,963,1024 'aa6d9a6ab26e':1109,1118,1812 'accept':1592,1644 'action':1221,1259,1272,1284,1342,1413,1470,1530,1691,1750 'activ':284,326,371,453,502 'actual':118 'address':1612,1664,1880,1887,1917,1941,1949,1953,1964,1978,1989,1994,2014,2039,2063,2071,2079,2085,2109,2133 'administr':1899,1969,2021,2091 'af00f40f111a':280 'alfr':2007 'allow':217 'alreadi':45 'alway':70 'api':25,29,53,126,148 'approv':1312,1316,1370,1374,1441,1445,1498,1502,1515,1525,1558,1562 'area':1900,1970,2022,2092 'aren':399 'array':251,288,337,362,382,418,464,513,1156,1203,1207,1232,1266,1308,1366,1397,1437,1494,1554,1721,1780,1854,1865 'assum':42 'austin':2012 'authent':67,1061 'auto':198 'auto-pagin':197 'automat':212,697 'av':638,719,779,827,880,968 'avenu':2017 'b2e403eeaf8c':1821 'ba53':448,497,552 'backend':1059 'backoff':107,169 'bash':11 'behind':2190 'bff6':1639 'bill':268,328,373,412,455,504 'billing_bundle.data':282 'block':1135,1839 'boolean':242,285,300,327,372,454,503,1137,1160,1843,1869,1991 'borough':1902,1972,2024,2094 'brand':1694,1753 'bundl':214,218,254,260,265,269,271,286,307,314,329,347,351,366,374,393,397,413,416,422,428,435,439,442,456,474,478,485,491,505,523,531,538,546,1122 'busi':1904,1961,1996,2026,2096 'byte':706 'ca1d2263':445,494,549 'ca1d2263-d1f1-43ac-ba53-248e7a4bb26a':444,493,548 'call':54,1695,1754,2187 'check':93,112,138,160 'client':23,43 'client.bundle_pricing.billing_bundles.list':223 'client.bundle_pricing.billing_bundles.retrieve':270 'client.bundle_pricing.user_bundles.create':367 'client.bundle_pricing.user_bundles.deactivate':489 'client.bundle_pricing.user_bundles.list':319,407,543 'client.bundle_pricing.user_bundles.retrieve':440 'client.document_links.list':587 'client.documents.delete':957 'client.documents.download':1018 'client.documents.generate':1068 'client.documents.list':631 'client.documents.retrieve':768 'client.documents.update':867 'client.documents.upload':713 'client.messages.send':81 'client.number_order_phone_numbers.update':1100 'client.phone_numbers_regulatory_requirements.retrieve':1187 'client.regulatory_requirements.retrieve':1217 'client.requirement_groups.create':1271 'client.requirement_groups.delete':1465 'client.requirement_groups.list':1242 'client.requirement_groups.retrieve':1337 'client.requirement_groups.submit':1523 'client.requirement_groups.update':1402 'client.requirement_types.list':1588 'client.requirement_types.retrieve':1633 'client.requirements.list':1684 'client.requirements.retrieve':1740 'client.sub_number_orders.update':1803 'client.user_addresses.create':1995 'client.user_addresses.list':1892 'client.user_addresses.retrieve':2086 'client.verified_numbers.actions.submit':2297 'client.verified_numbers.create':2206 'client.verified_numbers.delete':2265 'client.verified_numbers.list':2153 'client.verified_numbers.retrieve':2236 'code':75,129,133,145,186,231,291,1126,1224,1255,1275,1287,1345,1416,1473,1533,1699,1758,1826,1908,1935,1967,1986,2003,2030,2057,2100,2127,2283,2291,2299,2304 'common':143 'complianc':4,8 'congress':2016 'connect':94 'content':648,729,789,837,890,978,1028,1031 'cost':230,290 'count':1858 'countri':185,1125,1223,1254,1274,1286,1344,1415,1472,1532,1698,1757,1825,1907,1966,2002,2029,2099 'creat':233,293,331,345,348,376,458,507,557,580,594,624,651,732,792,840,893,981,1246,1289,1347,1418,1475,1535,1580,1595,1647,1701,1760,1828,1910,1946,1950,2032,2102 'criteria':1593,1645 'currenc':236 'custom':654,702,735,795,843,896,984,1261,1294,1352,1392,1423,1480,1540,1833,1913,1974,2035,2105 'd1f1':446,495,550 'dash':189 'data':2234,2263,2295 'date':235,295,333,341,378,386,460,468,509,517,559,569,1130,1292,1322,1350,1380,1421,1451,1478,1508,1538,1568,1831,1875 'date-tim':1129,1291,1321,1349,1379,1420,1450,1477,1507,1537,1567,1830,1874 'deactiv':472,475 'deadlin':1128 'declin':1317,1375,1446,1503,1563 'default':34 'delay':119 'delet':482,698,918,921,929,951,952,1453,1459,2252,2256 'deni':672,753,813,861,914,1002 'descend':582,626,1582 'descript':1598,1650 'detail':2074 'dial':2184 'direct':1055 'document':572,576,597,618,621,678,681,715,759,762,767,819,822,866,868,920,923,925,956,1008,1011,1039,1054,1611,1663,1728,1732 'document.data':777,878,966 'download':1006,1009,1035,1052,1069 'dtmf':2182 'e':123 'e.164':177 'e.g':179 'e.message':130 'e.status':128,132 'e29b':1073,1406 'e29b-41d4-a716':1072,1405 'enum':641,669,722,750,782,810,830,858,883,911,971,999,1311,1369,1440,1497,1557,1610,1662,1692,1711,1751,1770,2166,2246,2275,2314 'error':50,59,64,68,72,92,127,137,144,159 'exampl':40,1600,1652 'except':88,97,120 'exist':2077 'expir':1318,1376,1447,1504,1564 'exponenti':106,168 'extend':1916,1977,2038,2108 'extens':2183,2201 'f':125,279 'f-af00f40f111a':278 'f0':773,874,962,1023 'f0-aa62-74ac943d6c58':772,873,961,1022 'f8':1638 'f8-bff6-0fdd9939075b':1637 'fail':56 'fdbd':1743 'field':140,161 'file':683,705 'filenam':657,707,738,798,846,899,987 'filter':1676 'first':1919,1957,2005,2041,2111 'float':245 'format':142,162,178 'foster':2010 'found':156 'free':1715,1774 'generat':1032,1040 'get':215,219,253,257,263,305,308,315,390,403,420,432,521,535,583,627,763,1012,1062,1180,1212,1237,1324,1331,1583,1627,1680,1735,1888,2080,2142,2149,2227 'group':1084,1096,1102,1111,1236,1241,1245,1250,1270,1328,1336,1387,1401,1456,1464,1513,1522,1787,1799,1805,1814 'handl':51,71 'header':116 'hello':87 'id':238,256,262,266,272,296,334,343,379,388,417,424,431,436,443,461,470,481,486,492,510,519,534,539,547,560,598,600,608,659,740,765,800,825,848,869,901,954,989,1014,1064,1092,1097,1103,1112,1123,1132,1142,1169,1297,1330,1333,1338,1355,1390,1403,1426,1458,1461,1466,1483,1518,1526,1543,1602,1626,1629,1654,1704,1737,1763,1795,1800,1806,1815,1836,1846,1922,2044,2082,2087,2114 'idempot':358 'import':17,21,77,108,170 'includ':181 'infect':643,724,784,832,885,973 'inform':1202 'initi':46,2176 'instal':10,13 'insuffici':151 'integ':1859 'invalid':147 'item':203,361 'iter':200,208 'ivr':2191 'json':714 'key':26,30,149,359 'kon':2001 'last':1924,1959,2008,2046,2116 'limit':61,101,165,287 'link':573,577,602,606,686,934,941,1036,1070 'list':193,311,570,574,616,619,1176,1234,1570,1574,1669,1672,1877,1883,2138,2145 'local':1138,1280,1706,1712,1765,1771,1927,1965,2011,2049,2119 'met':1159,1868 'method':194,2199,2211,2221 'minut':692 'mrc':243 'multipl':349 'must':174,684,946 'name':246,301,1604,1656,1905,1920,1925,1958,1960,1962,1997,2006,2009,2027,2042,2047,2097,2112,2117 'nation':1713,1772 'neighborhood':1929,1980,2051,2121 'network':58,91 'new':1248 'note':171 'number':3,7,173,1088,1136,1145,1148,1167,1179,1184,1192,1195,1227,1257,1278,1300,1358,1429,1486,1546,1709,1768,1791,1841,1849,1853,1857,1932,1983,2054,2124,2141,2148,2159,2162,2168,2174,2178,2189,2197,2205,2208,2215,2218,2226,2230,2233,2242,2248,2255,2259,2262,2271,2277,2287,2294,2301,2310,2316 'o':2000 'object':289,330,338,363,375,383,414,457,465,506,514,667,748,808,856,909,997,1157,1204,1208,1233,1267,1309,1367,1398,1438,1495,1555,1594,1646,1722,1781,1855,1866 'omit':38 'option':357,701,826,1260,1391,1968,2200 'order':578,622,1089,1140,1168,1273,1578,1696,1755,1792,1842,1844 'os':18 'os.environ.get':27 'page':205,211,222,224,318,320,586,588,630,632,1683,1685,1891,1893,2152,2154 'page.data':225,321,589,633,1686,1894,2155 'page.id':228,324,592,636,1689,1897 'page.phone':2158 'pagin':192,199,310,1679,2144 'parenthes':191 'patch':823,1388 'pend':644,670,725,751,785,811,833,859,886,912,974,1000,1315,1373,1444,1501,1561 'pending-approv':1314,1372,1443,1500,1560 'permiss':152 'phone':172,1087,1144,1147,1178,1183,1191,1194,1226,1256,1277,1299,1357,1428,1485,1545,1708,1767,1848,1852,1856,1931,1982,2053,2123,2161,2173,2177,2196,2207,2217,2229,2241,2258,2270,2286,2300,2309 'phone_numbers_regulatory_requirement.data':1189 'pip':12 'port':1697,1756 'post':355,699,1090,1251,1516,1793,1954,2193,2284 'postal':1934,1985,2056,2126 'pre':1044 'pre-sign':1043 'prefix':183 'price':244 'print':90,124,135,227,281,323,368,409,450,499,554,591,635,716,776,877,965,1026,1030,1077,1119,1188,1218,1243,1281,1339,1410,1467,1527,1589,1641,1688,1747,1822,1896,2018,2088,2157,2213,2238,2267,2306 'prior':949 'procedur':2180 'product':74 'public':241,299 'python':5,9,16,76,221,267,317,364,405,437,487,541,585,629,711,766,865,955,1016,1066,1098,1182,1214,1239,1268,1334,1399,1462,1520,1585,1630,1682,1738,1801,1890,1992,2083,2151,2203,2231,2260,2292 'rate':60,100,164 'record':603,610,661,742,802,850,903,991,1151,1198,1303,1361,1432,1489,1549,1606,1658,1716,1734,1775,1860,1937,2059,2129,2164,2244,2273,2312 'refer':655,703,736,796,844,897,985,1262,1295,1353,1393,1424,1481,1541,1834,1914,1975,2036,2106 'region':1201 'regulatori':1154,1172,1185,1205,1210,1215,1230,1264,1306,1364,1395,1435,1492,1552,1863 'regulatory_requirement.data':1219 'request':1141,1845,2172 'requir':139,1083,1094,1095,1101,1110,1155,1158,1161,1173,1186,1206,1211,1216,1231,1235,1240,1244,1249,1253,1265,1269,1307,1327,1335,1365,1383,1386,1396,1400,1436,1455,1463,1493,1512,1521,1553,1572,1576,1586,1619,1623,1631,1671,1674,1719,1729,1733,1739,1778,1786,1797,1798,1804,1813,1864,1867,1956,2195,2289 'requirement.data':1748 'requirement_group.id':1282,1340,1411,1468,1528 'requirement_type.data':1642 'requirement_types.data':1590 'resourc':154,336,381,463,512,524,527,544,562,564,607 'respons':406,488,542,712,1017,1027,1067,1099,1802 'response.data':410,500,555,717,1078,1120,1823 'response.read':1029 'result':80,206 'retri':96,104,114,166 'retriev':213,425,525,757,760,1171,1209,1617,1621,1726,1730,2068,2072,2223 'retry-aft':113 'return':195,229,283,325,370,394,411,452,501,556,593,637,718,778,879,967,1079,1121,1190,1220,1283,1341,1412,1469,1529,1591,1643,1690,1749,1824,1881,1898,2020,2090,2160,2216,2240,2269,2308 'scan':639,642,645,647,720,723,726,728,780,783,786,788,828,831,834,836,881,884,887,889,969,972,975,977 'servic':689,937,944 'setup':15 'sha256':664,745,805,853,906,994 'shown':48 'sign':1045 'singl':259,1326 'size':666,747,807,855,908,996 'skill' 'skill-telnyx-numbers-compliance-python' 'skip':1988 'slug':248,303 'sms':2212 'sort':1677 'source-team-telnyx' 'space':188 'spec':250 'status':640,668,721,749,781,809,829,857,882,910,970,998,1162,1164,1310,1368,1439,1496,1556,1870 'storag':1058 'street':1940,1963,2013,2062,2132 'string':232,237,247,249,252,292,302,304,419,563,566,596,605,609,612,615,650,653,656,658,663,665,675,704,708,710,731,734,737,739,744,746,756,791,794,797,799,804,806,816,839,842,845,847,852,854,864,892,895,898,900,905,907,917,980,983,986,988,993,995,1005,1127,1139,1146,1150,1153,1163,1165,1193,1197,1200,1222,1225,1229,1263,1285,1288,1296,1298,1302,1305,1343,1346,1354,1356,1360,1363,1394,1414,1417,1425,1427,1431,1434,1471,1474,1482,1484,1488,1491,1531,1534,1542,1544,1548,1551,1597,1599,1601,1605,1608,1616,1649,1651,1653,1657,1660,1668,1700,1703,1707,1718,1725,1759,1762,1766,1777,1784,1827,1835,1851,1862,1871,1901,1903,1906,1909,1912,1915,1918,1921,1926,1928,1930,1933,1936,1939,1942,1945,1971,1973,1976,1979,1981,1984,1987,2023,2025,2028,2031,2034,2037,2040,2043,2048,2050,2052,2055,2058,2061,2064,2067,2093,2095,2098,2101,2104,2107,2110,2113,2118,2120,2122,2125,2128,2131,2134,2137,2163,2171,2202,2219,2222,2243,2251,2272,2280,2311,2319 'sub':1166,1790,1840 'submit':1510,2281 'support':2181 'system':2192 'telnyx':2,6,14,20,22,24,28,78 'telnyx-numbers-compliance-python':1 'telnyx.apiconnectionerror':89 'telnyx.apistatuserror':121 'telnyx.ratelimiterror':98 'temporari':1034,1042 'text':86 'textual':1613,1665 'time':109,1131,1293,1323,1351,1381,1422,1452,1479,1509,1539,1569,1832,1876 'time.sleep':110 'toll':1714,1773 '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' 'toy':1999 'toy-o':1998 'tri':79 'type':565,604,611,649,662,730,743,790,803,838,851,891,904,979,992,1149,1152,1196,1199,1228,1258,1279,1301,1304,1359,1362,1430,1433,1487,1490,1547,1550,1573,1577,1587,1607,1609,1620,1624,1632,1659,1661,1710,1717,1720,1769,1776,1779,1850,1861,1938,2060,2130,2165,2245,2274,2313 'unapprov':1313,1371,1442,1499,1559 'unlink':948 'unus':391,408 'updat':339,384,466,515,567,613,673,754,814,817,820,862,915,1003,1082,1319,1377,1382,1448,1505,1565,1614,1666,1723,1782,1785,1872,1943,2065,2135 'upload':676,679,682 'uri':1081 'url':709,1046,1080 'us':1276,2004 'use':201,402,1050 'user':306,313,342,346,350,354,365,387,392,396,415,421,427,434,438,441,469,473,477,484,490,518,522,530,537,545,1879,1886,1948,1952,1993,2070,2078,2084 'user_address.data':2019,2089 'user_bundle.data':369,451 'uuid':239,297,335,344,360,380,389,462,471,511,520,561,599,601,660,741,801,849,902,990,1124,1133,1143,1170,1603,1655,1705,1764,1837,1847,1923,2045,2115 'valid':63,136,158 'valu':1384 'verif':1990,2175,2179,2198,2210,2220,2282,2290,2298,2303 'verifi':671,752,812,860,913,1001,2140,2147,2167,2169,2204,2225,2232,2247,2249,2254,2261,2276,2278,2293,2315,2317 'verified_number.phone':2214 'verified_number_data_wrapper.data':2239,2268,2307 'voic':2186 'wait':102 'within':690 'without':1060 'wrapper':2235,2264,2296","prices":[{"id":"a4e84496-8be8-449e-8793-cef5fd92cc8a","listingId":"43d077fd-affd-4a43-a4d4-c71e0b7facf6","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:05.848Z"}],"sources":[{"listingId":"43d077fd-affd-4a43-a4d4-c71e0b7facf6","source":"github","sourceId":"team-telnyx/ai/telnyx-numbers-compliance-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-numbers-compliance-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:05.848Z","lastSeenAt":"2026-04-22T06:54:42.060Z"}],"details":{"listingId":"43d077fd-affd-4a43-a4d4-c71e0b7facf6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-numbers-compliance-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":"0d846bb05bb697d3d8b0300db94bcd5e087a1f8a","skill_md_path":"skills/telnyx-numbers-compliance-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-numbers-compliance-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-numbers-compliance-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-numbers-compliance-python"},"updatedAt":"2026-04-22T06:54:42.060Z"}}