Skip to content

Spaw vs ClearoutPhone

ClearoutPhone is a phone validation service from Clearout sold as credits that never expire, with a 1-credit Standard mode and a Smart mode that runs a real-time telecom query, at up to 5 credits, where static data is uncertain.

The table uses ClearoutPhone'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 ClearoutPhone publishes.

  spaw clearoutphone
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 CheckoutCredits that never expire, bought one time or through monthly or annual subscriptions that add them each period and carry them forward. One Time, each shown as a starting price: 5,000 credits from $35, 10,000 from $58, 100,000 from $400 and 1,000,000 from $1,200. Standard validation is 1 credit; Smart validation is 1 credit for most numbers and up to 5 when it runs a deeper real-time check
Free tier100 free credits every month, no card required100 free credits on sign-up, one validation each
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)$5.80 per 1,000 one time (10,000 credits for $58), $5.20 on the monthly plan (10,000 credits for $52 a month) or $3.20 on the annual plan as its tab rendered ("Buy 120,000 credits for $384 billed yearly", 10,000 a month), although the page labels annual billing "Save 20%" against one-time prices; a Smart validation that runs the deeper check costs up to 5 credits
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)$4.00 per 1,000 one time (100,000 credits for $400) or $3.60 on the monthly plan ($360 a month). The annual tab rendered on 2026-09-27 showed "Buy 1,200,000 credits for $1,152 billed yearly" (100,000 a month, $0.96 per 1,000), while the same page labels annual billing "Save 20%" against one-time prices, its monthly tab says "Get 20% discount for the price when you pay annually" and its FAQ says "Discounts upto 40%"
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.No credits are charged for numbers with "unknown" status or for duplicates in a list. Smart validation charges up to 5 credits only where it runs the deeper check, and within its caching window "repeated validations of the same number won't trigger additional deep validation charges"
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 stated separately: the pages say "1 credit charged per phone number validation" and name unknown and duplicate numbers as the ones not charged
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.Validation "is carried out using multiple methods which include validation from International Telecom Authority, Multiple Carrier lines, and third party validation". Standard validation "Uses basic validation based on original number data"; Smart validation adds real-time telecom queries for ported 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."248 countries and territories" in the API documentation ("248+" elsewhere); 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.The API documentation says the API "queries live telecom network infrastructure to determine the live, active connection status of a number", and Smart validation runs "a deep, real-time telecom query to verify carrier, linetype, and live reachability" at up to 5 credits. The FAQ says it is "impossible to determine whether they are active or not until a message is sent or a call is made".
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.The FAQ says line types follow "their original carrier allocation" and a ported number "may continue to show the original type"; Smart validation "Detects recently ported lines and VoIP numbers that standard checks misclassify", at up to 5 credits.
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 webhookCSV or XLSX upload through the app or POST /v1/phonenumber/bulk, with up to 3 lists queued or running at a time per user; no row limit is given on the pages read
Batch API1,000 numbers per synchronous request, answered in input ordernot on the pages read
Rate limit50 requests per second per key on the phone endpoints"No explicit rate limit" and "virtually unlimited requests" under a fair usage policy, with x-ratelimit-* headers reporting the quota in each 60-second window; the error list includes a 429 "You have reached API rate limit" and a daily verify limit (code 1017)
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.Lists are kept 30 days by default, with custom periods on request, and the FAQ says "the data is deleted after 30days from validation"

checked 2026-09-27 · sources: ClearoutPhone pricing, ClearoutPhone home page and FAQ, ClearoutPhone API documentation, ClearoutPhone FAQs, ClearoutPhone supported countries, ClearoutPhone article on OTP delivery failures

When ClearoutPhone fits better

Sales and marketing teams cleaning CSV or XLSX contact lists before calling or texting, with a real-time check they can switch on for numbers static data cannot settle.

  • Smart validation costs 1 credit for most numbers and up to 5 where it runs a real-time telecom query, and a caching window keeps a repeat from being charged the deeper check again
  • Credits bought on any plan never expire and carry forward
  • The numbers on its supported-countries page validate without spending credits, for testing
  • The API is server-side only: requests straight from a browser are not supported
  • An OTP article on its blog (30 June 2026) calls Smart validation "the recommended mode for OTP use cases and fraud prevention" and advises skipping the send when a number returns as landline, VoIP or invalid

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.

  • ClearoutPhone's Smart validation spends up to 5 credits on a real-time telecom query for uncertain numbers; Spaw answers from local tables for 1 credit, and its carrier and line_type describe the original allocation, never a later port
  • ClearoutPhone charges a credit per validation, with unknown and duplicate numbers free; Spaw charges only for a valid number, so an invalid one is free, including one in a block the regulator lists as unassigned, and so are a repeated row in a bulk list and a repeat within 7 days
  • ClearoutPhone's documented response carries status, line type, carrier, location and formats, with no risk or disposable field (an article on its blog says Smart validation "Identifies VoIP, mobile, landline, or disposable numbers"); Spaw returns 49 fields, including is_disposable with, where the list gives one, the date the number was last seen on an SMS-receiving list, a risk score with the signals behind it, and ok_to_send from your SMS policy, a fraud and deliverability decision rather than consent or a do-not-call scrub
  • ClearoutPhone takes lists as CSV or XLSX files, at most 3 queued or running per user; Spaw answers up to 1,000 numbers in one synchronous request and takes 100,000 per bulk job with a signed webhook

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. ClearoutPhone's pages say: No credits are charged for numbers with "unknown" status or for duplicates in a list. Smart validation charges up to 5 credits only where it runs the deeper check, and within its caching window "repeated validations of the same number won't trigger additional deep validation charges".

Can I move a list of numbers from ClearoutPhone 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. ClearoutPhone offers: 100 free credits on sign-up, one validation each.

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 ClearoutPhone alternatives.

Get your API key

ClearoutPhone is a trademark of its owner. Spaw is not affiliated with it. Markdown version: /compare/clearoutphone.md