ravn
Phone validation API

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.

Start free: 1,000 lookups Read the docs

How it works

What happens on every call.

The same tool answers over the REST API, the MCP server and the CLI.

  1. / 01

    Parse and format

    Any format in, E.164 out, with the country detected.

  2. / 02

    Number-plan line type

    Mobile, landline, VoIP or toll-free from the numbering plan.

  3. / 03

    Live carrier check

    phone_to_carrier runs 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 returns 403 provider_key_required.

  4. / 04

    Only text real mobiles

    linkedin_to_mobile_phone returns only numbers confirmed as mobile when carrier checks are on.

Call it

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 } }
FAQ

Questions about validate_phone.

All questions →

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.