Comparison

CheckThatPhone vs Numverify: live carrier data or global coverage

CheckThatPhone is a Numverify alternative for US and Canadian numbers when you need the current carrier, whether the number was ported and whether it can take a text. Numverify validates numbers in 232 countries against international numbering plans, from $14.99 a month for 5,000 requests. CheckThatPhone covers only the US and Canada, but runs a live carrier dip on every lookup, from $5 a month for 1,000.

If you need numbers from outside North America, or the lowest price per request at certain volumes, Numverify is the better fit. If you call or text North American numbers, the porting, deliverability and compliance fields are what CheckThatPhone adds.

As of October 2026. Numverify facts were checked on October 3, 2026 against Numverify's own pricing and documentation pages, linked next to each fact. Prices change, so check the source before you commit budget. CheckThatPhone is our product.

At a glance

 CheckThatPhoneNumverify
Coverage US and Canada (NANP) only 232 countries source
Data source Live carrier dip at lookup time Requests "processed in real time, cross-checked against the latest international numbering plan databases" source
Free plan 500 lookups a month, hard-capped 100 requests a month, non-commercial use, no support source
Paid plans $5 a month for 1,000 lookups up to $450 for 500,000 $14.99 a month for 5,000 requests up to $129.99 for 250,000; custom plans above source
Overage $0.005 down to $0.0009 per lookup $0.011992 (Basic) down to $0.00207984 (Enterprise) per request source
Annual billing 15% off Up to 15% off source
Fields returned Carrier, OCN, routing number, ported flag, line type and sub-type, action, deliverability, deactivation date, location and timezone Valid, local and international format, country, location, carrier, line type (documented response fields) source
Ported numbers dipPorted and dipLrn on every lookup No porting or routing-number field in the documented response source
TCPA litigator scrub Add-on, +1 credit, refreshed daily Not listed on its pricing page source
State DNC and complainer checks Free add-on: 38 states plus DC, refreshed weekly (no federal DNC) Not listed on its pricing page source
Text-enabled landlines Add-on, +1 credit on landlines only Not listed on its pricing page source
List upload CSV upload in the dashboard, up to 1,000,000 rows, deduplicated No batch endpoint in its API reference source
Request POST /v1/lookup, JSON body, bearer API key GET request with access_key and number in the query string source

Cost at different volumes

Base lookups each month, monthly billing, cheapest plan on each side including overage. Numverify figures use the plan prices and overage rates on its pricing page; its Free plan is left out because it is non-commercial.

Lookups a monthNumverifyCheckThatPhone
5,000 $14.99 (Basic) $25 (1K plan)
10,000 $59.99 (Professional) $30 (10K plan)
50,000 $59.99 (Professional) $100 (100K plan)
100,000 $129.99 (Enterprise) $100 (100K plan)
250,000 $129.99 (Enterprise) $250 (100K plan)

Neither is cheaper at every volume: it depends on where your volume falls against each plan's included requests. The bigger difference is what a request returns: Numverify's documented response has no ported flag or routing number, while a live carrier dip returns both, along with the carrier serving the number today.

Where Numverify is the better fit

Where CheckThatPhone fits better

Example request and response

A standard CheckThatPhone lookup:

curl --request POST \
  --url 'https://api.checkthatphone.com/v1/lookup' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{"phone": "617-555-0133"}'

An illustrative response (a fictional 555 number; field names and formats match the live API). The fields with no counterpart in Numverify's documented response are the carrier dip fields (dipLrn, dipPorted, dipOcn), action, deliverable and timezone:

{
  "success": true,
  "credits_used": 1,
  "data": {
    "subscriber": "6175550133",
    "optDate": "2026-10-03T15:31:52.640Z",
    "action": "send",
    "deliverable": "true",
    "reason": "",
    "nanpType": "mobile",
    "blackList": "false",
    "dip": "success",
    "dipLrn": "6175550133",
    "dipPorted": "false",
    "dipOcn": "6010",
    "dipCarrier": "AT&T",
    "dipCarrierSubType": "WIRELESS",
    "dipCarrierType": "mobile",
    "geoState": "MA",
    "geoCity": "boston",
    "geoCountry": "US",
    "geoSource": "area-code",
    "timezone": "America/New_York",
    "tzOffset": 5,
    "error": "false"
  }
}

CheckThatPhone vs Numverify: common questions

Is CheckThatPhone a good Numverify alternative?

For US and Canadian numbers where the current carrier, porting status and deliverability matter, yes. For numbers in other countries, no: CheckThatPhone covers only the US and Canada, while Numverify lists 232 countries.

Is Numverify cheaper than CheckThatPhone?

At some volumes. Numverify lists $14.99 a month for 5,000 requests and $129.99 for 250,000; our plans run from $5 for 1,000 lookups to $450 for 500,000. The cost table on this page shows where each one comes out lower.

Does Numverify detect ported numbers?

Numverify's documented response fields cover validity, formats, country, location, carrier and line type, with no porting flag or routing number. CheckThatPhone returns dipPorted and dipLrn from a live carrier dip on every lookup.

What changes in the integration?

Numverify is a GET request with your access key and the number in the query string, returning fields such as valid, carrier and line_type. CheckThatPhone is a POST to https://api.checkthatphone.com/v1/lookup with a JSON body and a bearer API key. Official SDKs: npm install checkthatphone and pip install checkthatphone.

Sources

Numverify pages, all checked on October 3, 2026:

CheckThatPhone figures come from our pricing page and API documentation.

Related