Spaw vs Twilio Lookup
Twilio Lookup is a phone number API sold as separately priced data packages on top of a Twilio account: validating and reformatting a number is free, and line type, caller identity, line status and risk each cost their own per-request fee.
The table uses Twilio Lookup's public pricing and documentation pages as checked on 2026-09-10, 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 Twilio Lookup publishes.
| spaw | twilio lookup | |
|---|---|---|
| Pricing model | Pay-as-you-go credit packs, or optional monthly plans that deposit the same credits every month for less; both through Stripe Checkout, credits from either never expire | Per request, priced per data package on a Twilio account; the line status and reassigned number packages are tiered by monthly query volume |
| Free tier | 10 free credits every month, no card required | Validation and reformatting are listed as Free; no free allowance is published for the paid packages |
| 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) | $8.00 per 1,000 for line type intelligence ($0.008 per request), $10.00 for inbound caller identification ($0.01), $100.00 for identity match ($0.1, which the page says varies by country) |
| Price per 1,000 at about 100k | $4.99 (Volume pack: 100,000 credits for $499), or $3.99 on the Volume monthly plan (100,000 credits for $399 a month) | The same rates: line type intelligence carries no published volume tier. Line status is tiered from $0.007 per query (0 to 100k) down to $0.00385 (over 10M), and reassigned number risk from $0.02 (0 to 1,000) down to $0.0015 (6M+). |
| Numbers the vendor could not settle billed | A valid number costs 1 credit whatever its flags say; the optional live carrier-network check adds 3 credits only where the network actually answers | not on the pages read |
| Invalid numbers billed | No: invalid numbers are free, including a number in a block the regulator lists as unassigned, and so are repeats within 7 days | not on the pages read |
| Line type source | The 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. | Not stated. The line type intelligence documentation lists twelve types (landline, mobile, fixedVoip, nonFixedVoip, personal, tollFree, premium, sharedCost, uan, voicemail, pager, unknown) and returns carrier_name with mobile_country_code and mobile_network_code, but does not say which data settles them. |
| Numbering plan coverage | libphonenumber metadata for every region it carries, plus weekly regulator allocation tables for the United States, Canada, the United Kingdom and the Crown dependencies, France, Australia, the Netherlands, New Zealand and Mexico. Outside those, block_status and is_virtual answer null rather than a guess. | "Line Type Intelligence is available for phone numbers worldwide"; Canadian numbers need separate approval and answer error 60601 without it. Carrier data is documented as unavailable for the personal, tollFree, premium, sharedCost, uan, voicemail, pager and unknown types. |
| Live network check | Optional with hlr: true, 3 credits and only where the network answers, reported in its own reachable, ported, current_carrier and roaming fields. No carrier-network partner is configured today, so it answers hlr_checked: false. | Sold as its own package: line status, tiered from $0.007 per query. SIM swap and call forwarding are listed as contact sales rather than priced. |
| Ported numbers | None 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 the live network check can say who serves a number today. | not on the pages read |
| Bulk limit | 100,000 numbers per bulk job, with an HMAC-signed completion webhook | not on the pages read |
| Batch API | 1,000 numbers per synchronous request, answered in input order | not on the pages read |
| Rate limit | 50 requests per second per key on the phone endpoints | not on the pages read |
| Official SDKs | Python, Node.js, PHP | C# / .NET, Java, Node.js, PHP, Python, Ruby, Go |
| Data retention | Nothing: no history row and no log line carrying the number, only a hashed 7-day marker that makes a repeat free. Bulk input lists and result files are deleted with the job after 30 days. | not on the pages read |
checked 2026-09-10 · sources: Twilio Lookup pricing, Twilio Lookup line type intelligence docs, Twilio helper libraries
When Twilio Lookup fits better
Teams already sending messages through Twilio that want line type, caller identity and SMS-pumping risk billed on the same account as their traffic.
- Validation and reformatting are free; every other signal is a package with its own per-request price
- Line type intelligence returns carrier_name, mobile_country_code and mobile_network_code alongside twelve line types
- SMS pumping risk score is $0.025 per request outside North America and free within it
- Seven official server-side helper libraries
When Spaw fits better
Developers who want the numbering plan and the regulators' own allocation tables read for them, with the dataset behind every field named in the answer and the number never leaving the server.
- Twilio prices each signal as its own package; Spaw answers line type, carrier, block status and the fictional, virtual and disposable flags in one 1-credit lookup
- Twilio does not publish where its line type data comes from; Spaw names the numbering plan or the regulator's block table in line_type_source on every answer, and says which of the two decided
- Twilio publishes no bulk or batch limit for Lookup; Spaw takes 1,000 numbers per batch request and 100,000 per bulk job
- Twilio ships seven server-side libraries to Spaw's three plus an MCP server
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 adds 3 credits only where the network actually answers, and no carrier-network partner is configured today, so it answers hlr_checked: false at no extra cost. Twilio Lookup does not publish how it bills them.
Can I move a list of numbers from Twilio Lookup 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 10 free credits at the start of each month with no card on file, and unused credits accumulate. Twilio Lookup offers: Validation and reformatting are listed as Free; no free allowance is published for the paid packages.
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 Twilio Lookup alternatives.
Twilio Lookup is a trademark of its owner. Spaw is not affiliated with it. Markdown version: /compare/twilio-lookup.md