For affiliates, networks and lead buyers

Phone validation for affiliate marketers and lead-gen marketplaces

Validate every lead inside the form-submit handler, before you ping a buyer: line type after porting, a carrier deactivation in the last 45 days, our internal blacklist and, with the litigator scrub, known TCPA litigators. The result travels with the ping, and buyers can re-check it on the post.

  • US and Canadian numbers
  • From $0.0009 per lookup
  • State DNC checks free
Leads at the ping
Number The lookup says Do this
(602) 555-0114 Mobile, not a known litigator Ping all buyers
(818) 555-0137 VoIP line VoIP buyers only
(512) 555-0129 Landline, can't take texts Call buyers only
(212) 555-0147 Known TCPA litigator Discard
(305) 555-0161 Deactivated by the carrier Oct 4 Discard

Fictional 555 numbers.

  • 1B+ requests served by our validation network
  • ~32% of numbers we look up are landline or VoIP
  • ~7% of landlines we check can take a text
  • ~1.5% flagged as TCPA litigators when the scrub is on

Where lead sales go wrong

“Buyers reject leads we already paid traffic for.”

About 32% of the numbers we look up are landline or VoIP. If your buyers price by channel, nanpType and dipCarrierSubType belong in the ping.

Source: CheckThatPhone lookup data

nanpTypedipCarrierSubType

“One litigator in a sold lead becomes everyone's problem.”

Each call or text that breaks the TCPA rules on autodialed or prerecorded calls can cost $500 in statutory damages, and up to three times that if the court finds it willful or knowing.

47 U.S.C. 227(b)(3) · law.cornell.edu

litigatorlitigator_type

“Do our forms need one-to-one consent now?”

The 11th Circuit vacated the FCC's one-to-one consent rule on January 24, 2025, before it took effect. Prior express written consent is still required for autodialed or prerecorded telemarketing.

Insurance Marketing Coalition v. FCC (11th Cir. 2025) · media.ca11.uscourts.gov

“The buyer says the lead was dead on arrival.”

optDate timestamps every lookup, and deactivationDate and reason show whether the carrier had deactivated the number. Store the response with the lead for disputes; your contract decides the outcome.

optDatedeactivationDatereason

The ping-post integration shape

The same pattern works for direct affiliate-to-advertiser flows and for ping-post platforms that broker leads between many sources and many buyers.

  1. Step 1

    Validate at form submit

    The seller's submit handler calls the API with litigatorFilter: true and stores the response on the lead. The visitor sees the thank-you page right away; the lookup runs server-side. A hard reject (deactivated, litigator, blacklisted) never enters the marketplace.

  2. Step 2

    Ping buyers with the result

    Include nanpType, dipCarrierType, dipCarrierSubType, dipPorted, geoState and optDate in the ping. Buyers' acceptance rules and bids run on that metadata.

  3. Step 3

    Buyer re-checks on the post

    Buyers call the API themselves on the post and compare it with the seller's claims. A mismatch (seller said mobile, buyer sees VoIP) feeds seller quality scoring. It is one more lookup per accepted lead.

  4. Step 4

    Re-score on a schedule

    SellDiscount tierDiscard

    Re-check recent leads weekly for active sources and monthly for archives. A number that was clean at submit but has since been deactivated or flagged tells the seller the source is going stale, and the buyer not to recontact.

The fields that decide saleability

Which buyer tier a lead fits, and whether it is sellable at all. Absent DNC fields mean the check didn't run (not checked), never clear.

If the response showsFieldDo this
A hard reject action = unsubscribereason Read reason first. A litigator match, "Blacklisted Subscriber" or a carrier deactivation means discard. "Not a valid mobile number" is a landline: still sellable to call buyers.
Known TCPA litigator litigatorlitigator_typelitigator_name Discard. Needs litigatorFilter: true (+1 credit per lookup).
On our internal blacklist blackListreason Hard reject. blackList is "true" for numbers on our internal blacklist of flagged numbers, and for any litigator match; reason and litigator tell you which.
Active mobile nanpType = mobiledipCarrierSubType = WIRELESS Premium tier: SMS and call buyers.
VoIP dipCarrierSubType = IPES Discount tier, or a buyer that specifically takes VoIP.
Landline nanpTypedipCarrierType Call-center buyers, not SMS buyers, unless the landline SMS check returns smsEligible: "true".
Deactivated by the carrier recently deactivationDate Discard: the carrier deactivated it in the last 45 days.
State DNC or complainer match (free) dncStateResult = STATE DNCdncComplainerResult = DNC COMPLAINER Pass it to buyers. Whether to call is their consent decision. If dncStateChecked is absent, the state was not checked.
State and time zone geoStatetimezonegeoSource For state-licensed buyers and call cadence. From the visitor's IP if you pass one, otherwise the area code; neither proves where the person lives.
Ported dipPorted Metadata only: the number moved carriers at some point. There is no port date.

A sellable lead

An active mobile on a wireless carrier, not a litigator, with the litigator scrub on. The visitor's IP was passed, so geoState and timezone come from the IP (geoSource: "ip"); ipResult only says the IP was valid, it doesn't compare locations.

2 credits: lookup + litigator scrub

Highlighted fields: action, nanpType, dipCarrierSubType, litigator, geoSource.

{
  "success": true,
  "credits_used": 2,
  "data": {
    "subscriber": "6025550114",
    "optDate": "2026-10-08T21:55:43.723Z",
    "action": "send",
    "deliverable": "true",
    "nanpType": "mobile",
    "blackList": "false",
    "ipResult": "valid-v4",
    "dip": "success",
    "dipLrn": "6025550114",
    "dipPorted": "false",
    "dipOcn": "6010",
    "dipCarrierSubType": "WIRELESS",
    "dipCarrier": "AT&T",
    "dipCarrierType": "mobile",
    "litigator": "false",
    "litigator_type": "",
    "litigator_name": "",
    "geoState": "AZ",
    "geoCity": "Phoenix",
    "geoCountry": "US",
    "geoMetro": 753,
    "timezone": "America/Phoenix",
    "tzOffset": 7,
    "geoSource": "ip",
    "error": "false",
    "smsEligible": "true"
  }
}

What it costs at your lead volume

Monthly cost, with the TCPA litigator scrub (+1 credit per number):

  • Single offer, 5,000 leads/mo: $30/mo on the 10K plan, billed monthly
  • Growing network, 40,000 leads/mo: $100/mo on the 100K plan, billed monthly
  • High-volume network, 80,000 leads/mo: $160/mo on the 100K plan, billed monthly
  • Ping-post buyer, 200,000 posts/mo: $400/mo on the 100K plan, billed monthly
Your monthly cost $100/mo on the 100K plan, billed monthly 40,000 leads × 2 credits = 80,000 credits. 100K plan: $100 (100,000 included)

Computed from the published plans. State DNC and complainer checks never add credits. For seven-figure monthly volume, use the volume contact form.

What the lookup covers, and what's still on you

The lookup gives you

  • Mobile, landline or VoIP from a live carrier dip, after porting
  • Carrier deactivations in the last 45 days
  • Our internal blacklist
  • Known TCPA litigators (+1 credit)
  • State do-not-call matches in 38 states plus DC, and complainers (free)
  • A timestamp (optDate) on every lookup

Still your job

  • Prior express written consent captured on every form, for autodialed or prerecorded telemarketing. The one-to-one consent rule was vacated before it took effect; written consent still applies. · 47 CFR 64.1200(a)(2), 64.1200(f)(9), IMC v. FCC (11th Cir. 2025)
  • The National Do Not Call Registry, through the FTC, with a copy no more than 31 days old · 47 CFR 64.1200(c)(2)(i)(D)
  • Opt-outs by any reasonable method, honored within 10 business days · 47 CFR 64.1200(a)(10)
  • SMS buyers: the wireless industry's messaging guidelines say not to use opt-in lists that have been rented, sold or shared · CTIA Messaging Principles 5.1.4
  • Duplicate suppression across submissions: we validate the number, not whether you have seen it before

Not legal advice.

Coverage and limits

  • State DNC: covers 38 states plus DC, refreshed weekly. Numbers in CO, FL, IN, LA, MA, MS, MO, OK, PA, TN, TX and WY aren't checked, and dncStateChecked is left out for them, so "not checked" never reads as clear.
  • No National Do Not Call Registry check. Registry access for sellers comes from the FTC at telemarketing.donotcall.gov.
  • No subscriber names or owner details.
  • deactivationDate: data refreshed daily, with a 1 to 7 day lag, and entries expire after 45 days. It is not a reassigned-number check.
  • Canadian numbers are validated and carrier-dipped like US numbers, but the state DNC check is US-only and Canada's National DNCL isn't checked.

Lead-gen validation: common questions

Where in the ping-post flow should the lookup happen?

On the seller side, inside the form-submit handler, before you ping any buyer, so the ping carries the validation metadata. On the buyer side, call it again when the post arrives rather than trusting the seller's metadata blindly. Both sides should count the lookup credit in their unit economics.

Will buyers accept leads with our validation metadata attached?

That's between you and your buyers. Attaching the response fields gives a buyer the same fields their own lookup would return, with a timestamp (optDate) and an audit trail if a complaint is filed.

How do we keep this from hurting our conversion rate?

Don't block the form submit on the result: the visitor has already converted. Make the routing decision after submit: ping buyers with the metadata and let their acceptance rules decide. Failed validation goes to your discard bucket or a lower-tier buyer that wants the volume.

Do you flag duplicates across multiple submissions?

No. CheckThatPhone validates the phone number itself; it does not keep a cross-customer duplicate database. Most lead-gen networks layer their own duplicate suppression on top, keyed on the phone number plus a recency window.

Does ipResult tell me whether the IP matches the phone number?

No. ipResult only says whether the IP you passed is valid ("valid-v4" or "valid-v6"). When you pass an IP, geoState, geoCity and timezone come from the IP; without one they come from the area code. One lookup returns one or the other, so it can't compare them.

Does a clean lookup prove consent?

No. A number can pass every check and still be wrong to contact if the consent record is weak. The FCC's one-to-one consent rule never took effect (the 11th Circuit vacated it on January 24, 2025), but prior express written consent still applies. This page is not legal advice.

Validate your next lead before the ping

500 free lookups a month. The litigator scrub is 1 extra credit per lookup.