{"id":"5b32799e-4a97-48ba-8318-98a98eb529c6","shortId":"TGeEhc","kind":"skill","title":"telnyx-numbers-config-ruby","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Numbers Config - 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## Bulk update phone number profiles\n\n`POST /messaging_numbers_bulk_updates` — Required: `messaging_profile_id`, `numbers`\n\nOptional: `assign_only` (boolean)\n\n```ruby\nmessaging_numbers_bulk_update = client.messaging_numbers_bulk_updates.create(\n  messaging_profile_id: \"00000000-0000-0000-0000-000000000000\",\n  numbers: [\"+18880000000\", \"+18880000001\", \"+18880000002\"]\n)\n\nputs(messaging_numbers_bulk_update)\n```\n\nReturns: `failed` (array[string]), `order_id` (uuid), `pending` (array[string]), `record_type` (enum: messaging_numbers_bulk_update), `success` (array[string])\n\n## Retrieve bulk update status\n\n`GET /messaging_numbers_bulk_updates/{order_id}`\n\n```ruby\nmessaging_numbers_bulk_update = client.messaging_numbers_bulk_updates.retrieve(\"order_id\")\n\nputs(messaging_numbers_bulk_update)\n```\n\nReturns: `failed` (array[string]), `order_id` (uuid), `pending` (array[string]), `record_type` (enum: messaging_numbers_bulk_update), `success` (array[string])\n\n## List mobile phone numbers with messaging settings\n\n`GET /mobile_phone_numbers/messaging`\n\n```ruby\npage = client.mobile_phone_numbers.messaging.list\n\nputs(page)\n```\n\nReturns: `country_code` (string), `created_at` (date-time), `features` (object), `id` (string), `messaging_product` (string), `messaging_profile_id` (string | null), `organization_id` (string), `phone_number` (string), `record_type` (enum: messaging_phone_number, messaging_settings), `tags` (array[string]), `traffic_type` (string), `type` (enum: longcode), `updated_at` (date-time)\n\n## Retrieve a mobile phone number with messaging settings\n\n`GET /mobile_phone_numbers/{id}/messaging`\n\n```ruby\nmessaging = client.mobile_phone_numbers.messaging.retrieve(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(messaging)\n```\n\nReturns: `country_code` (string), `created_at` (date-time), `features` (object), `id` (string), `messaging_product` (string), `messaging_profile_id` (string | null), `organization_id` (string), `phone_number` (string), `record_type` (enum: messaging_phone_number, messaging_settings), `tags` (array[string]), `traffic_type` (string), `type` (enum: longcode), `updated_at` (date-time)\n\n## List phone numbers\n\n`GET /phone_numbers`\n\n```ruby\npage = client.phone_numbers.list\n\nputs(page)\n```\n\nReturns: `billing_group_id` (string | null), `call_forwarding_enabled` (boolean), `call_recording_enabled` (boolean), `caller_id_name_enabled` (boolean), `cnam_listing_enabled` (boolean), `connection_id` (string | null), `connection_name` (string | null), `country_iso_alpha2` (string), `created_at` (date-time), `customer_reference` (string | null), `deletion_lock_enabled` (boolean), `emergency_address_id` (string | null), `emergency_enabled` (boolean), `emergency_status` (enum: active, deprovisioning, disabled, provisioning, provisioning-failed), `external_pin` (string | null), `hd_voice_enabled` (boolean), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `messaging_profile_id` (string | null), `messaging_profile_name` (string | null), `phone_number` (string), `phone_number_type` (enum: local, toll_free, mobile, national, shared_cost, landline, tollfree, shortcode, longcode), `purchased_at` (string), `record_type` (string), `source_type` (object), `status` (enum: purchase-pending, purchase-failed, port-pending, port-failed, active, deleted, emergency-only, ported-out, port-out-pending, requirement-info-pending, requirement-info-under-review, requirement-info-exception, provision-pending), `t38_fax_gateway_enabled` (boolean), `tags` (array[string]), `updated_at` (string)\n\n## Verify ownership of phone numbers\n\nVerifies ownership of the provided phone numbers and returns a mapping of numbers to their IDs, plus a list of numbers not found in the account.\n\n`POST /phone_numbers/actions/verify_ownership` — Required: `phone_numbers`\n\n```ruby\nresponse = client.phone_numbers.actions.verify_ownership(phone_numbers: [\"+15551234567\"])\n\nputs(response)\n```\n\nReturns: `found` (array[object]), `not_found` (array[string]), `record_type` (string)\n\n## Lists the phone numbers jobs\n\n`GET /phone_numbers/jobs`\n\n```ruby\npage = client.phone_numbers.jobs.list\n\nputs(page)\n```\n\nReturns: `created_at` (string), `etc` (date-time), `failed_operations` (array[object]), `id` (uuid), `pending_operations` (array[object]), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: pending, in_progress, completed, failed, expired), `successful_operations` (array[object]), `type` (enum: update_emergency_settings, delete_phone_numbers, update_phone_numbers), `updated_at` (string)\n\n## Delete a batch of numbers\n\nCreates a new background job to delete a batch of numbers. At most one thousand numbers can be updated per API call.\n\n`POST /phone_numbers/jobs/delete_phone_numbers` — Required: `phone_numbers`\n\n```ruby\nresponse = client.phone_numbers.jobs.delete_batch(phone_numbers: [\"+19705555098\", \"+19715555098\", \"32873127836\"])\n\nputs(response)\n```\n\nReturns: `created_at` (string), `etc` (date-time), `failed_operations` (array[object]), `id` (uuid), `pending_operations` (array[object]), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: pending, in_progress, completed, failed, expired), `successful_operations` (array[object]), `type` (enum: update_emergency_settings, delete_phone_numbers, update_phone_numbers), `updated_at` (string)\n\n## Update the emergency settings from a batch of numbers\n\nCreates a background job to update the emergency settings of a collection of phone numbers. At most one thousand numbers can be updated per API call.\n\n`POST /phone_numbers/jobs/update_emergency_settings` — Required: `emergency_enabled`, `phone_numbers`\n\nOptional: `emergency_address_id` (string | null)\n\n```ruby\nresponse = client.phone_numbers.jobs.update_emergency_settings_batch(\n  emergency_enabled: true,\n  phone_numbers: [\"+19705555098\", \"+19715555098\", \"32873127836\"]\n)\n\nputs(response)\n```\n\nReturns: `created_at` (string), `etc` (date-time), `failed_operations` (array[object]), `id` (uuid), `pending_operations` (array[object]), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: pending, in_progress, completed, failed, expired), `successful_operations` (array[object]), `type` (enum: update_emergency_settings, delete_phone_numbers, update_phone_numbers), `updated_at` (string)\n\n## Update a batch of numbers\n\nCreates a new background job to update a batch of numbers. At most one thousand numbers can be updated per API call. At least one of the updateable fields must be submitted.\n\n`POST /phone_numbers/jobs/update_phone_numbers` — Required: `phone_numbers`\n\nOptional: `billing_group_id` (string), `connection_id` (string), `customer_reference` (string), `deletion_lock_enabled` (boolean), `external_pin` (string), `hd_voice_enabled` (boolean), `tags` (array[string]), `voice` (object)\n\n```ruby\nresponse = client.phone_numbers.jobs.update_batch(phone_numbers: [\"1583466971586889004\", \"+13127367254\"])\n\nputs(response)\n```\n\nReturns: `created_at` (string), `etc` (date-time), `failed_operations` (array[object]), `id` (uuid), `pending_operations` (array[object]), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: pending, in_progress, completed, failed, expired), `successful_operations` (array[object]), `type` (enum: update_emergency_settings, delete_phone_numbers, update_phone_numbers), `updated_at` (string)\n\n## Retrieve a phone numbers job\n\n`GET /phone_numbers/jobs/{id}`\n\n```ruby\njob = client.phone_numbers.jobs.retrieve(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(job)\n```\n\nReturns: `created_at` (string), `etc` (date-time), `failed_operations` (array[object]), `id` (uuid), `pending_operations` (array[object]), `phone_numbers` (array[object]), `record_type` (string), `status` (enum: pending, in_progress, completed, failed, expired), `successful_operations` (array[object]), `type` (enum: update_emergency_settings, delete_phone_numbers, update_phone_numbers), `updated_at` (string)\n\n## List phone numbers with messaging settings\n\n`GET /phone_numbers/messaging`\n\n```ruby\npage = client.phone_numbers.messaging.list\n\nputs(page)\n```\n\nReturns: `country_code` (string), `created_at` (date-time), `eligible_messaging_products` (array[string]), `features` (object), `health` (object), `id` (string), `messaging_product` (string), `messaging_profile_id` (string | null), `organization_id` (string), `phone_number` (string), `record_type` (enum: messaging_phone_number, messaging_settings), `tags` (array[string]), `traffic_type` (string), `type` (enum: long-code, toll-free, short-code, longcode, tollfree, shortcode), `updated_at` (date-time)\n\n## Slim List phone numbers\n\nList phone numbers, This endpoint is a lighter version of the /phone_numbers endpoint having higher performance and rate limit.\n\n`GET /phone_numbers/slim`\n\n```ruby\npage = client.phone_numbers.slim_list\n\nputs(page)\n```\n\nReturns: `billing_group_id` (string), `call_forwarding_enabled` (boolean), `call_recording_enabled` (boolean), `caller_id_name_enabled` (boolean), `cnam_listing_enabled` (boolean), `connection_id` (string), `country_iso_alpha2` (string), `created_at` (string), `customer_reference` (string), `emergency_address_id` (string), `emergency_enabled` (boolean), `emergency_status` (enum: active, deprovisioning, disabled, provisioning, provisioning-failed), `external_pin` (string), `hd_voice_enabled` (boolean), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `phone_number` (string), `phone_number_type` (enum: local, toll_free, mobile, national, shared_cost, landline, tollfree, shortcode, longcode), `purchased_at` (string), `record_type` (string), `status` (enum: purchase-pending, purchase-failed, port-pending, port-failed, active, deleted, emergency-only, ported-out, port-out-pending, requirement-info-pending, requirement-info-under-review, requirement-info-exception, provision-pending), `t38_fax_gateway_enabled` (boolean), `updated_at` (string)\n\n## List phone numbers with voice settings\n\n`GET /phone_numbers/voice`\n\n```ruby\npage = client.phone_numbers.voice.list\n\nputs(page)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `cnam_listing` (object), `connection_id` (string), `customer_reference` (string), `emergency` (object), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `media_features` (object), `phone_number` (string), `record_type` (string), `tech_prefix_enabled` (boolean), `translated_number` (string), `usage_payment_method` (enum: pay-per-minute, channel)\n\n## Retrieve a phone number\n\n`GET /phone_numbers/{id}`\n\n```ruby\nphone_number = client.phone_numbers.retrieve(\"1293384261075731499\")\n\nputs(phone_number)\n```\n\nReturns: `billing_group_id` (string | null), `call_forwarding_enabled` (boolean), `call_recording_enabled` (boolean), `caller_id_name_enabled` (boolean), `cnam_listing_enabled` (boolean), `connection_id` (string | null), `connection_name` (string | null), `country_iso_alpha2` (string), `created_at` (date-time), `customer_reference` (string | null), `deletion_lock_enabled` (boolean), `emergency_address_id` (string | null), `emergency_enabled` (boolean), `emergency_status` (enum: active, deprovisioning, disabled, provisioning, provisioning-failed), `external_pin` (string | null), `hd_voice_enabled` (boolean), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `messaging_profile_id` (string | null), `messaging_profile_name` (string | null), `phone_number` (string), `phone_number_type` (enum: local, toll_free, mobile, national, shared_cost, landline, tollfree, shortcode, longcode), `purchased_at` (string), `record_type` (string), `source_type` (object), `status` (enum: purchase-pending, purchase-failed, port-pending, port-failed, active, deleted, emergency-only, ported-out, port-out-pending, requirement-info-pending, requirement-info-under-review, requirement-info-exception, provision-pending), `t38_fax_gateway_enabled` (boolean), `tags` (array[string]), `updated_at` (string)\n\n## Update a phone number\n\n`PATCH /phone_numbers/{id}`\n\nOptional: `address_id` (string), `billing_group_id` (string), `connection_id` (string), `customer_reference` (string), `external_pin` (string), `hd_voice_enabled` (boolean), `id` (string), `tags` (array[string])\n\n```ruby\nphone_number = client.phone_numbers.update(\"1293384261075731499\")\n\nputs(phone_number)\n```\n\nReturns: `billing_group_id` (string | null), `call_forwarding_enabled` (boolean), `call_recording_enabled` (boolean), `caller_id_name_enabled` (boolean), `cnam_listing_enabled` (boolean), `connection_id` (string | null), `connection_name` (string | null), `country_iso_alpha2` (string), `created_at` (date-time), `customer_reference` (string | null), `deletion_lock_enabled` (boolean), `emergency_address_id` (string | null), `emergency_enabled` (boolean), `emergency_status` (enum: active, deprovisioning, disabled, provisioning, provisioning-failed), `external_pin` (string | null), `hd_voice_enabled` (boolean), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `messaging_profile_id` (string | null), `messaging_profile_name` (string | null), `phone_number` (string), `phone_number_type` (enum: local, toll_free, mobile, national, shared_cost, landline, tollfree, shortcode, longcode), `purchased_at` (string), `record_type` (string), `source_type` (object), `status` (enum: purchase-pending, purchase-failed, port-pending, port-failed, active, deleted, emergency-only, ported-out, port-out-pending, requirement-info-pending, requirement-info-under-review, requirement-info-exception, provision-pending), `t38_fax_gateway_enabled` (boolean), `tags` (array[string]), `updated_at` (string)\n\n## Delete a phone number\n\n`DELETE /phone_numbers/{id}`\n\n```ruby\nphone_number = client.phone_numbers.delete(\"1293384261075731499\")\n\nputs(phone_number)\n```\n\nReturns: `billing_group_id` (string), `call_forwarding_enabled` (boolean), `call_recording_enabled` (boolean), `caller_id_name_enabled` (boolean), `cnam_listing_enabled` (boolean), `connection_id` (string), `connection_name` (string), `created_at` (string), `customer_reference` (string), `deletion_lock_enabled` (boolean), `emergency_address_id` (string), `emergency_enabled` (boolean), `external_pin` (string), `hd_voice_enabled` (boolean), `id` (string), `messaging_profile_id` (string), `messaging_profile_name` (string), `phone_number` (string), `phone_number_type` (enum: local, toll_free, mobile, national, shared_cost, landline), `purchased_at` (string), `record_type` (string), `status` (enum: purchase-pending, purchase-failed, port-pending, port-failed, active, deleted, emergency-only, ported-out, port-out-pending), `t38_fax_gateway_enabled` (boolean), `tags` (array[string]), `updated_at` (string)\n\n## Change the bundle status for a phone number (set to being in a bundle or remove from a bundle)\n\n`PATCH /phone_numbers/{id}/actions/bundle_status_change` — Required: `bundle_id`\n\n```ruby\nresponse = client.phone_numbers.actions.change_bundle_status(\n  \"1293384261075731499\",\n  bundle_id: \"5194d8fc-87e6-4188-baa9-1c434bbe861b\"\n)\n\nputs(response)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `cnam_listing` (object), `connection_id` (string), `customer_reference` (string), `emergency` (object), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `media_features` (object), `phone_number` (string), `record_type` (string), `tech_prefix_enabled` (boolean), `translated_number` (string), `usage_payment_method` (enum: pay-per-minute, channel)\n\n## Enable emergency for a phone number\n\n`POST /phone_numbers/{id}/actions/enable_emergency` — Required: `emergency_enabled`, `emergency_address_id`\n\n```ruby\nresponse = client.phone_numbers.actions.enable_emergency(\n  \"1293384261075731499\",\n  emergency_address_id: \"53829456729313\",\n  emergency_enabled: true\n)\n\nputs(response)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `cnam_listing` (object), `connection_id` (string), `customer_reference` (string), `emergency` (object), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `media_features` (object), `phone_number` (string), `record_type` (string), `tech_prefix_enabled` (boolean), `translated_number` (string), `usage_payment_method` (enum: pay-per-minute, channel)\n\n## Retrieve a phone number with messaging settings\n\n`GET /phone_numbers/{id}/messaging`\n\n```ruby\nmessaging = client.phone_numbers.messaging.retrieve(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(messaging)\n```\n\nReturns: `country_code` (string), `created_at` (date-time), `eligible_messaging_products` (array[string]), `features` (object), `health` (object), `id` (string), `messaging_product` (string), `messaging_profile_id` (string | null), `organization_id` (string), `phone_number` (string), `record_type` (enum: messaging_phone_number, messaging_settings), `tags` (array[string]), `traffic_type` (string), `type` (enum: long-code, toll-free, short-code, longcode, tollfree, shortcode), `updated_at` (date-time)\n\n## Update the messaging profile and/or messaging product of a phone number\n\n`PATCH /phone_numbers/{id}/messaging`\n\nOptional: `messaging_product` (string), `messaging_profile_id` (string), `tags` (array[string])\n\n```ruby\nmessaging = client.phone_numbers.messaging.update(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(messaging)\n```\n\nReturns: `country_code` (string), `created_at` (date-time), `eligible_messaging_products` (array[string]), `features` (object), `health` (object), `id` (string), `messaging_product` (string), `messaging_profile_id` (string | null), `organization_id` (string), `phone_number` (string), `record_type` (enum: messaging_phone_number, messaging_settings), `tags` (array[string]), `traffic_type` (string), `type` (enum: long-code, toll-free, short-code, longcode, tollfree, shortcode), `updated_at` (date-time)\n\n## Retrieve a phone number with voice settings\n\n`GET /phone_numbers/{id}/voice`\n\n```ruby\nvoice = client.phone_numbers.voice.retrieve(\"1293384261075731499\")\n\nputs(voice)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `cnam_listing` (object), `connection_id` (string), `customer_reference` (string), `emergency` (object), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `media_features` (object), `phone_number` (string), `record_type` (string), `tech_prefix_enabled` (boolean), `translated_number` (string), `usage_payment_method` (enum: pay-per-minute, channel)\n\n## Update a phone number with voice settings\n\n`PATCH /phone_numbers/{id}/voice`\n\nOptional: `call_forwarding` (object), `call_recording` (object), `caller_id_name_enabled` (boolean), `cnam_listing` (object), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `media_features` (object), `tech_prefix_enabled` (boolean), `translated_number` (string), `usage_payment_method` (enum: pay-per-minute, channel)\n\n```ruby\nvoice = client.phone_numbers.voice.update(\"1293384261075731499\")\n\nputs(voice)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `cnam_listing` (object), `connection_id` (string), `customer_reference` (string), `emergency` (object), `id` (string), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `media_features` (object), `phone_number` (string), `record_type` (string), `tech_prefix_enabled` (boolean), `translated_number` (string), `usage_payment_method` (enum: pay-per-minute, channel)\n\n## List Mobile Phone Numbers\n\n`GET /v2/mobile_phone_numbers`\n\n```ruby\npage = client.mobile_phone_numbers.list\n\nputs(page)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `caller_id_name_enabled` (boolean), `cnam_listing` (object), `connection_id` (string | null), `connection_name` (string | null), `connection_type` (string | null), `country_iso_alpha2` (string), `created_at` (date-time), `customer_reference` (string | null), `id` (string), `inbound` (object), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `mobile_voice_enabled` (boolean), `noise_suppression` (enum: inbound, outbound, both, disabled), `outbound` (object), `phone_number` (string), `record_type` (string), `sim_card_id` (uuid), `status` (string), `tags` (array[string]), `updated_at` (date-time)\n\n## Retrieve a Mobile Phone Number\n\n`GET /v2/mobile_phone_numbers/{id}`\n\n```ruby\nmobile_phone_number = client.mobile_phone_numbers.retrieve(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(mobile_phone_number)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `caller_id_name_enabled` (boolean), `cnam_listing` (object), `connection_id` (string | null), `connection_name` (string | null), `connection_type` (string | null), `country_iso_alpha2` (string), `created_at` (date-time), `customer_reference` (string | null), `id` (string), `inbound` (object), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `mobile_voice_enabled` (boolean), `noise_suppression` (enum: inbound, outbound, both, disabled), `outbound` (object), `phone_number` (string), `record_type` (string), `sim_card_id` (uuid), `status` (string), `tags` (array[string]), `updated_at` (date-time)\n\n## Update a Mobile Phone Number\n\n`PATCH /v2/mobile_phone_numbers/{id}`\n\nOptional: `call_forwarding` (object), `call_recording` (object), `caller_id_name_enabled` (boolean), `cnam_listing` (object), `connection_id` (string | null), `customer_reference` (string | null), `inbound` (object), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `noise_suppression` (boolean), `outbound` (object), `tags` (array[string])\n\n```ruby\nmobile_phone_number = client.mobile_phone_numbers.update(\"550e8400-e29b-41d4-a716-446655440000\")\n\nputs(mobile_phone_number)\n```\n\nReturns: `call_forwarding` (object), `call_recording` (object), `caller_id_name_enabled` (boolean), `cnam_listing` (object), `connection_id` (string | null), `connection_name` (string | null), `connection_type` (string | null), `country_iso_alpha2` (string), `created_at` (date-time), `customer_reference` (string | null), `id` (string), `inbound` (object), `inbound_call_screening` (enum: disabled, reject_calls, flag_calls), `mobile_voice_enabled` (boolean), `noise_suppression` (enum: inbound, outbound, both, disabled), `outbound` (object), `phone_number` (string), `record_type` (string), `sim_card_id` (uuid), `status` (string), `tags` (array[string]), `updated_at` (date-time)","tags":["telnyx","numbers","config","ruby","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm"],"capabilities":["skill","source-team-telnyx","skill-telnyx-numbers-config-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-config-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 (24,016 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.893Z","embedding":null,"createdAt":"2026-04-18T22:07:11.603Z","updatedAt":"2026-04-22T06:54:42.893Z","lastSeenAt":"2026-04-22T06:54:42.893Z","tsv":"'+13125550001':78,177 '+13125550002':80 '+13127367254':1027 '+15551234567':665 '+18880000000':234 '+18880000001':235 '+18880000002':236 '+19705555098':780,895 '+19715555098':781,896 '-0000':229,230,231 '-000000000000':232 '/actions/bundle_status_change':2036 '/actions/enable_emergency':2120 '/messaging':377,2205,2298 '/messaging_numbers_bulk_updates':209,267 '/mobile_phone_numbers':375 '/mobile_phone_numbers/messaging':311 '/phone_numbers':442,1246,1478,1668,1884,2034,2118,2203,2296,2396,2467 '/phone_numbers/actions/verify_ownership':655 '/phone_numbers/jobs':685,1087 '/phone_numbers/jobs/delete_phone_numbers':770 '/phone_numbers/jobs/update_emergency_settings':872 '/phone_numbers/jobs/update_phone_numbers':989 '/phone_numbers/messaging':1158 '/phone_numbers/slim':1255 '/phone_numbers/voice':1413 '/v2/mobile_phone_numbers':2578,2676,2785 '/voice':2398,2469 '00000000':228 '1':108 '1293384261075731499':1484,1700,1890,2045,2131,2402,2516 '1583466971586889004':1026 '1c434bbe861b':2054 '32873127836':782,897 '401':66,143 '403':147 '404':150 '4188':2051 '41d4':384,1095,2212,2316,2686,2837 '422':62,129,154 '429':59,98,160 '446655440000':386,1097,2214,2318,2688,2839 '5194d8fc':2049 '5194d8fc-87e6':2048 '53829456729313':2135 '550e8400':381,1092,2209,2313,2683,2834 '87e6':2050 'a716':385,1096,2213,2317,2687,2838 'account':653 'activ':507,584,1307,1370,1547,1624,1763,1840,1991 'actual':115 'address':497,880,1298,1537,1671,1753,1933,2125,2133 'alpha2':481,1289,1521,1737,2613,2722,2873 'alreadi':42 'alway':67 'and/or':2288 'api':22,26,50,123,145,767,869,976 'apiconnectionerror':86 'apistatuserror':120 'array':244,250,260,285,291,301,353,425,618,670,674,701,707,711,726,795,801,805,820,910,916,920,935,1016,1040,1046,1050,1065,1110,1116,1120,1135,1176,1207,1658,1694,1874,2009,2229,2260,2308,2333,2364,2663,2772,2827,2923 'assign':216 'assum':39 'authent':64 'auto':191 'automat':195 'baa9':2053 'baa9-1c434bbe861b':2052 'background':750,847,959 'backoff':106,166 'bash':11 'batch':744,755,777,842,889,953,964,1023 'begin':74 'bill':449,994,1263,1489,1674,1705,1895 'boolean':218,457,461,466,470,495,503,521,616,1007,1014,1270,1274,1279,1283,1303,1320,1402,1460,1497,1501,1506,1510,1535,1543,1561,1656,1690,1713,1717,1722,1726,1751,1759,1777,1872,1902,1906,1911,1915,1931,1938,1945,2007,2098,2182,2446,2481,2500,2560,2595,2640,2704,2749,2798,2823,2855,2900 'bulk':203,222,240,257,263,273,281,298 'bundl':2016,2027,2032,2038,2043,2046 'call':51,454,458,525,530,532,768,870,977,1267,1271,1324,1329,1331,1420,1423,1440,1445,1447,1494,1498,1565,1570,1572,1710,1714,1781,1786,1788,1899,1903,2058,2061,2078,2083,2085,2142,2145,2162,2167,2169,2406,2409,2426,2431,2433,2471,2474,2486,2491,2493,2520,2523,2540,2545,2547,2585,2588,2629,2634,2636,2694,2697,2738,2743,2745,2788,2791,2813,2818,2820,2845,2848,2889,2894,2896 'caller':462,1275,1502,1718,1907,2477,2591,2700,2794,2851 'card':2657,2766,2917 'chang':2014 'channel':1472,2110,2194,2458,2512,2572 'check':90,109,133,157 'client':19,40 'client.messages.send':76 'client.messaging_numbers_bulk_updates.create':224 'client.messaging_numbers_bulk_updates.retrieve':275 'client.mobile_phone_numbers.list':2581 'client.mobile_phone_numbers.messaging.list':314 'client.mobile_phone_numbers.messaging.retrieve':380 'client.mobile_phone_numbers.retrieve':2682 'client.mobile_phone_numbers.update':2833 'client.new':21 'client.phone_numbers.actions.change':2042 'client.phone_numbers.actions.enable':2129 'client.phone_numbers.actions.verify':661 'client.phone_numbers.delete':1889 'client.phone_numbers.jobs.delete':776 'client.phone_numbers.jobs.list':688 'client.phone_numbers.jobs.retrieve':1091 'client.phone_numbers.jobs.update':886,1022 'client.phone_numbers.list':445 'client.phone_numbers.messaging.list':1161 'client.phone_numbers.messaging.retrieve':2208 'client.phone_numbers.messaging.update':2312 'client.phone_numbers.retrieve':1483 'client.phone_numbers.slim':1258 'client.phone_numbers.update':1699 'client.phone_numbers.voice.list':1416 'client.phone_numbers.voice.retrieve':2401 'client.phone_numbers.voice.update':2515 'cnam':467,1280,1426,1507,1723,1912,2064,2148,2412,2482,2526,2596,2705,2799,2856 'code':72,142,183,319,391,1166,1216,1222,2219,2269,2275,2323,2373,2379 'collect':856 'common':140 'complet':721,815,930,1060,1130 'config':4,8 'connect':91,471,475,998,1284,1429,1511,1515,1678,1727,1731,1916,1919,2067,2151,2415,2529,2599,2603,2607,2708,2712,2716,2802,2859,2863,2867 'cost':556,1345,1596,1812,1969 'countri':182,318,390,479,1165,1287,1519,1735,2218,2322,2611,2720,2871 'creat':321,393,483,692,747,786,845,901,956,1031,1101,1168,1291,1523,1739,1922,2221,2325,2615,2724,2875 'custom':488,1001,1294,1432,1528,1681,1744,1925,2070,2154,2418,2532,2620,2729,2806,2880 'dash':186 'date':324,364,396,436,486,697,791,906,1036,1106,1171,1229,1526,1742,2224,2282,2328,2386,2618,2668,2727,2777,2878,2928 'date-tim':323,363,395,435,485,696,790,905,1035,1105,1170,1228,1525,1741,2223,2281,2327,2385,2617,2667,2726,2776,2877,2927 'default':31 'delay':116 'delet':492,585,733,742,753,827,942,1004,1072,1142,1371,1532,1625,1748,1841,1879,1883,1928,1992 'deprovis':508,1308,1548,1764 'disabl':509,528,1309,1327,1443,1549,1568,1765,1784,2081,2165,2429,2489,2543,2632,2647,2741,2756,2816,2892,2907 'e':121 'e.164':174 'e.g':176 'e.message':126 'e.status':125,128 'e29b':383,1094,2211,2315,2685,2836 'e29b-41d4-a716':382,1093,2210,2314,2684,2835 'elig':1173,2226,2330 'emerg':496,501,504,587,731,825,838,852,874,879,887,890,940,1070,1140,1297,1301,1304,1373,1435,1536,1541,1544,1627,1752,1757,1760,1843,1932,1936,1994,2073,2112,2122,2124,2130,2132,2136,2157,2421,2535 'emergency-on':586,1372,1626,1842,1993 'enabl':456,460,465,469,494,502,520,615,875,891,1006,1013,1269,1273,1278,1282,1302,1319,1401,1459,1496,1500,1505,1509,1534,1542,1560,1655,1689,1712,1716,1721,1725,1750,1758,1776,1871,1901,1905,1910,1914,1930,1937,1944,2006,2097,2111,2123,2137,2181,2445,2480,2499,2559,2594,2639,2703,2748,2797,2854,2899 'end':138,139 'endpoint':1239,1247 'enum':254,295,346,359,418,431,506,527,549,571,717,729,811,823,926,938,1056,1068,1126,1138,1200,1213,1306,1326,1338,1357,1442,1467,1546,1567,1589,1611,1762,1783,1805,1827,1962,1978,2080,2105,2164,2189,2253,2266,2357,2370,2428,2453,2488,2507,2542,2567,2631,2643,2740,2752,2815,2891,2903 'env':24 'error':47,56,61,65,69,85,89,96,119,124,132,141,156 'etc':695,789,904,1034,1104 'exampl':37 'except':608,1394,1648,1864 'expir':723,817,932,1062,1132 'exponenti':105,165 'extern':514,1008,1314,1554,1684,1770,1939 'fail':53,243,284,513,577,583,699,722,793,816,908,931,1038,1061,1108,1131,1313,1363,1369,1553,1617,1623,1769,1833,1839,1984,1990 'fax':613,1399,1653,1869,2004 'featur':326,398,1178,1449,2087,2171,2231,2335,2435,2495,2549 'field':135,158,984 'flag':531,1330,1446,1571,1787,2084,2168,2432,2492,2546,2635,2744,2819,2895 'format':137,159,175 'forward':455,1268,1421,1495,1711,1900,2059,2143,2407,2472,2521,2586,2695,2789,2846 'found':153,650,669,673 'free':552,1219,1341,1592,1808,1965,2272,2376 'gateway':614,1400,1654,1870,2005 'gem':12 'get':266,310,374,441,684,1086,1157,1254,1412,1477,2202,2395,2577,2675 'group':450,995,1264,1490,1675,1706,1896 'handl':48,68 'hd':518,1011,1317,1558,1687,1774,1942 'header':113 'health':1180,2233,2337 'hello':82 'higher':1249 'id':213,227,247,269,277,288,328,335,339,376,400,407,411,451,463,472,498,522,535,643,703,797,881,912,996,999,1042,1088,1112,1182,1189,1193,1265,1276,1285,1299,1321,1430,1437,1479,1491,1503,1512,1538,1562,1575,1669,1672,1676,1679,1691,1707,1719,1728,1754,1778,1791,1885,1897,1908,1917,1934,1946,1950,2035,2039,2047,2068,2075,2119,2126,2134,2152,2159,2204,2235,2242,2246,2297,2305,2339,2346,2350,2397,2416,2423,2468,2478,2530,2537,2592,2600,2624,2658,2677,2701,2709,2733,2767,2786,2795,2803,2852,2860,2884,2918 'import':167 'inbound':524,1323,1439,1564,1780,2077,2161,2425,2485,2539,2626,2628,2644,2735,2737,2753,2810,2812,2886,2888,2904 'includ':178 'info':598,602,607,1384,1388,1393,1638,1642,1647,1854,1858,1863 'initi':43 'instal':10,13 'insuffici':148 'invalid':144 'iso':480,1288,1520,1736,2612,2721,2872 'item':200 'item.id':202 'iter':196 'job':683,751,848,960,1085,1090,1099 'key':23,27,146 'landlin':557,1346,1597,1813,1970 'least':979 'lighter':1242 'limit':58,100,162,1253 'list':303,438,468,646,679,1151,1232,1235,1259,1281,1406,1427,1508,1724,1913,2065,2149,2413,2483,2527,2573,2597,2706,2800,2857 'local':550,1339,1590,1806,1963 'lock':493,1005,1533,1749,1929 'long':1215,2268,2372 'long-cod':1214,2267,2371 'longcod':360,432,560,1223,1349,1600,1816,2276,2380 'map':638 'media':1448,2086,2170,2434,2494,2548 'messag':211,220,225,238,255,271,279,296,308,330,333,347,350,372,379,388,402,405,419,422,533,538,1155,1174,1184,1187,1201,1204,1573,1578,1789,1794,1948,1952,2200,2207,2216,2227,2237,2240,2254,2257,2286,2289,2300,2303,2311,2320,2331,2341,2344,2358,2361 'method':1466,2104,2188,2452,2506,2566 'minut':1471,2109,2193,2457,2511,2571 'mobil':304,368,553,1342,1593,1809,1966,2574,2637,2672,2679,2690,2746,2781,2830,2841,2897 'must':171,985 'name':464,476,540,1277,1504,1516,1580,1720,1732,1796,1909,1920,1954,2479,2593,2604,2702,2713,2796,2853,2864 'nation':554,1343,1594,1810,1967 'network':55,88 'new':749,958 'nois':2641,2750,2821,2901 'note':168 'null':337,409,453,474,478,491,500,517,537,542,883,1191,1493,1514,1518,1531,1540,1557,1577,1582,1709,1730,1734,1747,1756,1773,1793,1798,2244,2348,2602,2606,2610,2623,2711,2715,2719,2732,2805,2809,2862,2866,2870,2883 'number':3,7,170,206,214,221,233,239,256,272,280,297,306,342,349,370,414,421,440,544,547,627,634,640,648,658,664,682,710,735,738,746,757,762,773,779,804,829,832,844,859,864,877,894,919,944,947,955,966,971,992,1025,1049,1074,1077,1084,1119,1144,1147,1153,1196,1203,1234,1237,1333,1336,1408,1452,1462,1476,1482,1487,1584,1587,1666,1698,1703,1800,1803,1882,1888,1893,1957,1960,2021,2090,2100,2116,2174,2184,2198,2249,2256,2294,2353,2360,2391,2438,2448,2462,2502,2552,2562,2576,2651,2674,2681,2692,2760,2783,2832,2843,2911 'object':327,399,569,671,702,708,712,727,796,802,806,821,911,917,921,936,1019,1041,1047,1051,1066,1111,1117,1121,1136,1179,1181,1422,1425,1428,1436,1450,1609,1825,2060,2063,2066,2074,2088,2144,2147,2150,2158,2172,2232,2234,2336,2338,2408,2411,2414,2422,2436,2473,2476,2484,2496,2522,2525,2528,2536,2550,2587,2590,2598,2627,2649,2696,2699,2707,2736,2758,2790,2793,2801,2811,2825,2847,2850,2858,2887,2909 'omit':35 'one':760,862,969,980 'oper':700,706,725,794,800,819,909,915,934,1039,1045,1064,1109,1115,1134 'option':215,878,993,1670,2299,2470,2787 'order':246,268,276,287 'organ':338,410,1192,2245,2349 'outbound':2645,2648,2754,2757,2824,2905,2908 'ownership':624,629,662 'page':192,198,313,316,444,447,687,690,1160,1163,1257,1261,1415,1418,2580,2583 'page.auto':197 'pagin':189 'parenthes':188 'patch':1667,2033,2295,2466,2784 'pay':1469,2107,2191,2455,2509,2569 'pay-per-minut':1468,2106,2190,2454,2508,2568 'payment':1465,2103,2187,2451,2505,2565 'pend':249,290,574,580,595,599,611,705,718,799,812,914,927,1044,1057,1114,1127,1360,1366,1381,1385,1397,1614,1620,1635,1639,1651,1830,1836,1851,1855,1867,1981,1987,2002 'per':766,868,975,1470,2108,2192,2456,2510,2570 'perform':1250 'permiss':149 'phone':169,205,305,341,348,369,413,420,439,543,546,626,633,657,663,681,709,734,737,772,778,803,828,831,858,876,893,918,943,946,991,1024,1048,1073,1076,1083,1118,1143,1146,1152,1195,1202,1233,1236,1332,1335,1407,1451,1475,1481,1486,1583,1586,1665,1697,1702,1799,1802,1881,1887,1892,1956,1959,2020,2089,2115,2173,2197,2248,2255,2293,2352,2359,2390,2437,2461,2551,2575,2650,2673,2680,2691,2759,2782,2831,2842,2910 'pin':515,1009,1315,1555,1685,1771,1940 'plus':644 'port':579,582,590,593,1365,1368,1376,1379,1619,1622,1630,1633,1835,1838,1846,1849,1986,1989,1997,2000 'port-fail':581,1367,1621,1837,1988 'port-out-pend':592,1378,1632,1848,1999 'port-pend':578,1364,1618,1834,1985 'ported-out':589,1375,1629,1845,1996 'post':208,654,769,871,988,2117 'prefix':180,1458,2096,2180,2444,2498,2558 'product':71,331,403,1175,1185,2228,2238,2290,2301,2332,2342 'profil':207,212,226,334,406,534,539,1188,1574,1579,1790,1795,1949,1953,2241,2287,2304,2345 'progress':720,814,929,1059,1129 'provid':632 'provis':510,512,610,1310,1312,1396,1550,1552,1650,1766,1768,1866 'provision-pend':609,1395,1649,1865 'provisioning-fail':511,1311,1551,1767 'purchas':561,573,576,1350,1359,1362,1601,1613,1616,1817,1829,1832,1971,1980,1983 'purchase-fail':575,1361,1615,1831,1982 'purchase-pend':572,1358,1612,1828,1979 'put':87,122,130,201,237,278,315,387,446,666,689,783,898,1028,1098,1162,1260,1417,1485,1701,1891,2055,2139,2215,2319,2403,2517,2582,2689,2840 'rate':57,99,161,1252 'ratelimiterror':97 'record':252,293,344,416,459,564,676,713,807,922,1052,1122,1198,1272,1353,1424,1454,1499,1604,1715,1820,1904,1974,2062,2092,2146,2176,2251,2355,2410,2440,2475,2524,2554,2589,2653,2698,2762,2792,2849,2913 'refer':489,1002,1295,1433,1529,1682,1745,1926,2071,2155,2419,2533,2621,2730,2807,2881 'reject':529,1328,1444,1569,1785,2082,2166,2430,2490,2544,2633,2742,2817,2893 'remov':2029 'requir':17,134,210,597,601,606,656,771,873,990,1383,1387,1392,1637,1641,1646,1853,1857,1862,2037,2121 'requirement-info-except':605,1391,1645,1861 'requirement-info-pend':596,1382,1636,1852 'requirement-info-under-review':600,1386,1640,1856 'rescu':83,94,117 'resourc':151 'respons':660,667,775,784,885,899,1021,1029,2041,2056,2128,2140 'result':75 'retri':93,103,111,163 'retriev':262,366,1081,1473,2195,2388,2670 'retry-aft':110 'return':242,283,317,389,448,636,668,691,785,900,1030,1100,1164,1262,1419,1488,1704,1894,2057,2141,2217,2321,2405,2519,2584,2693,2844 'review':604,1390,1644,1860 'rubi':5,9,16,73,219,270,312,378,443,659,686,774,884,1020,1089,1159,1256,1414,1480,1696,1886,2040,2127,2206,2310,2399,2513,2579,2678,2829 'screen':526,1325,1441,1566,1782,2079,2163,2427,2487,2541,2630,2739,2814,2890 'set':309,351,373,423,732,826,839,853,888,941,1071,1141,1156,1205,1411,2022,2201,2258,2362,2394,2465 'setup':15 'share':555,1344,1595,1811,1968 'short':1221,2274,2378 'short-cod':1220,2273,2377 'shortcod':559,1225,1348,1599,1815,2278,2382 'shown':45 'sim':2656,2765,2916 'skill' 'skill-telnyx-numbers-config-ruby' 'sleep':107 'slim':1231 'sourc':567,1607,1823 'source-team-telnyx' 'space':185 'status':265,505,570,716,810,925,1055,1125,1305,1356,1545,1610,1761,1826,1977,2017,2044,2660,2769,2920 'string':245,251,261,286,292,302,320,329,332,336,340,343,354,357,392,401,404,408,412,415,426,429,452,473,477,482,490,499,516,523,536,541,545,563,566,619,622,675,678,694,715,741,788,809,835,882,903,924,950,997,1000,1003,1010,1017,1033,1054,1080,1103,1124,1150,1167,1177,1183,1186,1190,1194,1197,1208,1211,1266,1286,1290,1293,1296,1300,1316,1322,1334,1352,1355,1405,1431,1434,1438,1453,1456,1463,1492,1513,1517,1522,1530,1539,1556,1563,1576,1581,1585,1603,1606,1659,1662,1673,1677,1680,1683,1686,1692,1695,1708,1729,1733,1738,1746,1755,1772,1779,1792,1797,1801,1819,1822,1875,1878,1898,1918,1921,1924,1927,1935,1941,1947,1951,1955,1958,1973,1976,2010,2013,2069,2072,2076,2091,2094,2101,2153,2156,2160,2175,2178,2185,2220,2230,2236,2239,2243,2247,2250,2261,2264,2302,2306,2309,2324,2334,2340,2343,2347,2351,2354,2365,2368,2417,2420,2424,2439,2442,2449,2503,2531,2534,2538,2553,2556,2563,2601,2605,2609,2614,2622,2625,2652,2655,2661,2664,2710,2714,2718,2723,2731,2734,2761,2764,2770,2773,2804,2808,2828,2861,2865,2869,2874,2882,2885,2912,2915,2921,2924 'submit':987 'success':259,300,724,818,933,1063,1133 'suppress':2642,2751,2822,2902 't38':612,1398,1652,1868,2003 'tag':352,424,617,1015,1206,1657,1693,1873,2008,2259,2307,2363,2662,2771,2826,2922 'tech':1457,2095,2179,2443,2497,2557 'telnyx':2,6,14,18,20,25,84,95,118 'telnyx-numbers-config-rubi':1 'text':81 'thousand':761,863,970 'time':325,365,397,437,487,698,792,907,1037,1107,1172,1230,1527,1743,2225,2283,2329,2387,2619,2669,2728,2778,2879,2929 'toll':551,1218,1340,1591,1807,1964,2271,2375 'toll-fre':1217,2270,2374 'tollfre':558,1224,1347,1598,1814,2277,2381 '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' 'traffic':355,427,1209,2262,2366 'translat':1461,2099,2183,2447,2501,2561 'true':892,2138 'type':253,294,345,356,358,417,428,430,548,565,568,677,714,728,808,822,923,937,1053,1067,1123,1137,1199,1210,1212,1337,1354,1455,1588,1605,1608,1804,1821,1824,1961,1975,2093,2177,2252,2263,2265,2356,2367,2369,2441,2555,2608,2654,2717,2763,2868,2914 'updat':204,223,241,258,264,274,282,299,361,433,620,730,736,739,765,824,830,833,836,850,867,939,945,948,951,962,974,983,1069,1075,1078,1139,1145,1148,1226,1403,1660,1663,1876,2011,2279,2284,2383,2459,2665,2774,2779,2925 'usag':1464,2102,2186,2450,2504,2564 'use':190 'uuid':248,289,704,798,913,1043,1113,2659,2768,2919 'valid':60,131,155 'verifi':623,628 'version':1243 'voic':519,1012,1018,1318,1410,1559,1688,1775,1943,2393,2400,2404,2464,2514,2518,2638,2747,2898 'wait':101","prices":[{"id":"809a9ae6-786a-4c68-a4c2-0f54cfe6c488","listingId":"5b32799e-4a97-48ba-8318-98a98eb529c6","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:11.603Z"}],"sources":[{"listingId":"5b32799e-4a97-48ba-8318-98a98eb529c6","source":"github","sourceId":"team-telnyx/ai/telnyx-numbers-config-ruby","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-numbers-config-ruby","isPrimary":false,"firstSeenAt":"2026-04-18T22:07:11.603Z","lastSeenAt":"2026-04-22T06:54:42.893Z"}],"details":{"listingId":"5b32799e-4a97-48ba-8318-98a98eb529c6","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-numbers-config-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":"31cc4390b913c9dc8b7244ef5a11158ba82d02c5","skill_md_path":"skills/telnyx-numbers-config-ruby/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-numbers-config-ruby"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-numbers-config-ruby","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-numbers-config-ruby"},"updatedAt":"2026-04-22T06:54:42.893Z"}}