Skip to content

Spaw vs Loqate Phone Validation

Loqate Phone Validation checks a number's format, carrier and, for mobile numbers, its live network status through an HLR lookup, priced per lookup from the same pay-as-you-go credit balance as Loqate's address, email and bank validation.

The table uses Loqate Phone Validation's public pricing and documentation pages as checked on 2026-09-27, and Spaw's own pricing page. A row those pages carry no value for is marked "not on the pages read" rather than guessed at, and that is a statement about the reading and not about what Loqate Phone Validation publishes.

  spaw loqate phone validation
Pricing modelPay-as-you-go credit packs whose credits never expire, or optional plans, billed monthly or yearly, that deposit the same credits every month for less and roll unused plan credits over up to three months' allowance; both through Stripe CheckoutPay-as-you-go credit purchases of £50, £100, £250, £500 and £1,000 (or 75€, 150€ and 300€), each buying a published per-lookup rate for every service, plus bespoke plans; "Credit is valid for 12 months after the purchase date". Phone Validation on the "New Pricing" table is 7.1p, 6.7p, 5.6p, 4.7p and 4.1p a lookup across the pound tiers and 8.6c, 7.8c and 6.6c across the euro ones. The page also shows an "Old Pricing" table without saying which accounts each applies to; the figures here are from "New Pricing". Its usage-example selector also lists a £2,500 plan that neither table prices, and all prices exclude VAT.
Free tier100 free credits every month, no card requiredA trial rather than a standing tier: "Start your 45-day free trial"; the FAQ adds "You get free credits to test the service"
Price per 1,000 at about 10k$7.80 (Growth pack: 5,000 credits for $39), or $5.80 on the Growth monthly plan (5,000 credits for $29 a month)£47 per 1,000 (4.7p a lookup) on the £500 credit, which buys about 10,600 lookups; the smaller credits run from 7.1p (£50) to 5.6p (£250)
Price per 1,000 at about 100k$4.49 (Volume pack: 100,000 credits for $449), or $3.49 on the Volume monthly plan (100,000 credits for $349 a month)£41 per 1,000 (4.1p a lookup) on the £1,000 credit, the largest either rate table prices, which buys about 24,400 lookups; larger volumes are quoted bespoke ("For more credits or tailor-made plans get in touch")
Numbers the vendor could not settle billedA valid number costs 1 credit whatever its flags say. The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged.The validate method "will consume credit", with no exception stated in the API reference; IsValid answers Maybe where "full validation couldn't be performed", for example on cellular network issues
Invalid numbers billedNo: invalid numbers are free, including a number in a block the regulator lists as unassigned, and so are repeats within 7 daysnot on the pages read
Line type sourceThe numbering plan metadata everywhere except the North American plan, where mobiles and landlines share blocks and the plan can only say fixed_line_or_mobile; there the regulator's block holder settles it — a wireless carrier's block is mobile, a virtual-number wholesaler's is voip. line_type_source names which of the two answered.Loqate's "own custom libraries alongside the Home Location Register (HLR) database": the first step checks "length, format, digit count, country of origin, and whether it is a landline, mobile or VoIP number", the second the carrier and the third an HLR lookup. NumberType answers MOBILE, LANDLINE or VOIP, and the product detail page says "Full validation for Mobile numbers. Global formatting and carrier identification only for non-UK Landline and VoIP numbers."
Numbering plan coveragelibphonenumber metadata for every region it carries, plus the regulators' own allocation tables, each named in the answer with the date of the copy it read. Complete tables, where a geographic number in a block the table leaves out answers unassigned_block: NANPA for the United States (with Puerto Rico, the U.S. Virgin Islands, Guam, American Samoa and the Northern Mariana Islands), the CNAC for Canada, ARCEP for France (with Guadeloupe, St. Barthélemy, St. Martin, Martinique, French Guiana, Réunion, Mayotte and St. Pierre & Miquelon), ACM for the Netherlands and the CRT (formerly the IFT) for Mexico. Partial tables, answered only from the ranges they list (a range listed as free, spare or held in reserve answers unassigned_block), so block_status answers null for a number outside them: Ofcom for the United Kingdom (with Guernsey, Jersey and the Isle of Man), ACMA for Australia, the NAD for New Zealand, UKE for Poland and MIMIT for Italy. Re-synced weekly, NANPA daily; /status lists each table's age. Outside those regions, block_status and is_virtual answer null rather than a guess.The product page states "Coverage for 241 countries & territories"; its FAQ, the documentation and the API reference say 237. No numbering plan or regulator table is named.
Live network checkReserved behind hlr: true: 4 credits on top of the base credit, only where the network answers, reported in its own reachable, ported, current_carrier and roaming fields. The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged.Part of the standard three-step check, with no separate price on the pricing page: the third step is an HLR lookup "to verify active and connected numbers", for mobile numbers.
Ported numbersNone from the tables, and the docs say so: carrier and line_type describe the block the number was allocated in, never a later port. Only a live carrier-network check can say who serves a number today.Yes, from the HLR step: NetworkName is "the current operator serving the supplied number" ("We take the network that the phone number has been ported to and display that at the network name"), and optional fields return Ported, PortedNetworkName, Roaming and OriginalNetworkName.
SMS pumping controlsFlags in the risk score, and an SMS policy that turns them into ok_to_send and blocked_by: a fraud and deliverability decision, not consent and not a do-not-call scrub. allowed_countries limits sending to the regions you serve; it is empty (any country) until you set it. range_burst (+40) flags a number once your account has looked up 5 distinct numbers in its 1,000-number range within 60 minutes, and numbers_per_client (+30) once one client address (the client_ip you send, or a browser visitor's own) has tried 5 within 60 minutes, unless Spaw's own IP data places it on a mobile carrier or a corporate proxy, or it is private or reserved. Both count only your own single and browser lookups, so a new account has no history. The range is a heuristic, and in North America a burst more likely means someone testing numbers against a form; the client count does not stop an attack rotated through residential proxies. disposable (+70) flags a number SMS-receiving websites publish and disposable_stale (+40) an old listing; disposable_range (+30) flags an unlisted number in a 1,000-number range holding 10 or more fresh listings. The lists are public and synced daily. The default policy blocks the fictional, disposable, reported_abuse, reported_abuse_widely and premium_rate signals and a risk_score above 60, so neither traffic signal blocks on its own.not on the pages read
Bulk limit100,000 numbers per bulk job, with an HMAC-signed completion webhooknot on the pages read
Batch API1,000 numbers per synchronous request, answered in input orderNot documented for phone validation: the best-practices guide's "Batch Validation" example loops the single-number endpoint with a 100 ms pause between requests, and the product page lists "Real-time and bulk verification" without a limit.
Rate limit50 requests per second per key on the phone endpointsNo figure on the pages read: each key carries a daily limit on the credit it can consume, "a security setting to help protect your credit", and a key can be restricted by website address or IP
Official SDKsPython, Node.js, PHPnot on the pages read
Data retentionNo history row and no log line carrying the number. What a lookup leaves is keyed and never holds the number: the 7-day marker that makes a repeat free (a second one when the account paid for a live check); for single and browser lookups, a truncated keyed hash of the number filed under keyed hashes of its range and client address for 60 minutes, and the account's lookups per country and hour as counts for 30 days; and a live check's answer, held for a day under a hash of the number. The number itself is kept only in the account's own outcome reports, phone suppression list and monitors. Bulk input lists and result files are deleted with the job after 30 days.Numbers validated through the API are "Stored in infrastructure logs for 30 days for operational purposes", per the phone validation implementation guide

checked 2026-09-27 · sources: Loqate Phone Validation, Loqate Phone Validation product detail, Loqate pricing, Loqate Phone Validation documentation overview, Loqate Individual Phone Validation API reference, Loqate Phone Validation implementation guide, Loqate Phone Validation best practices, Loqate FAQ

When Loqate Phone Validation fits better

Teams already using Loqate for address capture that want a live network check on mobile numbers at the form, billed from the same credit balance.

  • Every lookup runs a three-step check whose last step is an HLR lookup on mobile numbers, returning the current operator after a port and optional roaming fields
  • IsValid answers Yes, No or Maybe; Maybe marks a lookup the network check could not complete
  • Phone, address, email and bank validation draw on the same credit balance, valid for 12 months
  • Also offered as a Tag snippet for web forms and in pre-built integrations such as Adobe Commerce, commercetools and Microsoft Dynamics 365

When Spaw fits better

Developers who want the numbering plan and the regulators' own allocation tables read for them, the dataset behind every field named in the answer, and an SMS policy that turns the evidence into ok_to_send and blocked_by — a fraud and deliverability decision, not consent and not a do-not-call scrub. Every answer is made on the server: the opt-in live carrier-network check, the one call that would send a number to a partner, is not enabled on the service.

  • Loqate's lookup includes an HLR check that reports the current operator after a port; Spaw's carrier and line_type describe the original allocation and never a later port. The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged.
  • Loqate describes its own libraries and an HLR lookup without naming a numbering dataset; Spaw's line_type_source says whether the numbering plan or the regulator's block table decided the line type, and the sources block names each dataset an answer consulted, with its version or sync date
  • Loqate's phone API takes one number per request, and its pages name bulk verification without a limit; Spaw takes 1,000 numbers per batch request and 100,000 per bulk job
  • Loqate charges per lookup from credit that lasts 12 months; Spaw's pack credits never expire, an invalid number costs nothing, and 100 free credits arrive every month

Questions

Does Spaw charge for numbers it cannot settle?

Spaw bills per answer. A number the numbering plan and, where one is installed, the regulator's own table agree is assignable costs 1 credit whatever its flags say. An invalid number is free — including one in a block the regulator lists as unassigned — and so is a repeat of the same number within seven days. The live carrier-network check (hlr: true) is not enabled on the service: hlr_checked answers false and nothing extra is charged. Loqate Phone Validation's pages say: The validate method "will consume credit", with no exception stated in the API reference; IsValid answers Maybe where "full validation couldn't be performed", for example on cellular network issues.

Can I move a list of numbers from Loqate Phone Validation to Spaw?

Yes. Upload the CSV in the dashboard or POST it to the bulk endpoint, up to 100,000 numbers a job; Spaw keeps your columns, adds the answer columns, and lets you download the whole file or only the valid, invalid, low, medium or high-risk rows. A country column gives each row its own region, so a mixed international list needs no splitting.

Is there a free tier?

Every Spaw account receives 100 free credits at the start of each month with no card on file, and unused free credits accumulate. Loqate Phone Validation offers: A trial rather than a standing tier: "Start your 45-day free trial"; the FAQ adds "You get free credits to test the service".

Try Spaw on your own list

Free credits every month, no card. Upload a list, keep your columns, and download only the rows you want. See the pricing page for every rule, or the Loqate Phone Validation alternatives.

Get your API key

Loqate Phone Validation is a trademark of its owner. Spaw is not affiliated with it. Markdown version: /compare/loqate-phone.md