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