Fiber AI
Enrichment

Email & phone validation

Check an email or phone number you already have before you use it, with a clear verdict and a score per address.

Email & phone validation

You already have the address; the question is whether to use it. We built validation for exactly that: send one email or one phone number and get back a verdict you can act on, plus the details behind it. Is the email going to bounce? Is it a role inbox or a throwaway? Is the number real, and is it reachable right now?

Contacts from Contact Reveal are already checked. Every reveal comes back with a deliverability status, so you don't need to re-validate them. See Contact Reveal: Deliverability. Validation is for addresses that came from somewhere else.

What it does

  • Email validation tells you whether an address is likely to bounce, including on catch-all domains, and flags role-based, disposable, and consumer addresses.
  • Phone validation tells you whether a number is valid and reachable, normalizes it to international and national formats, and returns the country, carrier, and caller ID name where available.

Both are single-address and synchronous: one request, one answer.

Email validation

You send email, one address.

You get:

FieldWhat it tells you
verdictok, undeliverable, risky, or inconclusive
deliverability_score0–100; higher means more likely to deliver
is_catch_allThe domain accepts mail for any address
is_role_basedA functional inbox like sales@ or hello@, not a person
is_disposableA disposable email provider
is_consumerA consumer mailbox (Gmail, Outlook and the like) rather than a work domain
email_providerThe mailbox provider behind the address
emailThe address you sent
{
  "apiKey": "sk_live_xxx",
  "email": "jane@example.com"
}

Read verdict first: send to ok, drop undeliverable, and decide on risky and inconclusive with deliverability_score and the flags.

Phone validation

You send phoneNumber. E.164 (+14155551234) is recommended, but spaces, dashes, and parentheses are accepted. Optionally pass patience: MINIMUM, LOW, MEDIUM, HIGH, EXTREME, or MAXIMUM. Higher patience takes longer on average and gives more accurate identity and reachability results.

You get:

FieldWhat it tells you
validationStatusvalid_reachable, valid_not_reachable, invalid, or unknown
validationScore0–10: 10 = valid and reachable, 6 = valid but not reachable, 2 = unknown, 0 = invalid
isValidWhether the number is valid
isReachablereachable, not_reachable, bad_number, or unknown
formattedNumber / nationalFormatThe number in international and national format
countryCallingCode, countryIsoCode, countryNameWhere the number is registered, e.g. +1, US, United States
currentCarrier / originalCarrierCarrier name, networkType, and country
isPortedThe number has moved carriers
isRoamingThe number is currently roaming
callerIdNameThe caller ID name on the number, when there is one

Formatting, country, carrier, and caller ID fields are nullable.

{
  "apiKey": "sk_live_xxx",
  "phoneNumber": "+14155551234",
  "patience": "MEDIUM"
}

Operations

OperationWhat it doesReference
Email validationPOST /v1/validate-email/single. Verdict, 0–100 score, and address flags for one emailemailBounceDetection
Phone validationPOST /v1/validate-phone/single. Validity, reachability, formatting, carrier, and caller ID for one numbervalidatePhoneNumber

Using it effectively

  • Validate CRM and imported lists before a send, not after the bounces land. Old contact data decays, and a clean list protects your sender reputation.
  • Skip validation on addresses you just got from Contact Reveal; they already carry a status. Note the vocabulary differs: reveals use valid, risky, unknown, invalid, while email validation returns ok, undeliverable, risky, inconclusive.
  • Treat is_role_based as a routing hint. A sales@ address can be perfectly deliverable and still the wrong place for one-to-one outreach.
  • Allow up to a minute per phone request, and raise patience only when accuracy matters more than speed. A human waiting on a form submit wants a lower setting.
  • Pace bulk runs to the rate limits below; a burst past them returns HTTP 429.

Use cases

  • Pre-send list cleaning: run every email in a campaign list and suppress undeliverable before the sequence starts.
  • Inbound form screening: flag disposable and consumer emails at signup so sales sees which leads gave a work address.
  • Dialer prep: drop invalid and valid_not_reachable numbers before they reach your reps' call queue, and use formattedNumber to normalize what's left.
  • CRM hygiene: re-check contacts that haven't engaged in a while and mark the ones that no longer pass.

Cost and limits

Email validationPhone validation
Cost1 credit per email validation3 credits per phone validation
Rate limit300 requests/minute60 requests/minute

Set a 1-minute client timeout for phone validation. chargeInfo on each response is the authoritative record of what you were charged. See Billing & credits.

On this page