Look up phone number information (carrier, type, caller name) and verify users via SMS/voice OTP. Use for phone verification and data enrichment. This skill provides Ruby SDK examples.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add team-telnyx/telnyx-ext-agent-skills --skill telnyx-verify-ruby --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Telnyx Verify Ruby?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/team-telnyx-telnyx-verify-ruby-ai)More formats (shields.io, HTML) on the badges page.
---
name: telnyx-verify-ruby
description: >-
Look up phone number information (carrier, type, caller name) and verify users
via SMS/voice OTP. Use for phone verification and data enrichment. This skill
provides Ruby SDK examples.
metadata:
author: telnyx
product: verify
language: ruby
generated_by: telnyx-openapi-pipeline
---
<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
# Telnyx Verify - Ruby
## Installation
```bash
gem install telnyx
```
## Setup
```ruby
require "telnyx"
client = Telnyx::Client.new(
api_key: ENV["TELNYX_API_KEY"], # This is the default and can be omitted
)
```
All examples below assume `client` is already initialized as shown above.
## Error Handling
All API calls can fail with network errors, rate limits (429), validation errors (422),
or authentication errors (401). Always handle errors in production code:
```ruby
begin
result = client.messages.send_(to: "+13125550001", from: "+13125550002", text: "Hello")
rescue Telnyx::Errors::APIConnectionError
puts "Network error — check connectivity and retry"
rescue Telnyx::Errors::RateLimitError
# 429: rate limited — wait and retry with exponential backoff
sleep(1) # Check Retry-After header for actual delay
rescue Telnyx::Errors::APIStatusError => e
puts "API error #{e.status}: #{e.message}"
if e.status == 422
puts "Validation error — check required fields and formats"
end
end
```
Common error codes: `401` invalid API key, `403` insufficient permissions,
`404` resource not found, `422` validation error (check field formats),
`429` rate limited (retry with exponential backoff).
## Important Notes
- **Phone numbers** must be in E.164 format (e.g., `+13125550001`). Include the `+` prefix and country code. No spaces, dashes, or parentheses.
- **Pagination:** Use `.auto_paging_each` for automatic iteration: `page.auto_paging_each { |item| puts item.id }`.
## Lookup phone number data
Returns information about the provided phone number.
`GET /number_lookup/{phone_number}`
```ruby
number_lookup = client.number_lookup.retrieve("+18665552368")
puts(number_lookup)
```
Returns: `caller_name` (object), `carrier` (object), `country_code` (string), `fraud` (string | null), `national_format` (string), `phone_number` (string), `portability` (object), `record_type` (string)
## List verifications by phone number
`GET /verifications/by_phone_number/{phone_number}`
```ruby
by_phone_numbers = client.verifications.by_phone_number.list("+13035551234")
puts(by_phone_numbers)
```
Returns: `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, whatsapp), `updated_at` (string), `verify_profile_id` (uuid)
## Verify verification code by phone number
`POST /verifications/by_phone_number/{phone_number}/actions/verify` — Required: `code`, `verify_profile_id`
```ruby
verify_verification_code_response = client.verifications.by_phone_number.actions.verify(
"+13035551234",
code: "17686",
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
)
puts(verify_verification_code_response)
```
Returns: `phone_number` (string), `response_code` (enum: accepted, rejected)
## Trigger Call verification
`POST /verifications/call` — Required: `phone_number`, `verify_profile_id`
Optional: `custom_code` (string | null), `extension` (string | null), `timeout_secs` (integer)
```ruby
create_verification_response = client.verifications.trigger_call(
phone_number: "+13035551234",
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
)
puts(create_verification_response)
```
Returns: `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, whatsapp), `updated_at` (string), `verify_profile_id` (uuid)
## Trigger Flash call verification
`POST /verifications/flashcall` — Required: `phone_number`, `verify_profile_id`
Optional: `timeout_secs` (integer)
```ruby
create_verification_response = client.verifications.trigger_flashcall(
phone_number: "+13035551234",
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
)
puts(create_verification_response)
```
Returns: `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, whatsapp), `updated_at` (string), `verify_profile_id` (uuid)
## Trigger SMS verification
`POST /verifications/sms` — Required: `phone_number`, `verify_profile_id`
Optional: `custom_code` (string | null), `timeout_secs` (integer)
```ruby
create_verification_response = client.verifications.trigger_sms(
phone_number: "+13035551234",
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
)
puts(create_verification_response)
```
Returns: `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, whatsapp), `updated_at` (string), `verify_profile_id` (uuid)
## Trigger WhatsApp verification
`POST /verifications/whatsapp` — Required: `phone_number`, `verify_profile_id`
Optional: `custom_code` (string | null), `timeout_secs` (integer)
```ruby
create_verification_response = client.verifications.trigger_whatsapp_verification(
phone_number: "+13035551234",
verify_profile_id: "12ade33a-21c0-473b-b055-b3c836e1c292"
)
puts(create_verification_response)
```
Returns: `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, whatsapp), `updated_at` (string), `verify_profile_id` (uuid)
## Retrieve verification
`GET /verifications/{verification_id}`
```ruby
verification = client.verifications.retrieve("12ade33a-21c0-473b-b055-b3c836e1c292")
puts(verification)
```
Returns: `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, whatsapp), `updated_at` (string), `verify_profile_id` (uuid)
## Verify verification code by ID
`POST /verifications/{verification_id}/actions/verify`
Optional: `code` (string), `status` (enum: accepted, rejected)
```ruby
verify_verification_code_response = client.verifications.actions.verify("12ade33a-21c0-473b-b055-b3c836e1c292")
puts(verify_verification_code_response)
```
Returns: `phone_number` (string), `response_code` (enum: accepted, rejected)
## List all Verify profiles
Gets a paginated list of Verify profiles.
`GET /verify_profiles`
```ruby
page = client.verify_profiles.list
puts(page)
```
Returns: `call` (object), `created_at` (string), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
## Create a Verify profile
Creates a new Verify profile to associate verifications with.
`POST /verify_profiles` — Required: `name`
Optional: `call` (object), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `flashcall` (object), `language` (string), `sms` (object), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
```ruby
verify_profile_data = client.verify_profiles.create(name: "Test Profile")
puts(verify_profile_data)
```
Returns: `call` (object), `created_at` (string), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
## Retrieve Verify profile message templates
List all Verify profile message templates.
`GET /verify_profiles/templates`
```ruby
response = client.verify_profiles.retrieve_templates
puts(response)
```
Returns: `id` (uuid), `text` (string)
## Create message template
Create a new Verify profile message template.
`POST /verify_profiles/templates` — Required: `text`
```ruby
message_template = client.verify_profiles.create_template(text: "Your {{app_name}} verification code is: {{code}}.")
puts(message_template)
```
Returns: `id` (uuid), `text` (string)
## Update message template
Update an existing Verify profile message template.
`PATCH /verify_profiles/templates/{template_id}` — Required: `text`
```ruby
message_template = client.verify_profiles.update_template(
"12ade33a-21c0-473b-b055-b3c836e1c292",
text: "Your {{app_name}} verification code is: {{code}}."
)
puts(message_template)
```
Returns: `id` (uuid), `text` (string)
## Retrieve Verify profile
Gets a single Verify profile.
`GET /verify_profiles/{verify_profile_id}`
```ruby
verify_profile_data = client.verify_profiles.retrieve("12ade33a-21c0-473b-b055-b3c836e1c292")
puts(verify_profile_data)
```
Returns: `call` (object), `created_at` (string), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
## Update Verify profile
`PATCH /verify_profiles/{verify_profile_id}`
Optional: `call` (object), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `language` (string), `name` (string), `sms` (object), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
```ruby
verify_profile_data = client.verify_profiles.update("12ade33a-21c0-473b-b055-b3c836e1c292")
puts(verify_profile_data)
```
Returns: `call` (object), `created_at` (string), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
## Delete Verify profile
`DELETE /verify_profiles/{verify_profile_id}`
```ruby
verify_profile_data = client.verify_profiles.delete("12ade33a-21c0-473b-b055-b3c836e1c292")
puts(verify_profile_data)
```
Returns: `call` (object), `created_at` (string), `daily_spend_limit` (number), `daily_spend_limit_enabled` (boolean), `flashcall` (object), `id` (uuid), `language` (string), `name` (string), `record_type` (enum: verification_profile), `sms` (object), `updated_at` (string), `webhook_failover_url` (string), `webhook_url` (string), `whatsapp` (object)
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!