{"id":"1ec096f0-0d40-4df6-be0b-ea5aa9c282e4","shortId":"xZwTmj","kind":"skill","title":"telnyx-verify-python","tagline":">-","description":"<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->\n\n# Telnyx Verify - Python\n\n## Installation\n\n```bash\npip install telnyx\n```\n\n## Setup\n\n```python\nimport os\nfrom telnyx import Telnyx\n\nclient = Telnyx(\n    api_key=os.environ.get(\"TELNYX_API_KEY\"),  # This is the default and can be omitted\n)\n```\n\nAll examples below assume `client` is already initialized as shown above.\n\n## Error Handling\n\nAll API calls can fail with network errors, rate limits (429), validation errors (422),\nor authentication errors (401). Always handle errors in production code:\n\n```python\nimport telnyx\n\ntry:\n    result = client.messages.send(to=\"+13125550001\", from_=\"+13125550002\", text=\"Hello\")\nexcept telnyx.APIConnectionError:\n    print(\"Network error — check connectivity and retry\")\nexcept telnyx.RateLimitError:\n    # 429: rate limited — wait and retry with exponential backoff\n    import time\n    time.sleep(1)  # Check Retry-After header for actual delay\nexcept telnyx.APIStatusError as e:\n    print(f\"API error {e.status_code}: {e.message}\")\n    if e.status_code == 422:\n        print(\"Validation error — check required fields and formats\")\n```\n\nCommon error codes: `401` invalid API key, `403` insufficient permissions,\n`404` resource not found, `422` validation error (check field formats),\n`429` rate limited (retry with exponential backoff).\n\n## Important Notes\n\n- **Phone numbers** must be in E.164 format (e.g., `+13125550001`). Include the `+` prefix and country code. No spaces, dashes, or parentheses.\n- **Pagination:** List methods return an auto-paginating iterator. Use `for item in page_result:` to iterate through all pages automatically.\n\n## Lookup phone number data\n\nReturns information about the provided phone number.\n\n`GET /number_lookup/{phone_number}`\n\n```python\nnumber_lookup = client.number_lookup.retrieve(\n    phone_number=\"+18665552368\",\n)\nprint(number_lookup.data)\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```python\nby_phone_numbers = client.verifications.by_phone_number.list(\n    \"+13035551234\",\n)\nprint(by_phone_numbers.data)\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```python\nverify_verification_code_response = client.verifications.by_phone_number.actions.verify(\n    phone_number=\"+13035551234\",\n    code=\"17686\",\n    verify_profile_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(verify_verification_code_response.data)\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```python\ncreate_verification_response = client.verifications.trigger_call(\n    phone_number=\"+13035551234\",\n    verify_profile_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(create_verification_response.data)\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```python\ncreate_verification_response = client.verifications.trigger_flashcall(\n    phone_number=\"+13035551234\",\n    verify_profile_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(create_verification_response.data)\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```python\ncreate_verification_response = client.verifications.trigger_sms(\n    phone_number=\"+13035551234\",\n    verify_profile_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(create_verification_response.data)\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```python\nverification = client.verifications.retrieve(\n    \"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(verification.data)\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```python\nverify_verification_code_response = client.verifications.actions.verify(\n    verification_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n    code=\"12345\",\n)\nprint(verify_verification_code_response.data)\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```python\npage = client.verify_profiles.list()\npage = page.data[0]\nprint(page.id)\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```python\nverify_profile_data = client.verify_profiles.create(\n    name=\"Test Profile\",\n)\nprint(verify_profile_data.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```python\nresponse = client.verify_profiles.retrieve_templates()\nprint(response.data)\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```python\nmessage_template = client.verify_profiles.create_template(\n    text=\"Your {{app_name}} verification code is: {{code}}.\",\n)\nprint(message_template.data)\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```python\nmessage_template = client.verify_profiles.update_template(\n    template_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n    text=\"Your {{app_name}} verification code is: {{code}}.\",\n)\nprint(message_template.data)\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```python\nverify_profile_data = client.verify_profiles.retrieve(\n    \"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(verify_profile_data.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```python\nverify_profile_data = client.verify_profiles.update(\n    verify_profile_id=\"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(verify_profile_data.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```python\nverify_profile_data = client.verify_profiles.delete(\n    \"12ade33a-21c0-473b-b055-b3c836e1c292\",\n)\nprint(verify_profile_data.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","python","team-telnyx","agent-skills","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk"],"capabilities":["skill","source-team-telnyx","skill-telnyx-verify-python","topic-agent-skills","topic-ai-coding-agent","topic-claude-code","topic-cpaas","topic-cursor","topic-iot","topic-llm","topic-sdk","topic-sip","topic-sms","topic-speech-to-text","topic-telephony"],"categories":["ai"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/team-telnyx/ai/telnyx-verify-python","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add team-telnyx/ai","source_repo":"https://github.com/team-telnyx/ai","install_from":"skills.sh"}},"qualityScore":"0.533","qualityRationale":"deterministic score 0.53 from registry signals: · indexed on github topic:agent-skills · 167 github stars · SKILL.md body (10,082 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:49.945Z","embedding":null,"createdAt":"2026-04-18T22:08:06.535Z","updatedAt":"2026-04-22T00:54:49.945Z","lastSeenAt":"2026-04-22T00:54:49.945Z","tsv":"'+13035551234':272,338,391,466,544 '+13125550001':81,178 '+13125550002':83 '+18665552368':232 '/actions/verify':324,660 '/number_lookup':223 '/verifications':598,657 '/verifications/by_phone_number':264,321 '/verifications/call':365 '/verifications/flashcall':447 '/verifications/sms':521 '/verify_profiles':707,763,938,992,1069 '/verify_profiles/templates':839,862,896 '0':713 '1':109 '12345':683 '12ade33a':345,396,471,549,605,677,909,948,1025,1079 '12ade33a-21c0-473b-b055-b3c836e1c292':344,395,470,548,604,676,908,947,1024,1078 '17686':340 '21c0':346,397,472,550,606,678,910,949,1026,1080 '401':67,144 '403':148 '404':151 '422':63,132,155 '429':60,97,161 '473b':347,398,473,551,607,679,911,950,1027,1081 'accept':295,359,423,498,576,632,666,693 'actual':116 'alreadi':43 'alway':68 'api':23,27,51,124,146 'app':872,916 'associ':759 'assum':40 'authent':65 'auto':196 'auto-pagin':195 'automat':210 'b055':348,399,474,552,608,680,912,951,1028,1082 'b3c836e1c292':349,400,475,553,609,681,913,952,1029,1083 'backoff':105,167 'bash':9 'by_phone_numbers.data':274 'call':52,305,362,388,433,444,508,586,642,717,767,795,956,997,1033,1087 'caller':236 'carrier':239 'check':91,110,136,158 'client':21,41 'client.messages.send':79 'client.number_lookup.retrieve':229 'client.verifications.actions.verify':673 'client.verifications.by_phone_number.actions.verify':335 'client.verifications.by_phone_number.list':271 'client.verifications.retrieve':603 'client.verifications.trigger':387,462,540 'client.verify_profiles.create':788,868 'client.verify_profiles.delete':1077 'client.verify_profiles.list':710 'client.verify_profiles.retrieve':842,946 'client.verify_profiles.update':904,1020 'code':73,127,131,143,184,242,280,316,326,333,339,357,374,408,483,530,561,617,653,662,671,682,691,875,877,919,921 'common':141 'connect':92 'countri':183,241 'creat':276,384,404,459,479,537,557,613,719,749,753,797,851,854,958,1035,1089 'create_verification_response.data':402,477,555 'custom':279,373,407,482,529,560,616 'dash':187 'data':214,787,945,1019,1076 'default':32 'delay':117 'delet':1065,1068 'e':121 'e.164':175 'e.g':177 'e.message':128 'e.status':126,130 'enum':290,293,303,358,418,421,431,493,496,506,571,574,584,627,630,640,665,692,734,812,973,1050,1104 'error':48,57,62,66,70,90,125,135,142,157,298,426,501,579,635 'exampl':38 'except':86,95,118 'exist':890 'expir':297,425,500,578,634 'exponenti':104,166 'extens':377 'f':123 'fail':54 'failov':743,778,821,982,1010,1059,1113 'field':138,159 'flash':443 'flashcal':306,434,463,509,587,643,722,769,800,961,999,1038,1092 'format':140,160,176,248 'found':154 'fraud':244 'get':222,263,597,699,706,838,932,937 'handl':49,69 'header':114 'hello':85 'id':283,312,329,343,371,394,411,440,453,469,486,515,527,547,564,593,600,620,649,655,659,675,724,802,847,881,898,907,925,941,963,995,1023,1040,1072,1094 'import':15,19,75,106,168 'includ':179 'inform':216 'initi':44 'instal':8,11 'insuffici':149 'integ':301,382,429,457,504,535,582,638 'invalid':145,296,424,499,577,633 'item':201 'iter':198,206 'key':24,28,147 'languag':726,771,804,965,1001,1042,1096 'limit':59,99,163 'list':191,258,695,702,832 'lookup':211,228 'messag':830,836,852,859,866,886,893,902 'message_template.data':879,923 'method':192 'must':172 'name':237,728,765,789,806,873,917,967,1003,1044,1098 'nation':247 'network':56,89 'new':755,856 'note':169 'null':246,282,376,379,410,485,532,563,619 'number':171,213,221,225,227,231,251,262,266,270,286,319,323,337,354,368,390,414,450,465,489,524,543,567,623,688 'number_lookup.data':234 'object':238,240,254,718,723,731,738,768,770,774,776,796,801,809,816,957,962,970,977,998,1000,1006,1008,1034,1039,1047,1054,1088,1093,1101,1108 'omit':36 'option':372,454,528,661,766,996 'os':16 'os.environ.get':25 'page':203,209,709,711 'page.data':712 'page.id':715 'pagin':190,197,701 'parenthes':189 'patch':895,991 'pend':294,422,497,575,631 'permiss':150 'phone':170,212,220,224,230,250,261,265,269,285,318,322,336,353,367,389,413,449,464,488,523,542,566,622,687 'pip':10 'portabl':253 'post':320,364,446,520,656,762,861 'prefix':181 'print':88,122,133,233,273,350,401,476,554,610,684,714,792,844,878,922,953,1030,1084 'product':72 'profil':311,328,342,370,393,439,452,468,514,526,546,592,648,698,705,736,752,757,786,791,814,829,835,858,892,931,936,940,944,975,990,994,1018,1022,1052,1067,1071,1075,1106 'provid':219 'python':4,7,14,74,226,267,330,383,458,536,601,668,708,784,840,865,901,942,1016,1073 'rate':58,98,162 'rcs':730,773,808,969,1005,1046,1100 'record':255,288,416,491,569,625,732,810,971,1048,1102 'reject':360,667,694 'requir':137,325,366,448,522,764,863,899 'resourc':152 'respons':334,356,386,461,539,672,690,841 'response.data':845 'result':78,204 'retri':94,102,112,164 'retriev':595,827,929 'retry-aft':111 'return':193,215,235,275,352,403,478,556,612,686,716,794,846,880,924,955,1032,1086 'sec':300,381,428,456,503,534,581,637 'setup':13 'shown':46 'singl':934 'skill' 'skill-telnyx-verify-python' 'sms':304,432,507,518,541,585,641,737,775,815,976,1007,1053,1107 'source-team-telnyx' 'space':186 'status':292,420,495,573,629,664 'string':243,245,249,252,257,278,281,287,309,355,375,378,406,409,415,437,481,484,490,512,531,559,562,568,590,615,618,624,646,663,689,721,727,729,741,745,748,772,780,783,799,805,807,819,823,826,850,884,928,960,966,968,980,984,987,1002,1004,1012,1015,1037,1043,1045,1057,1061,1064,1091,1097,1099,1111,1115,1118 'telnyx':2,5,12,18,20,22,26,76 'telnyx-verify-python':1 'telnyx.apiconnectionerror':87 'telnyx.apistatuserror':119 'telnyx.ratelimiterror':96 'templat':831,837,843,853,860,867,869,887,894,897,903,905,906 'test':790 'text':84,849,864,870,883,900,914,927 'time':107 'time.sleep':108 'timeout':299,380,427,455,502,533,580,636 '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' 'tri':77 'trigger':361,442,517 'type':256,289,302,417,430,492,505,570,583,626,639,733,811,972,1049,1103 'updat':307,435,510,588,644,739,817,885,888,978,988,1055,1109 'url':744,747,779,782,822,825,983,986,1011,1014,1060,1063,1114,1117 'use':199 'uuid':284,313,412,441,487,516,565,594,621,650,725,803,848,882,926,964,1041,1095 'valid':61,134,156 'verif':259,291,315,332,363,385,419,445,460,494,519,538,572,596,599,602,628,652,658,670,674,735,760,813,874,918,974,1051,1105 'verifi':3,6,310,314,327,331,341,369,392,438,451,467,513,525,545,591,647,651,669,697,704,751,756,785,828,834,857,891,930,935,939,943,989,993,1017,1021,1066,1070,1074 'verification.data':611 'verify_profile_data.data':793,954,1031,1085 'verify_verification_code_response.data':351,685 'wait':100 'webhook':742,746,777,781,820,824,981,985,1009,1013,1058,1062,1112,1116","prices":[{"id":"f5ff8328-526b-4dfc-91ec-f0eb8d492c5b","listingId":"1ec096f0-0d40-4df6-be0b-ea5aa9c282e4","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:06.535Z"}],"sources":[{"listingId":"1ec096f0-0d40-4df6-be0b-ea5aa9c282e4","source":"github","sourceId":"team-telnyx/ai/telnyx-verify-python","sourceUrl":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-verify-python","isPrimary":false,"firstSeenAt":"2026-04-18T22:08:06.535Z","lastSeenAt":"2026-04-22T00:54:49.945Z"}],"details":{"listingId":"1ec096f0-0d40-4df6-be0b-ea5aa9c282e4","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"team-telnyx","slug":"telnyx-verify-python","github":{"repo":"team-telnyx/ai","stars":167,"topics":["agent-skills","ai","ai-coding-agent","claude-code","cpaas","cursor","iot","llm","sdk","sip","sms","speech-to-text","telephony","telnyx","tts","twilio-migration","voice-agents","voice-ai","webrtc","windsurf"],"license":"mit","html_url":"https://github.com/team-telnyx/ai","pushed_at":"2026-04-21T22:09:49Z","description":"Official one-stop shop for AI Agents and developers building with Telnyx.","skill_md_sha":"38cff7fcebad64533b34ce64f1b320e0d0992eaf","skill_md_path":"skills/telnyx-verify-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/team-telnyx/ai/tree/main/skills/telnyx-verify-python"},"layout":"multi","source":"github","category":"ai","frontmatter":{"name":"telnyx-verify-python","description":">-"},"skills_sh_url":"https://skills.sh/team-telnyx/ai/telnyx-verify-python"},"updatedAt":"2026-04-22T00:54:49.945Z"}}