Spaw vs Abstract API
Abstract API's email validation endpoint is one of a family of utility APIs sold as monthly request quotas with a free 100-request plan.
The table uses Abstract API's public pricing and documentation pages as checked on 2026-09-13, 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 Abstract API publishes.
| spaw | abstract api | |
|---|---|---|
| Pricing model | Pay-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 Checkout | Monthly subscription tiers with a request slider from 5,000 to 150,000 requests a month; Starter from $17, Standard from $37, Professional from $39 a month |
| Free tier | 100 free credits every month, no card required | 100 requests on the Free plan |
| 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) | not on the pages read |
| 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) | not on the pages read |
| Unknown or catch-all results billed | No: an unconfirmed mailbox (reason unverified) and an answer Spaw could not obtain because its handshake partner was unavailable are free and leave no 7-day repeat marker, so a later lookup is a fresh one; a catch-all answer costs 1 credit like any risky answer, and an automatic re-check bills 1 credit only when it confirms the mailbox | Yes |
| Undeliverable results billed | No, within a fair use: undeliverable answers that needed a mailbox probe are free up to max(500, your billed email answers) in a rolling 30 days, then 1 credit each; the rest are always free | Yes |
| SMTP mailbox check | Yes | Yes |
| Catch-all handling | A catch-all answer is remembered per domain for 7 days, and every unconfirmed mailbox carries a published 0 to 100 mailbox_confidence estimate | Catch-all detection on all plans; every request counts against the quota |
| Bulk limit | 100,000 addresses per bulk job, with an HMAC-signed completion webhook | Bulk CSV upload from the Starter plan up |
| Batch API | 50 addresses per synchronous request, probes sent concurrently | not on the pages read |
| Rate limit | 5 requests per second per key on the email and consistency endpoints | 3 requests a second on paid tiers |
| Official SDKs | Python, Node.js, PHP | not on the pages read |
| Data retention | Only email verification keeps a history row, for 30 days, then pruned; test addresses are never logged | not on the pages read |
checked 2026-09-13 · sources: Abstract API email validation page
When Abstract API fits better
Developers who want one vendor for several small utility APIs under a monthly quota.
- Quality score, risk assessment and breach detection are listed on the Free and Professional plans and not on Starter or Standard; role detection is not on the plan table
- SOC 2 Type II and GDPR, CCPA statements
- A commercial license is listed under the Enterprise plan
When Spaw fits better
Developers who want one flat price per answered lookup across every signal a signup form produces, a transparent risk score, and an API that documents every field.
- Abstract's quality score, risk assessment and breach detection sit on its Professional plan; Spaw returns all 46 fields, including risk_score, role and ok_to_send, on every lookup
- Abstract counts every request against the quota; Spaw bills per answered lookup
- Abstract's stated rate limit is 3 requests a second; Spaw's is 5
- Spaw's bulk jobs take 100,000 addresses through the API with a signed webhook
Questions
Does Spaw charge for catch-all or unknown results?
Spaw bills per answer, not per probe outcome. A catch-all domain comes back risky with reason catch_all and costs 1 credit like any risky answer. A mailbox the handshake could not confirm (greylisting, a timeout, no definite answer) comes back risky with reason unverified and is free, and so is an answer Spaw could not obtain at all because its handshake partner was unavailable; neither leaves a 7-day repeat marker, so a later lookup is a fresh one (an uncertain result is reused for up to 15 minutes, then the mailbox is asked again) and bills 1 credit only once the mailbox is confirmed, and the automatic re-checks behind callback_url bill 1 credit only when they confirm it. Undeliverable verdicts are free within a fair use of max(500, your billed email answers) in a rolling 30 days, and invalid input and repeats within 7 days are free too. Abstract API counts them according to its public pages.
Can I move a list from Abstract API to Spaw?
Yes. Upload the CSV to the dashboard or POST it to the bulk endpoint; Spaw keeps your columns, adds the verdict columns, and lets you download only the deliverable, risky or undeliverable rows. Addresses that come back undeliverable join your suppression list so later runs skip them for free.
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. Abstract API offers: 100 requests on the Free plan.
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 Abstract API alternatives.
Abstract API is a trademark of its owner. Spaw is not affiliated with it. Markdown version: /compare/abstract.md