{"id":"b1868187-ce96-4e6a-b63c-d59377bc211e","shortId":"tLzkeR","kind":"skill","title":"telnyx-verify-ruby","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Verify - 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## Lookup phone number data\n\nReturns information about the provided phone number.\n\n`GET /number_lookup/{phone_number}`\n\n```ruby\nnumber_lookup = client.number_lookup.retrieve(\"+18665552368\")\n\nputs(number_lookup)\n```\n\nReturns: `caller_name` (object), `carrier` (object), `country_code` (string), `fraud` (string | null), `national_format` (string), `phone_number` (string), `portability` (object), `record_type` (string)\n\n## List verifications by phone number\n\n`GET /verifications/by_phone_number/{phone_number}`\n\n```ruby\nby_phone_numbers = client.verifications.by_phone_number.list(\"+13035551234\")\n\nputs(by_phone_numbers)\n```\n\nReturns: `created_at` (string), `custom_code` (string | null), `id` (uuid), `phone_number` (string), `record_type` (enum: verification), `status` (enum: pending, accepted, invalid, expired, error), `timeout_secs` (integer), `type` (enum: sms, call, flashcall), `updated_at` (string), `verify_profile_id` (uuid)\n\n## Verify verification code by phone number\n\n`POST /verifications/by_phone_number/{phone_number}/actions/verify` — Required: `code`, `verify_profile_id`\n\n```ruby\nverify_verification_code_response = client.verifications.by_phone_number.actions.verify(\n  \"+13035551234\",\n  code: \"17686\",\n  verify_profile_id: \"12ade33a-21c0-473b-b055-b3c836e1c292\"\n)\n\nputs(verify_verification_code_response)\n```\n\nReturns: `phone_number` (string), `response_code` (enum: accepted, rejected)\n\n## Trigger Call verification\n\n`POST /verifications/call` — Required: `phone_number`, `verify_profile_id`\n\nOptional: `custom_code` (string | null), `extension` (string | null), `timeout_secs` (integer)\n\n```ruby\ncreate_verification_response = client.verifications.trigger_call(\n  phone_number: \"+13035551234\",\n  verify_profile_id: \"12ade33a-21c0-473b-b055-b3c836e1c292\"\n)\n\nputs(create_verification_response)\n```\n\nReturns: `created_at` (string), `custom_code` (string | null), `id` (uuid), `phone_number` (string), `record_type` (enum: verification), `status` (enum: pending, accepted, invalid, expired, error), `timeout_secs` (integer), `type` (enum: sms, call, flashcall), `updated_at` (string), `verify_profile_id` (uuid)\n\n## Trigger Flash call verification\n\n`POST /verifications/flashcall` — Required: `phone_number`, `verify_profile_id`\n\nOptional: `timeout_secs` (integer)\n\n```ruby\ncreate_verification_response = client.verifications.trigger_flashcall(\n  phone_number: \"+13035551234\",\n  verify_profile_id: \"12ade33a-21c0-473b-b055-b3c836e1c292\"\n)\n\nputs(create_verification_response)\n```\n\nReturns: `created_at` (string), `custom_code` (string | null), `id` (uuid), `phone_number` (string), `record_type` (enum: verification), `status` (enum: pending, accepted, invalid, expired, error), `timeout_secs` (integer), `type` (enum: sms, call, flashcall), `updated_at` (string), `verify_profile_id` (uuid)\n\n## Trigger SMS verification\n\n`POST /verifications/sms` — Required: `phone_number`, `verify_profile_id`\n\nOptional: `custom_code` (string | null), `timeout_secs` (integer)\n\n```ruby\ncreate_verification_response = client.verifications.trigger_sms(\n  phone_number: \"+13035551234\",\n  verify_profile_id: \"12ade33a-21c0-473b-b055-b3c836e1c292\"\n)\n\nputs(create_verification_response)\n```\n\nReturns: `created_at` (string), `custom_code` (string | null), `id` (uuid), `phone_number` (string), `record_type` (enum: verification), `status` (enum: pending, accepted, invalid, expired, error), `timeout_secs` (integer), `type` (enum: sms, call, flashcall), `updated_at` (string), `verify_profile_id` (uuid)\n\n## Retrieve verification\n\n`GET /verifications/{verification_id}`\n\n```ruby\nverification = client.verifications.retrieve(\"12ade33a-21c0-473b-b055-b3c836e1c292\")\n\nputs(verification)\n```\n\nReturns: `created_at` (string), `custom_code` (string | null), `id` (uuid), `phone_number` (string), `record_type` (enum: verification), `status` (enum: pending, accepted, invalid, expired, error), `timeout_secs` (integer), `type` (enum: sms, call, flashcall), `updated_at` (string), `verify_profile_id` (uuid)\n\n## Verify verification code by ID\n\n`POST /verifications/{verification_id}/actions/verify`\n\nOptional: `code` (string), `status` (enum: accepted, rejected)\n\n```ruby\nverify_verification_code_response = client.verifications.actions.verify(\"12ade33a-21c0-473b-b055-b3c836e1c292\")\n\nputs(verify_verification_code_response)\n```\n\nReturns: `phone_number` (string), `response_code` (enum: accepted, rejected)\n\n## List all Verify profiles\n\nGets a paginated list of Verify profiles.\n\n`GET /verify_profiles`\n\n```ruby\npage = client.verify_profiles.list\n\nputs(page)\n```\n\nReturns: `call` (object), `created_at` (string), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `rcs` (object), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string)\n\n## Create a Verify profile\n\nCreates a new Verify profile to associate verifications with.\n\n`POST /verify_profiles` — Required: `name`\n\nOptional: `call` (object), `flashcall` (object), `language` (string), `rcs` (object), `sms` (object), `webhook_failover_url` (string), `webhook_url` (string)\n\n```ruby\nverify_profile_data = client.verify_profiles.create(name: \"Test Profile\")\n\nputs(verify_profile_data)\n```\n\nReturns: `call` (object), `created_at` (string), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `rcs` (object), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string)\n\n## Retrieve Verify profile message templates\n\nList all Verify profile message templates.\n\n`GET /verify_profiles/templates`\n\n```ruby\nresponse = client.verify_profiles.retrieve_templates\n\nputs(response)\n```\n\nReturns: `id` (uuid), `text` (string)\n\n## Create message template\n\nCreate a new Verify profile message template.\n\n`POST /verify_profiles/templates` — Required: `text`\n\n```ruby\nmessage_template = client.verify_profiles.create_template(text: \"Your {{app_name}} verification code is: {{code}}.\")\n\nputs(message_template)\n```\n\nReturns: `id` (uuid), `text` (string)\n\n## Update message template\n\nUpdate an existing Verify profile message template.\n\n`PATCH /verify_profiles/templates/{template_id}` — Required: `text`\n\n```ruby\nmessage_template = client.verify_profiles.update_template(\n  \"12ade33a-21c0-473b-b055-b3c836e1c292\",\n  text: \"Your {{app_name}} verification code is: {{code}}.\"\n)\n\nputs(message_template)\n```\n\nReturns: `id` (uuid), `text` (string)\n\n## Retrieve Verify profile\n\nGets a single Verify profile.\n\n`GET /verify_profiles/{verify_profile_id}`\n\n```ruby\nverify_profile_data = client.verify_profiles.retrieve(\"12ade33a-21c0-473b-b055-b3c836e1c292\")\n\nputs(verify_profile_data)\n```\n\nReturns: `call` (object), `created_at` (string), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `rcs` (object), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string)\n\n## Update Verify profile\n\n`PATCH /verify_profiles/{verify_profile_id}`\n\nOptional: `call` (object), `flashcall` (object), `language` (string), `name` (string), `rcs` (object), `sms` (object), `webhook_failover_url` (string), `webhook_url` (string)\n\n```ruby\nverify_profile_data = client.verify_profiles.update(\"12ade33a-21c0-473b-b055-b3c836e1c292\")\n\nputs(verify_profile_data)\n```\n\nReturns: `call` (object), `created_at` (string), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `rcs` (object), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string)\n\n## Delete Verify profile\n\n`DELETE /verify_profiles/{verify_profile_id}`\n\n```ruby\nverify_profile_data = client.verify_profiles.delete(\"12ade33a-21c0-473b-b055-b3c836e1c292\")\n\nputs(verify_profile_data)\n```\n\nReturns: `call` (object), `created_at` (string), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `rcs` (object), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string)","tags":["telnyx","verify","ruby","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-verify-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-verify-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 (9,696 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-22T00:54:50.022Z","embedding":null,"createdAt":"2026-04-18T22:08:07.329Z","updatedAt":"2026-04-22T00:54:50.022Z","lastSeenAt":"2026-04-22T00:54:50.022Z","tsv":"'+13035551234':261,327,383,460,540 '+13125550001':76,175 '+13125550002':78 '+18665552368':220 '/actions/verify':315,658 '/number_lookup':213 '/verifications':596,655 '/verifications/by_phone_number':253,312 '/verifications/call':357 '/verifications/flashcall':441 '/verifications/sms':517 '/verify_profiles':704,757,934,990,1066 '/verify_profiles/templates':835,858,893 '1':106 '12ade33a':334,388,465,545,603,673,904,944,1020,1076 '12ade33a-21c0-473b-b055-b3c836e1c292':333,387,464,544,602,672,903,943,1019,1075 '17686':329 '21c0':335,389,466,546,604,674,905,945,1021,1077 '401':64,141 '403':145 '404':148 '422':60,127,152 '429':57,96,158 '473b':336,390,467,547,605,675,906,946,1022,1078 'accept':286,351,417,494,574,630,664,690 'actual':113 'alreadi':40 'alway':65 'api':20,24,48,121,143 'apiconnectionerror':84 'apistatuserror':118 'app':868,911 'associ':753 'assum':37 'authent':62 'auto':189 'automat':193 'b055':337,391,468,548,606,676,907,947,1023,1079 'b3c836e1c292':338,392,469,549,607,677,908,948,1024,1080 'backoff':104,164 'bash':9 'begin':72 'call':49,296,354,380,427,438,504,584,640,711,761,791,954,995,1030,1086 'caller':225 'carrier':228 'check':88,107,131,155 'client':17,38 'client.messages.send':74 'client.new':19 'client.number_lookup.retrieve':219 'client.verifications.actions.verify':671 'client.verifications.by_phone_number.actions.verify':326 'client.verifications.by_phone_number.list':260 'client.verifications.retrieve':601 'client.verifications.trigger':379,456,536 'client.verify_profiles.create':782,864 'client.verify_profiles.delete':1074 'client.verify_profiles.list':707 'client.verify_profiles.retrieve':838,942 'client.verify_profiles.update':901,1018 'code':70,140,181,231,271,307,317,324,328,342,349,366,402,479,526,559,615,651,660,669,681,688,871,873,914,916 'common':138 'connect':89 'countri':180,230 'creat':267,376,394,398,453,471,475,533,551,555,611,713,743,747,793,847,850,956,1032,1088 'custom':270,365,401,478,525,558,614 'dash':184 'data':204,781,789,941,952,1017,1028,1073,1084 'default':29 'delay':114 'delet':1062,1065 'e':119 'e.164':172 'e.g':174 'e.message':124 'e.status':123,126 'end':136,137 'enum':281,284,294,350,412,415,425,489,492,502,569,572,582,625,628,638,663,689,728,808,971,1047,1103 'env':22 'error':45,54,59,63,67,83,87,94,117,122,130,139,154,289,420,497,577,633 'exampl':35 'exist':887 'expir':288,419,496,576,632 'exponenti':103,163 'extens':369 'fail':51 'failov':737,772,817,980,1008,1056,1112 'field':133,156 'flash':437 'flashcal':297,428,457,505,585,641,716,763,796,959,997,1035,1091 'format':135,157,173,237 'found':151 'fraud':233 'gem':10 'get':212,252,595,696,703,834,928,933 'handl':46,66 'header':111 'hello':80 'id':274,303,320,332,363,386,405,434,447,463,482,511,523,543,562,591,598,618,647,653,657,718,798,843,878,895,921,937,961,993,1037,1069,1093 'import':165 'includ':176 'inform':206 'initi':41 'instal':8,11 'insuffici':146 'integ':292,374,423,451,500,531,580,636 'invalid':142,287,418,495,575,631 'item':198 'item.id':200 'iter':194 'key':21,25,144 'languag':720,765,800,963,999,1039,1095 'limit':56,98,160 'list':247,692,699,828 'lookup':201,218,223 'messag':826,832,848,855,862,875,883,890,899,918 'must':169 'name':226,722,759,783,802,869,912,965,1001,1041,1097 'nation':236 'network':53,86 'new':749,852 'note':166 'null':235,273,368,371,404,481,528,561,617 'number':168,203,211,215,217,222,240,251,255,259,265,277,310,314,346,360,382,408,444,459,485,520,539,565,621,685 'object':227,229,243,712,717,725,732,762,764,768,770,792,797,805,812,955,960,968,975,996,998,1004,1006,1031,1036,1044,1051,1087,1092,1100,1107 'omit':33 'option':364,448,524,659,760,994 'page':190,196,706,709 'page.auto':195 'pagin':187,698 'parenthes':186 'patch':892,989 'pend':285,416,493,573,629 'permiss':147 'phone':167,202,210,214,239,250,254,258,264,276,309,313,345,359,381,407,443,458,484,519,538,564,620,684 'portabl':242 'post':311,356,440,516,654,756,857 'prefix':178 'product':69 'profil':302,319,331,362,385,433,446,462,510,522,542,590,646,695,702,730,746,751,780,785,788,810,825,831,854,889,927,932,936,940,951,973,988,992,1016,1027,1049,1064,1068,1072,1083,1105 'provid':209 'put':85,120,128,199,221,262,339,393,470,550,608,678,708,786,840,874,917,949,1025,1081 'rate':55,97,159 'ratelimiterror':95 'rcs':724,767,804,967,1003,1043,1099 'record':244,279,410,487,567,623,726,806,969,1045,1101 'reject':352,665,691 'requir':15,132,316,358,442,518,758,859,896 'rescu':81,92,115 'resourc':149 'respons':325,343,348,378,396,455,473,535,553,670,682,687,837,841 'result':73 'retri':91,101,109,161 'retriev':593,823,925 'retry-aft':108 'return':205,224,266,344,397,474,554,610,683,710,790,842,877,920,953,1029,1085 'rubi':4,7,14,71,216,256,321,375,452,532,599,666,705,778,836,861,898,938,1014,1070 'sec':291,373,422,450,499,530,579,635 'setup':13 'shown':43 'singl':930 'skill' 'skill-telnyx-verify-ruby' 'sleep':105 'sms':295,426,503,514,537,583,639,731,769,811,974,1005,1050,1106 'source-team-telnyx' 'space':183 'status':283,414,491,571,627,662 'string':232,234,238,241,246,269,272,278,300,347,367,370,400,403,409,431,477,480,486,508,527,557,560,566,588,613,616,622,644,661,686,715,721,723,735,739,742,766,774,777,795,801,803,815,819,822,846,881,924,958,964,966,978,982,985,1000,1002,1010,1013,1034,1040,1042,1054,1058,1061,1090,1096,1098,1110,1114,1117 'telnyx':2,5,12,16,18,23,82,93,116 'telnyx-verify-rubi':1 'templat':827,833,839,849,856,863,865,876,884,891,894,900,902,919 'test':784 'text':79,845,860,866,880,897,909,923 'timeout':290,372,421,449,498,529,578,634 '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' 'trigger':353,436,513 'type':245,280,293,411,424,488,501,568,581,624,637,727,807,970,1046,1102 'updat':298,429,506,586,642,733,813,882,885,976,986,1052,1108 'url':738,741,773,776,818,821,981,984,1009,1012,1057,1060,1113,1116 'use':188 'uuid':275,304,406,435,483,512,563,592,619,648,719,799,844,879,922,962,1038,1094 'valid':58,129,153 'verif':248,282,306,323,341,355,377,395,413,439,454,472,490,515,534,552,570,594,597,600,609,626,650,656,668,680,729,754,809,870,913,972,1048,1104 'verifi':3,6,301,305,318,322,330,340,361,384,432,445,461,509,521,541,589,645,649,667,679,694,701,745,750,779,787,824,830,853,888,926,931,935,939,950,987,991,1015,1026,1063,1067,1071,1082 'wait':99 'webhook':736,740,771,775,816,820,979,983,1007,1011,1055,1059,1111,1115","prices":[{"id":"14d2c676-1094-4b2b-8459-eda608c187db","listingId":"b1868187-ce96-4e6a-b63c-d59377bc211e","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:08:07.329Z"}],"sources":[{"listingId":"b1868187-ce96-4e6a-b63c-d59377bc211e","source":"github","sourceId":"team-telnyx/ai/telnyx-verify-ruby","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-verify-ruby","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:07.329Z","lastSeenAt":"2026-04-22T00:54:50.022Z"}],"details":{"listingId":"b1868187-ce96-4e6a-b63c-d59377bc211e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-verify-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":"0dcda59671ba95b7a8d6511b2c247b0e4f533b28","skill_md_path":"skills/telnyx-verify-ruby/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-verify-ruby"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-verify-ruby","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-verify-ruby"},"updatedAt":"2026-04-22T00:54:50.022Z"}}