Use case

Lead and form verification

Check the phone number and e-mail address on a lead form in one request, so fake, mistyped and low-quality leads are flagged before sales calls them.

Last updated

A lead list with a verdict per row and a summary bar of registered, not registered and unknown numbers.A lead list with a verdict per row and a summary bar of registered, not registered and unknown numbers.

Lead verification checks the contact details on a form before your team spends time on them. One request checks the phone number, including its line type and whether it has a messenger account, and the e-mail address, including whether the mailbox exists. You can then score leads, send the doubtful ones to review and ask for corrections while the person is still on the page.

Why verify leads at the form?

Bad leads cost sales time, dialler minutes and ad budget, and they distort your conversion data. Common problems:

  • Typos. A digit missing from the phone number or a misspelled e-mail domain. Catching these on the form lets the person fix them straight away.
  • Made-up details. Numbers such as 555 0100-style fillers, or e-mail addresses at real providers that don't exist.
  • Numbers that can't be reached the way you plan. A fixed line when your process relies on SMS, or a VoIP number where you expect a mobile.
  • Bots and paid form fillers. They often reuse patterns. A burst of generated numbers or addresses is exactly what our anti-enumeration rules reject.

A useful combination for most forms is the carrier lookup plus WhatsApp for the number, and the e-mail mailbox check for the address. For US and Canadian leads handled in batches, the US/CA carrier lookup adds current-carrier data.

How does the workflow look?

  1. When the form is submitted, call POST /v1/lookup with numbers, emails and checks: ["carrier", "whatsapp", "email"].
  2. Result rows come numbers first, then e-mails. Each row has a kind (phone or email) and a checks map.
  3. Score the lead with the table below. Store the score and the checked_at time in your CRM, not the whole response.
  4. If the score is low, ask for a correction on the form ("please check your number") or send the lead to manual review.
  5. For leads that arrive in batches, for example from events or partners you have a lawful basis for, use a bulk job with the same checks. Download the CSV and import it back into your CRM.

What should you do with each result?

SignalsSuggested action
Mobile line and a mailbox that existsAccept the lead
Mobile line, messenger account, mailbox check unknown (e.g. a company domain)Accept. Unknown is not negative
number_status: invalid_number or email_status: invalid_emailAsk for a correction on the form
Mailbox registered: falseAsk for a correction or review. The address will probably bounce
line_type is voip, no messenger account, mailbox missingReview before sales spends time on it
Many signals unknownAccept with normal handling. Missing data is not evidence of fraud

How much does it cost?

Each check on each identifier is billed separately, and only when the answer is conclusive. You're not charged for inconclusive results (unknown, unsupported country, timeout, invalid, duplicate). The request below runs three checks and can bill up to three. Company e-mail domains that the mailbox check doesn't cover return unknown and cost nothing. See pricing for current rates.

Real-time checks at the form cost more per check than bulk jobs, but they let the person fix a mistake straight away. For batches, the bulk price applies. If the same lead submits twice inside the freshness window, the second check comes free from your account's cache.

Example request

curl https://api.mobilevalidate.com/v1/lookup \
  -H "Authorization: Bearer mv_test_publicSandboxn9ZgneuhR1B9CRfKG3fulym" \
  -H "Content-Type: application/json" \
  -d '{"numbers":["+447700900001"],"emails":["[email protected]"],"checks":["carrier","whatsapp","email"]}'

Runs as pasted with the public sandbox key, which answers the test values only. In the SDKs, omit the key to use MOBILEVALIDATE_API_KEY.

Response (excerpt, test mode: the checks of the phone row, then of the e-mail row):

JSON
[
  {
    "network.carrier": {
      "service": "network.carrier", "status": "completed", "registered": true,
      "attributes": {"line_type": "mobile", "carrier": "Test Carrier", "country": "GB"},
      "confidence": "high", "confidence_score": 0.99, "checked_at": "2026-09-25T14:28:23.538Z",
      "cached": false, "age_seconds": 0, "billed": false, "reason": null, "poll_after_ms": null
    },
    "whatsapp.registered": {
      "service": "whatsapp.registered", "status": "completed", "registered": true, "attributes": null,
      "confidence": "high", "confidence_score": 0.99, "checked_at": "2026-09-25T14:28:23.538Z",
      "cached": false, "age_seconds": 0, "billed": false, "reason": null, "poll_after_ms": null
    }
  },
  {
    "email.valid": {
      "service": "email.valid", "status": "completed", "registered": false, "attributes": null,
      "confidence": "high", "confidence_score": 0.99, "checked_at": "2026-09-25T14:28:23.538Z",
      "cached": false, "age_seconds": 0, "billed": false, "reason": null, "poll_after_ms": null
    }
  }
]

The phone looks fine and the mailbox doesn't exist, so the form should ask the person to check their e-mail address.

What limits and rules apply?

A lookup takes up to 100 numbers and e-mails in total and up to 20 checks. You need at least one check for each kind of identifier you send. Addresses are normalized by trimming spaces and lowercasing, and nothing else is changed. Requests that look like sequential number ranges or generated e-mail lists are rejected. That includes 20 or more addresses on one domain that differ only by digits. See e-mail checks.

Say in your privacy notice that you verify contact details to prevent fraud and keep your records accurate. Verify only leads you have a lawful basis to process. Don't use the checks to enrich people you have no relationship with, and remember that a passed check is not consent to marketing. People can object through the opt-out form.

Frequently asked questions

Can I check a phone number and an e-mail address in the same request?

Yes. Send numbers and emails together (up to 100 in total) with at least one phone check and one e-mail check. Phone checks run on the numbers and e-mail checks run on the addresses.

Does a missing messenger account mean the lead is fake?

No. Many real people don't use a given messenger. A missing account is one weak signal. It carries more weight when combined with other checks, such as a non-mobile line type or a mailbox that doesn't exist.

Which e-mail addresses can the mailbox check answer for?

The e-mail mailbox check covers major webmail providers. For other domains it returns unknown with the reason UNSUPPORTED_PROVIDER, and that result is not charged.

Do you return the lead's name or social profile?

No. Checks answer only yes, no or unknown, plus data such as line type or carrier. Names, photos and profiles are never returned.

Can I verify leads I bought from a third party?

Only if you have a lawful basis to process them and the people agreed to be contacted by you. The checks can't make a non-consented list usable for marketing.

All articles

Know before you send.

Tell us about your use case. We review every request and set you up with test and live keys.