{"id":"c3bad5cf-1161-4255-b398-ee284839e55f","shortId":"G3zmcP","kind":"skill","title":"telnyx-numbers-compliance-ruby","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Numbers Compliance - Ruby\n\n## Installation\n\n```bash\ngem install telnyx\n```\n\n## Setup\n\n```ruby\nrequire \"telnyx\"\n\nclient = Telnyx::Client.new(\n  api_key: ENV[\"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```ruby\nbegin\n  result = client.messages.send_(to: \"+13125550001\", from: \"+13125550002\", text: \"Hello\")\nrescue Telnyx::Errors::APIConnectionError\n  puts \"Network error — check connectivity and retry\"\nrescue Telnyx::Errors::RateLimitError\n  # 429: rate limited — wait and retry with exponential backoff\n  sleep(1) # Check Retry-After header for actual delay\nrescue Telnyx::Errors::APIStatusError => e\n  puts \"API error #{e.status}: #{e.message}\"\n  if e.status == 422\n    puts \"Validation error — check required fields and formats\"\n  end\nend\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:** Use `.auto_paging_each` for automatic iteration: `page.auto_paging_each { |item| puts item.id }`.\n\n## Retrieve Bundles\n\nGet all allowed bundles.\n\n`GET /bundle_pricing/billing_bundles`\n\n```ruby\npage = client.bundle_pricing.billing_bundles.list\n\nputs(page)\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```ruby\nbilling_bundle = client.bundle_pricing.billing_bundles.retrieve(\"8661948c-a386-4385-837f-af00f40f111a\")\n\nputs(billing_bundle)\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```ruby\npage = client.bundle_pricing.user_bundles.list\n\nputs(page)\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```ruby\nuser_bundle = client.bundle_pricing.user_bundles.create\n\nputs(user_bundle)\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```ruby\nresponse = client.bundle_pricing.user_bundles.list_unused\n\nputs(response)\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```ruby\nuser_bundle = client.bundle_pricing.user_bundles.retrieve(\"ca1d2263-d1f1-43ac-ba53-248e7a4bb26a\")\n\nputs(user_bundle)\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```ruby\nresponse = client.bundle_pricing.user_bundles.deactivate(\"ca1d2263-d1f1-43ac-ba53-248e7a4bb26a\")\n\nputs(response)\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```ruby\nresponse = client.bundle_pricing.user_bundles.list_resources(\"ca1d2263-d1f1-43ac-ba53-248e7a4bb26a\")\n\nputs(response)\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```ruby\npage = client.document_links.list\n\nputs(page)\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```ruby\npage = client.documents.list\n\nputs(page)\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```ruby\nresponse = client.documents.upload_json(document: {})\n\nputs(response)\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```ruby\ndocument = client.documents.retrieve(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(document)\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```ruby\ndocument = client.documents.update(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(document)\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```ruby\ndocument = client.documents.delete(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(document)\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```ruby\nresponse = client.documents.download(\"6a09cdc3-8948-47f0-aa62-74ac943d6c58\")\n\nputs(response)\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```ruby\nresponse = client.documents.generate_download_link(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(response)\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```ruby\nresponse = client.number_order_phone_numbers.update_requirement_group(\n  \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n  requirement_group_id: \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\"\n)\n\nputs(response)\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```ruby\nphone_numbers_regulatory_requirement = client.phone_numbers_regulatory_requirements.retrieve\n\nputs(phone_numbers_regulatory_requirement)\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```ruby\nregulatory_requirement = client.regulatory_requirements.retrieve\n\nputs(regulatory_requirement)\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```ruby\nrequirement_groups = client.requirement_groups.list\n\nputs(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```ruby\nrequirement_group = client.requirement_groups.create(action: :ordering, country_code: \"US\", phone_number_type: :local)\n\nputs(requirement_group)\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```ruby\nrequirement_group = client.requirement_groups.retrieve(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(requirement_group)\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```ruby\nrequirement_group = client.requirement_groups.update(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(requirement_group)\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```ruby\nrequirement_group = client.requirement_groups.delete(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(requirement_group)\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```ruby\nrequirement_group = client.requirement_groups.submit_for_approval(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(requirement_group)\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```ruby\nrequirement_types = client.requirement_types.list\n\nputs(requirement_types)\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```ruby\nrequirement_type = client.requirement_types.retrieve(\"a38c217a-8019-48f8-bff6-0fdd9939075b\")\n\nputs(requirement_type)\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```ruby\npage = client.requirements.list\n\nputs(page)\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```ruby\nrequirement = client.requirements.retrieve(\"a9dad8d5-fdbd-49d7-aa23-39bb08a5ebaa\")\n\nputs(requirement)\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```ruby\nresponse = client.sub_number_orders.update_requirement_group(\n  \"182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e\",\n  requirement_group_id: \"a4b201f9-8646-4e54-a7d2-b2e403eeaf8c\"\n)\n\nputs(response)\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```ruby\npage = client.user_addresses.list\n\nputs(page)\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```ruby\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)\n\nputs(user_address)\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```ruby\nuser_address = client.user_addresses.retrieve(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(user_address)\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```ruby\npage = client.verified_numbers.list\n\nputs(page)\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```ruby\nverified_number = client.verified_numbers.create(phone_number: \"+15551234567\", verification_method: :sms)\n\nputs(verified_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```ruby\nverified_number_data_wrapper = client.verified_numbers.retrieve(\"+15551234567\")\n\nputs(verified_number_data_wrapper)\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```ruby\nverified_number_data_wrapper = client.verified_numbers.delete(\"+15551234567\")\n\nputs(verified_number_data_wrapper)\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```ruby\nverified_number_data_wrapper = client.verified_numbers.actions.submit_verification_code(\"+15551234567\", verification_code: \"123456\")\n\nputs(verified_number_data_wrapper)\n```\n\nReturns: `phone_number` (string), `record_type` (enum: verified_number), `verified_at` (string)","tags":["telnyx","numbers","compliance","ruby","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-numbers-compliance-ruby","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-ruby","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 (19,707 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.149Z","embedding":null,"createdAt":"2026-04-18T22:07:06.628Z","updatedAt":"2026-04-22T06:54:42.149Z","lastSeenAt":"2026-04-22T06:54:42.149Z","tsv":"'+13125550001':78,177 '+13125550002':80 '+15551234567':2193,2221,2253,2290 '-47':741,840,928,989 '-48':1623 '-4e54':1802 '-8019':1622 '-837':262 '-8646':1801 '-8948':740,839,927,988 '/actions/verify':2278 '/bundle_pricing/billing_bundles':210,251 '/bundle_pricing/user_bundles':302,417,465,515 '/bundle_pricing/user_bundles/bulk':339 '/bundle_pricing/user_bundles/unused':388 '/document_links':560 '/documents':601,670,734,794,921,981,1027 '/download':983 '/download_link':1029 '/number_order_phone_numbers':1055 '/phone_numbers_regulatory_requirements':1144 '/regulatory_requirements':1179 '/requirement_group':1057,1781 '/requirement_groups':1205,1219,1300,1363,1434,1497 '/requirement_types':1570,1615 '/requirements':1669,1721 '/resources':519 '/sub_number_orders':1779 '/submit_for_approval':1499 '/user_addresses':1873,1936,2063 '/verified_numbers':2138,2178,2212,2244,2275 '0fdd9939075b':1627 '1':108 '123456':2293 '182bd5e5':1068,1077,1792 '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e':1067,1076,1791 '248e7a4bb26a':430,477,529 '30':661 '39bb08a5ebaa':1731 '401':66,143 '403':147 '404':150 '41d4':1038,1309,1380,1443,1509,2072 '422':62,129,154 '429':59,98,160 '4385':261 '43ac':428,475,527 '446655440000':1040,1311,1382,1445,1511,2074 '49d7':1729 '4fe4':1070,1079,1794 '550e8400':1035,1306,1377,1440,1506,2069 '600':1996 '6a09cdc3':739,838,926,987 '6e1a':1069,1078,1793 '74ac943d6c58':745,844,932,993 '8661948c':259 '8661948c-a386':258 'a386':260 'a38c217a':1621 'a4b201f9':1800 'a716':1039,1310,1381,1444,1510,2073 'a799':1071,1080,1795 'a7d2':1804 'a7d2-b2e403eeaf8c':1803 'a9dad8d5':1727 'a9dad8d5-fdbd-49d7-aa23-39bb08a5ebaa':1726 'aa23':1730 'aa62':744,843,931,992 'aa6d9a6ab26e':1072,1081,1796 'accept':1579,1632 'action':1188,1226,1239,1252,1316,1387,1450,1516,1676,1735 'activ':270,309,355,435,481 'actual':115 'address':1599,1652,1864,1871,1898,1922,1930,1934,1945,1959,1970,1975,1995,2001,2021,2045,2053,2061,2067,2077,2097,2121 'administr':1880,1950,2003,2079 'af00f40f111a':265 'alfr':1988 'allow':207 'alreadi':42 'alway':67 'api':22,26,50,123,145 'apiconnectionerror':86 'apistatuserror':120 'approv':1280,1284,1344,1348,1415,1419,1478,1482,1495,1505,1544,1548 'area':1881,1951,2004,2080 'aren':383 'array':238,274,320,345,366,402,446,492,1119,1169,1173,1199,1233,1276,1340,1371,1411,1474,1540,1706,1765,1838,1849 'assum':39 'austin':1993 'authent':64,1025 'auto':191 'automat':195,667 'av':608,689,749,797,848,936 'avenu':1998 'b2e403eeaf8c':1805 'ba53':429,476,528 'backend':1023 'backoff':106,166 'bash':11 'begin':74 'behind':2174 'bff6':1626 'bill':255,267,311,357,396,437,483 'block':1098,1823 'boolean':229,271,286,310,356,436,482,1100,1123,1827,1853,1972 'borough':1883,1953,2006,2082 'brand':1679,1738 'bundl':204,208,241,247,252,256,268,272,293,300,312,330,334,349,353,358,377,381,397,400,406,412,419,423,433,438,456,460,467,484,502,510,517,1085 'busi':1885,1942,1977,2008,2084 'byte':676 'ca1d2263':426,473,525 'ca1d2263-d1f1-43ac-ba53-248e7a4bb26a':425,472,524 'call':51,1680,1739,2171 'check':90,109,133,157 'client':19,40 'client.bundle_pricing.billing_bundles.list':213 'client.bundle_pricing.billing_bundles.retrieve':257 'client.bundle_pricing.user_bundles.create':350 'client.bundle_pricing.user_bundles.deactivate':471 'client.bundle_pricing.user_bundles.list':305,391,522 'client.bundle_pricing.user_bundles.retrieve':424 'client.document_links.list':563 'client.documents.delete':925 'client.documents.download':986 'client.documents.generate':1032 'client.documents.list':604 'client.documents.retrieve':738 'client.documents.update':837 'client.documents.upload':683 'client.messages.send':76 'client.new':21 'client.number_order_phone_numbers.update':1064 'client.phone_numbers_regulatory_requirements.retrieve':1150 'client.regulatory_requirements.retrieve':1183 'client.requirement_groups.create':1238 'client.requirement_groups.delete':1439 'client.requirement_groups.list':1209 'client.requirement_groups.retrieve':1305 'client.requirement_groups.submit':1503 'client.requirement_groups.update':1376 'client.requirement_types.list':1574 'client.requirement_types.retrieve':1620 'client.requirements.list':1672 'client.requirements.retrieve':1725 'client.sub_number_orders.update':1788 'client.user_addresses.create':1976 'client.user_addresses.list':1876 'client.user_addresses.retrieve':2068 'client.verified_numbers.actions.submit':2287 'client.verified_numbers.create':2190 'client.verified_numbers.delete':2252 'client.verified_numbers.list':2141 'client.verified_numbers.retrieve':2220 'code':72,142,183,218,277,1089,1191,1222,1242,1255,1319,1390,1453,1519,1684,1743,1810,1889,1916,1948,1967,1984,2012,2039,2088,2115,2273,2281,2289,2292 'common':140 'complianc':4,8 'congress':1997 'connect':91 'content':618,699,759,807,858,946 'cost':217,276 'count':1842 'countri':182,1088,1190,1221,1241,1254,1318,1389,1452,1518,1683,1742,1809,1888,1947,1983,2011,2087 'creat':220,279,314,328,331,360,440,486,533,556,567,597,621,702,762,810,861,949,1213,1257,1321,1392,1455,1521,1566,1582,1635,1686,1745,1812,1891,1927,1931,2014,2090 'criteria':1580,1633 'currenc':223 'custom':624,672,705,765,813,864,952,1228,1262,1326,1366,1397,1460,1526,1817,1894,1955,2017,2093 'd1f1':427,474,526 'dash':186 'data':2218,2225,2250,2257,2285,2297 'date':222,281,316,324,362,370,442,450,488,496,535,545,1093,1260,1290,1324,1354,1395,1425,1458,1488,1524,1554,1815,1859 'date-tim':1092,1259,1289,1323,1353,1394,1424,1457,1487,1523,1553,1814,1858 'deactiv':454,457 'deadlin':1091 'declin':1285,1349,1420,1483,1549 'default':31 'delay':116 'delet':464,668,886,889,897,919,920,1427,1433,2239,2243 'deni':642,723,783,831,882,970 'descend':558,599,1568 'descript':1585,1638 'detail':2056 'dial':2168 'direct':1019 'document':548,552,570,591,594,648,651,685,729,732,737,747,789,792,836,846,888,891,893,924,934,976,979,1003,1018,1598,1651,1713,1717 'download':974,977,999,1016,1033 'dtmf':2166 'e':121 'e.164':174 'e.g':176 'e.message':126 'e.status':125,128 'e29b':1037,1308,1379,1442,1508,2071 'e29b-41d4-a716':1036,1307,1378,1441,1507,2070 'end':138,139 'enum':611,639,692,720,752,780,800,828,851,879,939,967,1279,1343,1414,1477,1543,1597,1650,1677,1696,1736,1755,2150,2233,2265,2305 'env':24 'error':47,56,61,65,69,85,89,96,119,124,132,141,156 'exampl':37,1587,1640 'exist':2059 'expir':1286,1350,1421,1484,1550 'exponenti':105,165 'extend':1897,1958,2020,2096 'extens':2167,2185 'f':264 'f-af00f40f111a':263 'f0':743,842,930,991 'f0-aa62-74ac943d6c58':742,841,929,990 'f8':1625 'f8-bff6-0fdd9939075b':1624 'fail':53 'fdbd':1728 'field':135,158 'file':653,675 'filenam':627,677,708,768,816,867,955 'filter':1664 'first':1900,1938,1986,2023,2099 'float':232 'format':137,159,175 'foster':1991 'found':153 'free':1700,1759 'gem':12 'generat':996,1004 'get':205,209,240,244,250,291,294,301,374,387,404,416,500,514,559,600,733,980,1026,1143,1178,1204,1292,1299,1569,1614,1668,1720,1872,2062,2130,2137,2211 'group':1048,1060,1066,1074,1203,1208,1212,1217,1237,1250,1296,1304,1314,1361,1375,1385,1430,1438,1448,1493,1502,1514,1772,1784,1790,1798 'handl':48,68 'header':113 'hello':82 'id':225,243,249,253,282,317,326,363,372,401,408,415,420,443,452,463,468,489,498,513,518,536,571,573,581,629,710,735,770,795,818,869,922,957,982,1028,1056,1061,1075,1086,1095,1105,1132,1265,1298,1301,1329,1364,1400,1432,1435,1463,1498,1529,1589,1613,1616,1642,1689,1722,1748,1780,1785,1799,1820,1830,1903,2026,2064,2102 'idempot':341 'import':167 'includ':178 'infect':613,694,754,802,853,941 'inform':1168 'initi':43,2160 'instal':10,13 'insuffici':148 'integ':1843 'invalid':144 'item':200,344 'item.id':202 'iter':196 'ivr':2175 'json':684 'key':23,27,146,342 'kon':1982 'last':1905,1940,1989,2028,2104 'limit':58,100,162,273 'link':549,553,575,579,656,902,909,1000,1034 'list':297,546,550,589,592,1139,1201,1556,1560,1657,1660,1861,1867,2126,2133 'local':1101,1247,1691,1697,1750,1756,1908,1946,1992,2031,2107 'met':1122,1852 'method':2183,2195,2205 'minut':662 'mrc':230 'multipl':332 'must':171,654,914 'name':233,287,1591,1644,1886,1901,1906,1939,1941,1943,1978,1987,1990,2009,2024,2029,2085,2100,2105 'nation':1698,1757 'neighborhood':1910,1961,2033,2109 'network':55,88 'new':1215 'note':168 'number':3,7,170,1052,1099,1108,1111,1130,1142,1147,1153,1158,1161,1194,1224,1245,1268,1332,1403,1466,1532,1694,1753,1776,1825,1833,1837,1841,1913,1964,2036,2112,2129,2136,2146,2152,2158,2162,2173,2181,2189,2192,2199,2202,2210,2214,2217,2224,2229,2235,2242,2246,2249,2256,2261,2267,2277,2284,2296,2301,2307 'o':1981 'object':275,313,321,346,359,367,398,439,447,485,493,637,718,778,826,877,965,1120,1170,1174,1200,1234,1277,1341,1372,1412,1475,1541,1581,1634,1707,1766,1839,1850 'omit':35 'option':340,671,796,1227,1365,1949,2184 'order':554,595,1053,1103,1131,1240,1564,1681,1740,1777,1826,1828 'page':192,198,212,215,304,307,562,565,603,606,1671,1674,1875,1878,2140,2143 'page.auto':197 'pagin':189,296,1667,2132 'parenthes':188 'patch':793,1362 'pend':614,640,695,721,755,781,803,829,854,880,942,968,1283,1347,1418,1481,1547 'pending-approv':1282,1346,1417,1480,1546 'permiss':149 'phone':169,1051,1107,1110,1141,1146,1152,1157,1160,1193,1223,1244,1267,1331,1402,1465,1531,1693,1752,1832,1836,1840,1912,1963,2035,2111,2145,2157,2161,2180,2191,2201,2213,2228,2245,2260,2276,2300 'port':1682,1741 'post':338,669,1054,1218,1496,1778,1935,2177,2274 'postal':1915,1966,2038,2114 'pre':1008 'pre-sign':1007 'prefix':180 'price':231 'prior':917 'procedur':2164 'product':71 'public':228,285 'put':87,122,130,201,214,266,306,351,393,431,478,530,564,605,686,746,845,933,994,1041,1082,1151,1184,1210,1248,1312,1383,1446,1512,1575,1628,1673,1732,1806,1877,1999,2075,2142,2197,2222,2254,2294 'rate':57,99,161 'ratelimiterror':97 'record':576,583,631,712,772,820,871,959,1114,1164,1271,1335,1406,1469,1535,1593,1646,1701,1719,1760,1844,1918,2041,2117,2148,2231,2263,2303 'refer':625,673,706,766,814,865,953,1229,1263,1327,1367,1398,1461,1527,1818,1895,1956,2018,2094 'region':1167 'regulatori':1117,1135,1148,1154,1171,1176,1181,1185,1197,1231,1274,1338,1369,1409,1472,1538,1847 'request':1104,1829,2156 'requir':17,134,1047,1058,1059,1065,1073,1118,1121,1124,1136,1149,1155,1172,1177,1182,1186,1198,1202,1207,1211,1216,1220,1232,1236,1249,1275,1295,1303,1313,1339,1357,1360,1370,1374,1384,1410,1429,1437,1447,1473,1492,1501,1513,1539,1558,1562,1572,1576,1606,1610,1618,1629,1659,1662,1704,1714,1718,1724,1733,1763,1771,1782,1783,1789,1797,1848,1851,1937,2179,2279 'rescu':83,94,117 'resourc':151,319,365,445,491,503,506,523,538,540,580 'respons':390,394,470,479,521,531,682,687,985,995,1031,1042,1063,1083,1787,1807 'result':75 'retri':93,103,111,163 'retriev':203,409,504,727,730,1134,1175,1604,1608,1711,1715,2050,2054,2207 'retry-aft':110 'return':216,269,308,354,378,395,434,480,532,566,607,688,748,847,935,1043,1084,1156,1187,1251,1315,1386,1449,1515,1578,1631,1675,1734,1808,1865,1879,2002,2078,2144,2200,2227,2259,2299 'rubi':5,9,16,73,211,254,303,347,389,421,469,520,561,602,681,736,835,923,984,1030,1062,1145,1180,1206,1235,1302,1373,1436,1500,1571,1617,1670,1723,1786,1874,1973,2065,2139,2187,2215,2247,2282 'scan':609,612,615,617,690,693,696,698,750,753,756,758,798,801,804,806,849,852,855,857,937,940,943,945 'servic':659,905,912 'setup':15 'sha256':634,715,775,823,874,962 'shown':45 'sign':1009 'singl':246,1294 'size':636,717,777,825,876,964 'skill' 'skill-telnyx-numbers-compliance-ruby' 'skip':1969 'sleep':107 'slug':235,289 'sms':2196 'sort':1665 'source-team-telnyx' 'space':185 'spec':237 'status':610,638,691,719,751,779,799,827,850,878,938,966,1125,1127,1278,1342,1413,1476,1542,1854 'storag':1022 'street':1921,1944,1994,2044,2120 'string':219,224,234,236,239,278,288,290,403,539,542,569,578,582,585,588,620,623,626,628,633,635,645,674,678,680,701,704,707,709,714,716,726,761,764,767,769,774,776,786,809,812,815,817,822,824,834,860,863,866,868,873,875,885,948,951,954,956,961,963,973,1090,1102,1109,1113,1116,1126,1128,1159,1163,1166,1189,1192,1196,1230,1253,1256,1264,1266,1270,1273,1317,1320,1328,1330,1334,1337,1368,1388,1391,1399,1401,1405,1408,1451,1454,1462,1464,1468,1471,1517,1520,1528,1530,1534,1537,1584,1586,1588,1592,1595,1603,1637,1639,1641,1645,1648,1656,1685,1688,1692,1703,1710,1744,1747,1751,1762,1769,1811,1819,1835,1846,1855,1882,1884,1887,1890,1893,1896,1899,1902,1907,1909,1911,1914,1917,1920,1923,1926,1952,1954,1957,1960,1962,1965,1968,2005,2007,2010,2013,2016,2019,2022,2025,2030,2032,2034,2037,2040,2043,2046,2049,2081,2083,2086,2089,2092,2095,2098,2101,2106,2108,2110,2113,2116,2119,2122,2125,2147,2155,2186,2203,2206,2230,2238,2262,2270,2302,2310 'sub':1129,1775,1824 'submit':1490,2271 'support':2165 'system':2176 'telnyx':2,6,14,18,20,25,84,95,118 'telnyx-numbers-compliance-rubi':1 'temporari':998,1006 'text':81 'textual':1600,1653 'time':1094,1261,1291,1325,1355,1396,1426,1459,1489,1525,1555,1816,1860 'toll':1699,1758 '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':1980 'toy-o':1979 'type':541,577,584,619,632,700,713,760,773,808,821,859,872,947,960,1112,1115,1162,1165,1195,1225,1246,1269,1272,1333,1336,1404,1407,1467,1470,1533,1536,1559,1563,1573,1577,1594,1596,1607,1611,1619,1630,1647,1649,1695,1702,1705,1754,1761,1764,1834,1845,1919,2042,2118,2149,2232,2264,2304 'unapprov':1281,1345,1416,1479,1545 'unlink':916 'unus':375,392 'updat':322,368,448,494,543,586,643,724,784,787,790,832,883,971,1046,1287,1351,1356,1422,1485,1551,1601,1654,1708,1767,1770,1856,1924,2047,2123 'upload':646,649,652 'uri':1045 'url':679,1010,1044 'us':1243,1985 'use':190,386,1014 'user':292,299,325,329,333,337,348,352,371,376,380,399,405,411,418,422,432,451,455,459,466,497,501,509,516,1863,1870,1929,1933,1974,2000,2052,2060,2066,2076 'uuid':226,283,318,327,343,364,373,444,453,490,499,537,572,574,630,711,771,819,870,958,1087,1096,1106,1133,1590,1643,1690,1749,1821,1831,1904,2027,2103 'valid':60,131,155 'valu':1358 'verif':1971,2159,2163,2182,2194,2204,2272,2280,2288,2291 'verifi':641,722,782,830,881,969,2128,2135,2151,2153,2188,2198,2209,2216,2223,2234,2236,2241,2248,2255,2266,2268,2283,2295,2306,2308 'voic':2170 'wait':101 'within':660 'without':1024 'wrapper':2219,2226,2251,2258,2286,2298","prices":[{"id":"c7df3a9c-d707-4f11-9b0c-9c391d8633b6","listingId":"c3bad5cf-1161-4255-b398-ee284839e55f","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:06.628Z"}],"sources":[{"listingId":"c3bad5cf-1161-4255-b398-ee284839e55f","source":"github","sourceId":"team-telnyx/ai/telnyx-numbers-compliance-ruby","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-numbers-compliance-ruby","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:06.628Z","lastSeenAt":"2026-04-22T06:54:42.149Z"}],"details":{"listingId":"c3bad5cf-1161-4255-b398-ee284839e55f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-numbers-compliance-ruby","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":"88464166b53b71f16a2a2cc2e6e8a856e08349d4","skill_md_path":"skills/telnyx-numbers-compliance-ruby/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-numbers-compliance-ruby"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-numbers-compliance-ruby","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-numbers-compliance-ruby"},"updatedAt":"2026-04-22T06:54:42.149Z"}}