Phone validation · Trueguard vs Abstract API

Comparison

Abstract API phone validation alternative: pricing vs Trueguard.

Trueguard is an Abstract API alternative for phone validation that returns disposable history, fixed or non-fixed VoIP and SMS destination risk on every plan, for $49.99 a month for 20,000 checks. Abstract lists its risk fields on the Professional plan, at $69 a month for 10,000 requests.

Trueguard publishes this page. Every Abstract figure comes from Abstract's pricing page and API docs, read 5 November 2026. "Not listed" means we did not find it there, not that it does not exist.

20,000 checks

$49.99/mo

$0.0025 per extra check. 100 checks a month free, no credit card.

Trueguard, 20,000 checks$49.99
Abstract Professional, 10,000$69
Abstract Professional, 150,000$499
Start on the free tier

No credit card required.

Check a number with Trueguard.

No key needed. 5 free checks a day, and the result has the same fields the API returns.

Or try

Why teams switch from Abstract API for phone validation.

Risk fields sit on the top plan.

Abstract's pricing page lists disposable detection and the risk level on Professional only, where $19 buys 2,000 requests instead of 5,000 on Starter. Trueguard returns them on every plan, including the free 100 checks.

100,000 checks: $499 against $249.99.

Abstract has no 100,000 Professional tier, so the next one up is 150,000 at $499 a month. Trueguard is $49.99 for 20,000, then $0.0025 a check.

Above 150,000 a month, the price is custom.

Professional stops at 150,000 a month on self-serve, and Abstract lists Enterprise with custom pricing above that. Trueguard publishes its overage rate.

One VoIP flag for two kinds of number.

Abstract's docs list one is_voip flag. An office desk line on VoIP and an app number that one person can buy many of in a few minutes are both VoIP. Trueguard's voipType splits them into fixed and nonFixed.

Abstract API vs Trueguard for phone validation, field by field.

The response shapes are close. These are the fields that differ.

Line and carrier

TrueguardAbstract API
VoIP type

line.voipType: fixed, nonFixed, unknown

is_voip true or false

A fixed vs non-fixed split is not listed in docs (read 5 Nov 2026)

Carrier type

line.carrierType: mno, mvno, cpaasVirtual, fixedIsp, m2m, satellite, unknown

Not listed in docs (read 5 Nov 2026)

Porting, original vs current carrier

isPorted, originalCarrier, currentCarrier for US numbers

US and US territories

Not listed in docs (read 5 Nov 2026)

SMS capable

line.smsCapable

false for fixed VoIP and landline

Not listed as a field (read 5 Nov 2026)

Risk signals

TrueguardAbstract API
Plan that returns the risk fields

Every plan, including the free 100 checks

Professional, per the pricing page

Disposable now

risk.isDisposable: listed on a public receive-SMS site in the last 30 days

is_disposable

Professional plan per the pricing page

Disposable before

risk.previouslyDisposable: listed 31 to 180 days ago

Not listed in docs (read 5 Nov 2026)

SMS destination risk

risk.smsDestinationRisk: low, elevated, high per country, null for unrated countries

No dedicated field listed

The response returns the country

Number block risk

risk.rangeRisk: receive-SMS listings in the same number block, last 90 days

Not listed in docs (read 5 Nov 2026)

STIR/SHAKEN

carrierStirShaken, US numbers

Not listed in docs (read 5 Nov 2026)

Complaints

complaints90d: complaints in the last 90 days, +1 numbers

Not listed in docs (read 5 Nov 2026)

Source: Abstract's Phone Intelligence docs and pricing page, read 5 November 2026.

Get a free API key and test these fields.

100 checks a month, no card. Every Trueguard field in the table comes back on the free key.

Get your free API key

No credit card required.

What Trueguard returns for +1 415 992 9960.

The full response for one check. These five fields are the ones Abstract's docs do not list, and what each one catches.

line.voipType
Tells an office VoIP line (fixed) from an app or online number (nonFixed). nonFixed numbers can receive SMS, so they can receive your OTP codes. This number is nonFixed.
line.carrierType
Shows if the number comes from a mobile operator or from a virtual number provider. This number is cpaasVirtual.
line.isPorted
For US numbers, shows the carrier the number moved to. This number was issued by Lumen and moved to Twilio, so the original carrier alone does not show the virtual provider.
risk.previouslyDisposable
Flags a number that was listed on a public receive-SMS site 31 to 180 days ago, where anyone could read its codes. isDisposable covers the last 30 days. Trueguard monitors those sites itself.
risk.smsDestinationRisk
Rates the destination country for SMS pumping, so you can block or step up before you pay for the SMS. A Nigerian number returns high. This US number returns null because the US is not rated.
{ "phone": "+14159929960", "rawPhone": "+14159929960", "validity": { "isValid": true, "isPossible": true, "reason": null }, "format": { "e164": "+14159929960", "international": "+1 415 992 9960", "national": "(415) 992-9960" }, "location": { "countryCode": "US", "countryName": "United States", "callingCode": "1", "region": "CA", "city": "San Francisco", "timezones": [ "America/Los_Angeles" ] }, "line": { "type": "voip", "voipType": "nonFixed", "smsCapable": true, "originalCarrier": "Lumen", "currentCarrier": "Twilio", "isPorted": true, "carrierType": "cpaasVirtual", "mcc": null, "mnc": null }, "risk": { "status": "safe", "isDisposable": false, "previouslyDisposable": false, "smsDestinationRisk": null, "rangeRisk": "low", "carrierStirShaken": null, "blockAgeDays": 7756, "complaints90d": null } }

Which Abstract plan returns which phone fields.

Every Abstract phone plan starts at $19 a month. Higher plans add fields and give fewer requests for that $19: 5,000 on Starter, 3,000 on Standard, 2,000 on Professional.

PlanFields listedRequests for $19Largest monthly tierRequests per second
FreeValidation, location, carrier, messaging, registration, risk100 a month, $01003
StarterValidation, location, carrier5,000500,000 for $4993 to 100
StandardStarter fields + messaging3,000250,000 for $4993 to 100
ProfessionalStandard fields + registration, risk2,000150,000 for $4993 to 100
EnterpriseAll, customCustomCustomFlexible

Trueguard: every field on every plan, including the free 100 checks.

Starter lists validation, location and carrier, without risk or disposable fields.

Professional ladder, billed monthly: $19 for 2,000, $39 for 5,000, $69 for 10,000, $99 for 25,000, $199 for 50,000 and $499 for 150,000. Annual billing is $17, $36, $63, $91, $182 and $457 a month on a yearly request pool.

Abstract's pricing page says: "Starter returns the core validation fields, Standard adds enrichment, and Professional adds the risk and reputation signals used for fraud scoring." Read 5 November 2026.

What 10,000, 100,000 and 1,000,000 phone checks cost.

Checks a monthAbstract ProfessionalTrueguard
10,000$69 (10,000 tier)$49.99
100,000$499 (150,000 tier, no 100,000 tier)$249.99
1,000,000No self-serve plan, Enterprise custom$2,499.99 at list overage (Custom plan from 500,000)

Trueguard: $49.99 includes 20,000. 100,000 = $49.99 + 80,000 x $0.0025 = $249.99. 1,000,000 = $49.99 + 980,000 x $0.0025 = $2,499.99.

Abstract: the smallest Professional tier that covers the volume, billed monthly. Annual billing is $63 a month at 10,000 and $457 at 100,000 (the 1,800,000 a year tier). Abstract's pricing page lists no overage price.

Both count invalid inputs: Trueguard counts a check, and Abstract's docs count a credit per request.

Email and phone validation on one Trueguard key.

One account and one API key call both endpoints, each on its own $49.99 plan: 50,000 email validations or 20,000 phone checks. Abstract prices and bills each API on its own, and its docs say each API needs its own key.

Checks a monthAbstract Professional, email + phoneTrueguard, email + phone
10,000 each$69 + $69 = $138 (email 15,000 tier, phone 10,000 tier)$49.99 + $49.99 = $99.98
100,000 each$499 + $499 = $998 (both 150,000 tiers)$99.99 + $249.99 = $349.98

Comparing email instead? Abstract API vs Trueguard for email validation

What Abstract API returns that Trueguard does not.

Registered name and type

phone_registration returns the registered name and type, such as consumer or business. Abstract lists it on the Professional plan (read 5 Nov 2026).

Email-to-SMS gateway

phone_messaging returns sms_domain and sms_email for the number's carrier. Abstract lists it on the Standard plan and up (read 5 Nov 2026).

Bulk CSV upload

Abstract's docs describe a CSV upload of up to 50,000 rows a file, listed on its paid plans (read 5 Nov 2026).

Switching from Abstract Phone Intelligence to Trueguard.

Abstract, Node.js

const res = await fetch( `https://phoneintelligence.abstractapi.com/v1/?api_key=${process.env.ABSTRACT_API_KEY}&phone=14159929960` ); const data = await res.json(); console.log(data.phone_carrier.line_type, data.phone_risk.is_disposable);

Trueguard, Node.js

const res = await fetch("https://api.trueguard.io/v2/phone/validation", { method: "POST", headers: { "X-API-KEY": process.env.TRUEGUARD_KEY, "Content-Type": "application/json" }, body: JSON.stringify({ phone: "+14159929960" }) }); console.log(await res.json());

Trueguard field for each Abstract Phone Intelligence field

TrueguardAbstract API
Number

phone

E.164 with the +. Abstract omits the +.

phone_number

International format

format.e164

format.international is spaced, for example "+1 415 992 9960"

phone_format.international

National format

format.national

phone_format.national

Valid

validity.isValid

validity.reason says why when false

phone_validation.is_valid

VoIP

line.type === "voip", plus line.voipType

phone_validation.is_voip

Line type

line.type

toll_free becomes tollFree

phone_carrier.line_type

Carrier name

line.currentCarrier (US) or line.originalCarrier

phone_carrier.name

MCC and MNC

line.mcc, line.mnc

Strings, mobile numbers only

phone_carrier.mcc, phone_carrier.mnc

Country

location.countryCode, location.countryName

phone_location.country_code, phone_location.country_name

Calling code

location.callingCode ("1")

phone_location.country_prefix ("+1")

Region

location.region ("CA")

phone_location.region ("California")

City

location.city

phone_location.city

Time zone

location.timezones[0]

phone_location.timezone

Disposable

risk.isDisposable

phone_risk.is_disposable

Risk level

risk.status

A different scale, not 1:1

phone_risk.risk_level

Abuse flag

No direct equivalent

phone_risk.is_abuse_detected

Line status

No Trueguard field

phone_validation.line_status

Minimum age

No direct equivalent

risk.blockAgeDays is the age of the number block

phone_validation.minimum_age

Email-to-SMS gateway

No Trueguard field

line.smsCapable says whether the line takes SMS

phone_messaging.sms_domain, phone_messaging.sms_email

Registration

No Trueguard field

phone_registration.name, phone_registration.type

Breaches

No Trueguard field

phone_breaches.*

On the older phonevalidation.abstractapi.com endpoint, valid, type and carrier map to validity.isValid, line.type and line.originalCarrier.

Why teams pick Trueguard.

Choose Trueguard

Disposable and risk fields on every plan, including the free 100 checks.

$249.99 for 100,000 phone checks a month, overage at $0.0025 a check.

Fixed or non-fixed VoIP and carrier type in the same response.

One API key for email and phone validation.

The three Trueguard plans.

No credit multipliers, and overage at the same rate as the plan.

Free

$0 forever

100 checks / month

Overage: n/a

Get started free

Standard

Popular

$49.99 / month

20,000 checks / month

Overage: $0.0025 per check

Get your API key

Custom

Contact us

500,000+ checks / month

Overage: Negotiated

Talk to us

Frequently asked questions

Something out of date? Tell us and we will correct it.

What is a good Abstract API alternative for phone validation?

Trueguard. It returns validity, line type, fixed or non-fixed VoIP, carrier and carrier type, porting for US numbers, disposable history and SMS destination risk on every plan, for $49.99 a month for 20,000 checks. Abstract's Professional plan, the one its pricing page lists with phone risk, is $69 a month for 10,000 requests and $499 for 150,000, as read on 5 November 2026.

How much does Abstract API phone validation cost?

Abstract's phone plans start at $19 a month billed monthly, for 5,000 requests on Starter, 3,000 on Standard or 2,000 on Professional. Professional is $39 for 5,000, $69 for 10,000, $99 for 25,000, $199 for 50,000 and $499 for 150,000, and annual billing is about 10% lower. The free plan is 100 requests a month. Prices read on 5 November 2026.

Which Abstract plan includes phone risk and disposable detection?

Professional. Abstract's pricing page lists validation, location and carrier on Starter, adds messaging on Standard and adds registration and risk on Professional. On Trueguard, the disposable and risk fields come on every plan, including the free 100 checks a month.

Does Abstract API detect VoIP numbers?

Yes. Abstract's Phone Intelligence docs list an `is_voip` flag and a `voip` line type, and a fixed vs non-fixed split is not listed (read 5 November 2026). Trueguard returns `line.voipType`: `fixed` for VoIP tied to an address and `nonFixed` for app and online numbers, and `line.smsCapable` is false for fixed VoIP.

What do 100,000 phone checks a month cost on Abstract and on Trueguard?

$249.99 on Trueguard: $49.99 for the first 20,000 plus 80,000 at $0.0025. Abstract has no 100,000 Professional tier, so the smallest plan that covers it is the 150,000 tier at $499 a month. Prices read 5 November 2026.

Can I validate 1 million phone numbers a month on Abstract?

Not on a self-serve plan. The largest monthly phone volumes on Abstract's pricing page are 500,000 on Starter, 250,000 on Standard and 150,000 on Professional, and above that Abstract lists Enterprise with custom pricing. On Trueguard, 1,000,000 checks cost $2,499.99 at the list overage rate, and the Custom plan starts at 500,000.

How do I switch from Abstract API to Trueguard?

Replace the GET to phoneintelligence.abstractapi.com with a POST to `https://api.trueguard.io/v2/phone/validation` and map the fields: `phone_validation.is_valid` to `validity.isValid`, `phone_carrier.line_type` to `line.type`, `phone_carrier.name` to `line.currentCarrier` or `line.originalCarrier`, and `phone_risk.is_disposable` to `risk.isDisposable`. Send the number with its country code, for example +14159929960.

Run your own numbers through Trueguard.

100 checks a month free, no card. Every Trueguard field on this page comes back on the free key.

Get your free API key

No credit card required.

trueguard-logo© 2026 Trueguardinfo@trueguard.io