Is it a real mobile?
validate_phone checks the number, formats it as E.164 and gives the number-plan line type on our own tech. phone_to_carrier asks the network for the real carrier and line type on your own Twilio key.
What happens on every call.
The same tool answers over the REST API, the MCP server and the CLI.
- / 01
Parse and format
Any format in, E.164 out, with the country detected.
- / 02
Number-plan line type
Mobile, landline, VoIP or toll-free from the numbering plan.
- / 03
Live carrier check
phone_to_carrierruns on your own Twilio key and returns the actual carrier and whether the line is mobile, landline, fixed or non-fixed VoIP. Without a key it returns403 provider_key_required. - / 04
Only text real mobiles
linkedin_to_mobile_phonereturns only numbers confirmed as mobile when carrier checks are on.
One request. One answer shape.
Branch on status. A miss returns not_found and costs nothing. In Claude, just ask in plain English and it picks validate_phone for you.
curl https://api.askravn.com/v1/tools/validate_phone \
-H "Authorization: Bearer $RAVN_API_KEY" \
-d '{"phone": "+1 415 555 0132"}'
{ "status": "ok",
"results": { "phone": "+14155550132", "valid": true, "country": "US",
"national": "(415) 555-0132", "line_type": "mobile", "carrier_checked": false } }
What does a carrier check cost?
One lookup on your Ravn plan, run on your own Twilio key. Basic validation is our own tech and counts as a lookup too.
Why check line type before texting?
Texting landlines fails and texting VoIP numbers can hit fraud filters. Checking first keeps your sender reputation clean.
Which countries work?
Validation works for every country in the international numbering plan. Carrier checks depend on network coverage.
Can I check a list?
Yes, with npx ravn enrich on a CSV column.
More tools, same key.
Every tool shares one account, one plan and one answer shape. See pricing →