Phone validation · Trueguard vs Numverify
Comparison
Numverify alternative: pricing vs Trueguard.
Trueguard publishes this page. Every Numverify figure comes from numverify.com's pricing page, FAQ and API docs and the APILayer marketplace page, read 6 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.
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 Numverify.
No voip value in Numverify's line types.
Ported US numbers show the carrier they moved to.
Receive-SMS history on every check.
10,000 checks: $49.99 against $59.99.
Numverify vs Trueguard, field by field.
Numverify returns format, country, location, carrier and line type. These are the fields that differ.
Line and carrier | Trueguard | Numverify |
|---|---|---|
| VoIP | line.type "voip" plus line.voipType: fixed, nonFixed, unknown | No voip value in the documented line_type list (read 6 Nov 2026) |
| Line type values | 15 values, including voip, tollFree, premiumRate, m2m, shortCode | 7 values: mobile, landline, special_services, toll_free, premium_rate, satellite, paging |
| Porting, original vs current carrier | isPorted, originalCarrier, currentCarrier for US numbers US and US territories | Not listed in docs (read 6 Nov 2026) Docs describe carrier as the one the number is registered with |
| Carrier type | line.carrierType: mno, mvno, cpaasVirtual, fixedIsp, m2m, satellite, unknown | Not listed in docs (read 6 Nov 2026) |
| SMS capable | line.smsCapable false for landline and fixed VoIP | Not listed as a field (read 6 Nov 2026) |
| MCC and MNC | line.mcc, line.mnc | Not listed in docs (read 6 Nov 2026) |
| Time zone | location.timezones | Not listed in docs (read 6 Nov 2026) |
Risk signals | Trueguard | Numverify |
|---|---|---|
| Disposable now | risk.isDisposable: listed on a public receive-SMS site in the last 30 days | Not listed in docs (read 6 Nov 2026) |
| Disposable before | risk.previouslyDisposable: listed 31 to 180 days ago | Not listed in docs (read 6 Nov 2026) |
| Number block risk | risk.rangeRisk: receive-SMS listings in the same number block, last 90 days | Not listed in docs (read 6 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 |
| Risk status | risk.status: safe, risky, invalid, unknown | Not listed in docs (read 6 Nov 2026) |
| STIR/SHAKEN | carrierStirShaken, US numbers | Not listed in docs (read 6 Nov 2026) |
| Block age | blockAgeDays, US and Canada | Not listed in docs (read 6 Nov 2026) |
Source: Numverify's API docs and pricing page, read 6 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 keyNo credit card required.
What Trueguard returns for +1 415 992 9960.
The full response for one check. These five fields are not listed in Numverify's docs, and each one catches something specific.
- 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
}
}Numverify pricing, plan by plan.
Every Numverify plan returns the same fields. Higher plans include more requests and a lower overage rate.
| Plan | Monthly | Requests included | Overage per request | Terms listed |
|---|---|---|---|---|
| Free | $0 | 100 | None listed | Non-Commercial Use, support: No |
| Basic | $14.99 | 5,000 | $0.011992 | Commercial, yearly $161.99 (10% off) |
| Professional | $59.99 | 50,000 | $0.0047992 | Commercial, yearly $629.99 (12.5% off) |
| Enterprise | $129.99 | 250,000 | $0.00207984 | Commercial, yearly $1,325.99 (15% off) |
| Custom | Contact | Unlimited, per the pricing page | Not listed | Dedicated support |
Trueguard: every field on every plan, including the free 100 checks.
The APILayer marketplace sells the same plans under the names Starter and Pro.
Numverify bills overage after the period ends and sends alerts at 75%, 90% and 100% of the quota.
Prices read 6 November 2026.
What 10,000, 20,000, 100,000 and 1,000,000 phone checks cost.
| Checks a month | Numverify | Trueguard |
|---|---|---|
| 10,000 | $59.99 (Professional, 50,000 included) | $49.99 |
| 20,000 | $59.99 (Professional) | $49.99 |
| 100,000 | $129.99 (Enterprise, 250,000 included) | $249.99 |
| 1,000,000 | $1,689.87 (Enterprise plus 750,000 at $0.00207984) | $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.
Numverify: the cheapest plan for each volume, overage included, billed monthly.
Yearly billing makes Numverify Professional $52.50 and Enterprise $110.50 a month.
Both count every request.
Numverify's free plan next to Trueguard's.
Free plan | Trueguard | Numverify |
|---|---|---|
| Requests a month | 100, every field, no card | 100 |
| Card | No card | Not stated on numverify.com. APILayer marketplace: No Credit Card Required |
| HTTPS | https://api.trueguard.io on every plan | 256-bit HTTPS listed on the Free plan card Older FAQ lines say paid customers. Read 6 Nov 2026 |
| Fields | Every field, including risk | Same fields as paid plans |
Numverify's pricing page lists 256-bit HTTPS on the Free plan, and its FAQ says HTTPS works on every plan. Other FAQ lines say HTTPS is for paid customers, and the docs examples use http://. Read 6 November 2026.
Where Numverify comes out ahead.
Lower list price above 24,000 checks.
Yearly billing up to 15% lower.
A countries endpoint.
Switching from Numverify to Trueguard.
Numverify, Node.js
const res = await fetch(
`http://apilayer.net/api/validate?access_key=${process.env.NUMVERIFY_ACCESS_KEY}&number=14159929960`
);
const data = await res.json();
console.log(data.valid, data.line_type, data.carrier);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());Request | Trueguard | Numverify |
|---|---|---|
| Call | POST https://api.trueguard.io/v2/phone/validation | GET apilayer.net/api/validate |
| Auth | X-API-KEY header | access_key query parameter |
| Number | phone Send with the + and country code, for example +14159929960 | number |
| Country | country | country_code |
Response | Trueguard | Numverify |
|---|---|---|
| Valid | validity.isValid validity.reason says why when false | valid |
| Number | phone E.164 with the + | number |
| National format | format.national Punctuated, for example (415) 992-9960 | local_format |
| International format | format.e164 format.international is spaced | international_format |
| Calling code | location.callingCode 1, no + | country_prefix ("+1") |
| Country code | location.countryCode | country_code |
| Country name | location.countryName Names can differ. Match on the code. | country_name |
| Location | location.city, location.region | location |
| Carrier | line.currentCarrier (US) or line.originalCarrier | carrier |
| Line type | line.type toll_free to tollFree, premium_rate to premiumRate, paging to pager. special_services has no one-to-one value | line_type |
| Errors | Invalid numbers return 200 with phone null and validity.reason Auth errors use the HTTP status with { statusCode, message } | success false with error.code |
On the APILayer marketplace endpoint, send the same fields with the apikey header to api.apilayer.com/number_verification/validate.
Why teams pick Trueguard.
Choose Trueguard
VoIP type, carrier type and US porting in the same response.
Receive-SMS history, number block risk and SMS destination risk on every plan, including the free 100 checks.
$49.99 for 20,000 checks a month, overage at $0.0025 a check.
One API key for email and phone validation.
The three Trueguard plans.
No credit multipliers, and overage at the same rate as the plan.
Frequently asked questions
Something out of date? Tell us and we will correct it.
What is a good Numverify alternative?
Trueguard. It returns validity, line type with voip split into fixed and nonFixed, carrier and carrier type, porting and current carrier for US numbers, receive-SMS history and SMS destination risk on every plan, including the free 100 checks a month. The paid plan is $49.99 a month for 20,000 checks. Numverify's docs list valid, formats, country, location, carrier and line type, and its Professional plan is $59.99 a month for 50,000 requests (read 6 November 2026).
How much does Numverify cost?
Free is 100 requests a month. Basic is $14.99 for 5,000, Professional $59.99 for 50,000 and Enterprise $129.99 for 250,000. Overage is $0.011992, $0.0047992 and $0.00207984 a request. Yearly billing is 10% to 15% lower, and Custom is on request. Prices read 6 November 2026.
Is Numverify free?
The Free plan gives 100 requests a month with the same fields as the paid plans. Its card lists Non-Commercial Use and no support (read 6 November 2026). Trueguard's free plan is 100 checks a month with every field, including the risk fields.
Can I use the Numverify free plan commercially?
Numverify's Free plan card says Non-Commercial Use. Basic, Professional and Enterprise are listed for commercial use (read 6 November 2026).
Does the Numverify free plan support HTTPS?
Numverify's pricing page lists 256-bit HTTPS on the Free plan, and its FAQ says HTTPS works regardless of plan. Older FAQ lines say HTTPS is offered to paid customers, and the docs examples use http://apilayer.net (read 6 November 2026). Test it with your own key. Trueguard's endpoint is https://api.trueguard.io on every plan.
Does Numverify detect VoIP numbers?
The line_type values in Numverify's docs are mobile, landline, special_services, toll_free, premium_rate, satellite and paging, with no voip value (read 6 November 2026). Trueguard returns voip as a line type and line.voipType: fixed for VoIP tied to an address and nonFixed for app and online numbers.
Does Numverify show if a number was ported?
Numverify's docs list no porting field and describe carrier as the carrier the number is registered with (read 6 November 2026). For US numbers, Trueguard returns line.isPorted, line.originalCarrier and line.currentCarrier.
Is Numverify the same as APILayer Number Verification?
Numverify is built by APILayer. The APILayer marketplace sells the same prices and quotas under the names Starter and Pro, at api.apilayer.com/number_verification/validate with an apikey header. numverify.com uses apilayer.net/api/validate with an access_key query parameter.
How do I switch from Numverify to Trueguard?
Replace the GET to apilayer.net with a POST to https://api.trueguard.io/v2/phone/validation, with your key in the X-API-KEY header. Map valid to validity.isValid, line_type to line.type, carrier to line.currentCarrier or line.originalCarrier, and international_format to format.e164. 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 keyNo credit card required.

