Comparison
CheckThatPhone vs Abstract API: US and Canada depth or global reach
CheckThatPhone is an Abstract API alternative for US and Canadian numbers. Both return the carrier, the line type (VoIP included) and whether the line is in service; CheckThatPhone adds the porting status and routing number, a send-or-not verdict and TCPA or DNC screening in the same call. Abstract's phone API covers 190+ countries, from $19 a month for 5,000 requests. CheckThatPhone covers only the US and Canada, from $5 a month for 1,000 lookups.
If you need numbers outside North America, a free plan with no card, or registered-name, risk and breach data, Abstract 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. Abstract facts were checked on October 3, 2026 against Abstract's own product, 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
| CheckThatPhone | Abstract API | |
|---|---|---|
| Coverage | US and Canada (NANP) only | 190+ countries source |
| How the data is described | Live carrier dip at lookup time | "Check any phone number in real time"; its FAQ says it uses "several databases of numbers", with "various updates to the data" daily and "substantive updates" weekly and monthly source |
| Free plan | 500 lookups a month, hard-capped; card on file, verified with a $0 check and never charged | 100 requests a month, no credit card, every field included source |
| Paid plans | $5 a month for 1,000 lookups up to $450 for 500,000; every plan returns the full response | Starter, Standard and Professional, each from $19 a month; the same price buys 5,000, 3,000 or 2,000 requests as each tier adds data; Enterprise is custom source |
| Annual billing | 15% off | 10% off ($17 a month instead of $19) source |
| Invalid or malformed numbers | HTTP 400, not charged; failed lookups never consume credits | Each submitted number counts as a credit, including invalid input source |
| Carrier and line type | Carrier, OCN, line type and sub-type; VoIP is detected and shows as IPES in the sub-type (no separate flag) | Carrier name, line type (mobile, landline, voip, toll_free and more), MCC, MNC, is_voip source |
| Ported numbers | dipPorted and dipLrn (routing number) on every lookup | No porting or routing-number field in the documented response source |
| Line status | In every lookup through deliverable and action / reason, with deactivationDate for carrier deactivations in the last 45 days (no separate field) | line_status (e.g. active, inactive); minimum_age of the number from Standard up source |
| Decision or risk field | action: "send", "unsubscribe" or "error", with a reason | risk_level (low, medium, high), disposable and abuse flags on Professional source |
| Registered name and breaches | Not offered | Registered name and type (consumer or business) and breach history on Professional source |
| TCPA litigator scrub | Add-on, +1 credit, refreshed daily | Not listed on its phone product or pricing pages source |
| State DNC and complainer checks | Free add-on: 38 states plus DC, refreshed weekly (no federal DNC) | Not listed on its phone product or pricing pages source |
| SMS fields | Text-enabled landline check, add-on, +1 credit on landlines only | Email-to-SMS gateway address (sms_domain, sms_email) from Standard up source |
| List upload | CSV upload in the dashboard, up to 1,000,000 rows, deduplicated | CSV upload on paid plans, up to 50,000 rows per file source |
| Request | POST /v1/lookup, JSON body, bearer API key | GET with api_key and phone in the query string source |
Cost at different volumes
Base lookups each month, monthly billing. Abstract figures use the Starter plan, which its pricing FAQ names as the plan that returns carrier and line type, at the smallest listed volume that covers the month. Abstract's pages list fixed volumes and no overage rate, and point to Enterprise pricing above 150,000 requests a month. CheckThatPhone figures are the cheapest plan including overage.
| Lookups a month | Abstract API | CheckThatPhone |
|---|---|---|
| 5,000 | $19 (Starter, 5,000 requests) | $25 (1K plan) |
| 10,000 | $39 (Starter, 15,000 requests) | $30 (10K plan) |
| 50,000 | $99 (Starter, 50,000 requests) | $100 (100K plan) |
| 100,000 | $199 (Starter, 150,000 requests) | $100 (100K plan) |
| 250,000 | Enterprise, custom pricing | $250 (100K plan) |
| 500,000 | Enterprise, custom pricing | $450 (500K plan) |
Neither is cheaper at every volume. Abstract comes out lower at 5,000 a month and, by a dollar, at 50,000. CheckThatPhone is lower at 10,000 and 100,000, and its self-serve plans keep going past 150,000, where Abstract moves to custom pricing. Compare what each request returns too: Abstract's Standard and Professional plans add data at the same price by including fewer requests, while every CheckThatPhone plan returns the full response and only the litigator scrub and landline SMS lookup cost extra.
Where Abstract is the better fit
- Numbers outside the US and Canada. Abstract lists 190+ countries; we cover two.
- Trying it without a card. Abstract's free plan needs no credit card; ours does.
- Identity and fraud signals such as the registered name, consumer or business type, risk level, disposable-number and breach data on its Professional plan.
- One vendor for several checks. Abstract also sells email, IP and other APIs alongside phone.
- Volumes such as 5,000 or 50,000 a month, where its Starter plan costs less.
Where CheckThatPhone fits better
- Calling or texting US and Canadian numbers. The current carrier, routing number and ported flag come from a live carrier dip. See the carrier lookup API.
- A send-or-not answer: one
actionfield with areason, plusdeactivationDatefor recent carrier deactivations. - Compliance screening: the TCPA litigator scrub (+1 credit) and the free state DNC and complainer checks.
- Text-enabled landlines: about 7% of landlines we check are SMS-capable, and the landline SMS lookup finds them.
- Large lists: CSV upload up to 1,000,000 rows, each unique number billed once.
- Volumes such as 10,000 or 100,000 a month, where our plans cost less, and anything above 150,000 without a custom contract.
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": "312-555-0188"}'
An illustrative response (a fictional 555 number; field names and formats match the live API).
The fields with no counterpart in Abstract's documented response are the porting fields
(dipLrn, dipPorted), dipOcn and action:
{
"success": true,
"credits_used": 1,
"data": {
"subscriber": "3125550188",
"optDate": "2026-10-03T16:04:11.210Z",
"action": "send",
"deliverable": "true",
"reason": "",
"nanpType": "mobile",
"blackList": "false",
"dip": "success",
"dipLrn": "3125550188",
"dipPorted": "false",
"dipOcn": "6010",
"dipCarrier": "AT&T",
"dipCarrierSubType": "WIRELESS",
"dipCarrierType": "mobile",
"geoState": "IL",
"geoCity": "chicago",
"geoCountry": "US",
"geoSource": "area-code",
"timezone": "America/Chicago",
"tzOffset": 6,
"error": "false"
}
} CheckThatPhone vs Abstract API: common questions
Is CheckThatPhone a good Abstract API alternative?
For US and Canadian numbers where porting status, deliverability and TCPA or DNC screening matter, yes. For numbers in other countries, or for registered-name and breach data, no: Abstract lists 190+ countries and returns those fields on its Professional plan, and CheckThatPhone covers only the US and Canada.
Is Abstract cheaper than CheckThatPhone?
At some volumes. Billed monthly, Abstract Starter is $19 for 5,000 requests and $99 for 50,000, which beats our price at those two points. At 10,000 and 100,000 a month CheckThatPhone comes out lower, and above 150,000 Abstract moves to custom Enterprise pricing. Abstract also has a free plan with no card; ours includes more lookups but needs a card on file, verified with a $0 check.
Does Abstract return ported numbers?
Abstract's documented response includes the carrier name, line type, MCC and MNC, and a line status, but no porting flag or routing number. CheckThatPhone returns dipPorted and dipLrn on every lookup.
Are invalid numbers charged?
At Abstract, yes: its docs say each submitted number counts as a credit, including an invalid one. At CheckThatPhone, a missing or malformed number returns HTTP 400 and isn't charged, and failed lookups (4xx/5xx or upstream errors) never consume credits.
What changes in the integration?
Abstract is a GET request with api_key and phone in the query string, returning nested objects such as phone_carrier and phone_validation. CheckThatPhone is a POST to https://api.checkthatphone.com/v1/lookup with a JSON body and a bearer API key, returning flat fields such as dipCarrier and action. Official SDKs: npm install checkthatphone and pip install checkthatphone.
Sources
Abstract pages, all checked on October 3, 2026:
- Abstract Phone Validation API product page and FAQ
- Abstract pricing page (Phone Validation plans, FAQ and sample responses)
- Abstract Phone Intelligence API documentation (response fields, bulk upload, billing)
CheckThatPhone figures come from our pricing page and API documentation.
Related
- All comparisons: CheckThatPhone compared
- Other options: vs Twilio Lookup and vs Numverify
- Eight vendors side by side: Phone validation API pricing in 2026