One number or a million
Verify a single number at POST /v1/phone-validation/verify, or upload a CSV — one number per line, up to 1,000,000 rows. Bulk jobs run async and fire phone_validation.bulk_completed when they finish.
Catch VoIP & toll-free numbers before they pollute your SMS campaigns.
Look up any phone number's country, carrier, and line type (mobile / VoIP / fixed line / toll-free / premium-rate / shared-cost). Cache-first — repeat lookups of the same number cost zero credits. Bulk + single modes.
Mobile = SMS-deliverable. VoIP, toll-free, fixed-line = silently fail. Premium-rate = paid services. The line-type field is the single most important signal for SMS-campaign teams; we surface it with a sensible-defaults UI explaining what each one means.
Re-lookups of the same E.164 number return from the workspace cache for free. Bulk uploads explode into the cache so subsequent single-lookups are also free. A tenant who re-imports the same CRM monthly pays once.
Single-number verify from the Console-style toolbar; CSV-bulk for fleet imports (up to 1M rows). Progress reflects real upstream lookup state, not a fake queue indicator.
Follow (415) 555-0132 through the pipeline — canonicalized to E.164, classified by line type, cached per workspace, and turned into a straight SMS-deliverable answer.
Verify a single number at POST /v1/phone-validation/verify, or upload a CSV — one number per line, up to 1,000,000 rows. Bulk jobs run async and fire phone_validation.bulk_completed when they finish.
Formatting is stripped and the number resolves to canonical E.164 — the authoritative parse comes from the provider, not a local library. Numbers we can’t parse at all come back syntax-error, free, and cached so you never re-submit them.
The lookup resolves country, carrier and the all-important line type — mobile, voip, fixed_line, toll_free, premium_rate, shared_cost or unknown.
Results are cached per workspace, keyed on (tenant, E.164) — checked before any billing. Re-import the same CRM next month and every repeat number returns for free; a bulk upload explodes straight into the same cache.
The line type drives the deliverability read: only mobile is SMS-deliverable. VoIP, fixed-line, toll-free and the rest silently fail on most carriers — so junk numbers don’t quietly burn your campaign spend.
The per-number detail page shows the SMS hint for its line type; the analytics tab rolls a SMS-deliverable share tile — mobile lines as a percent of everything classified — so you see the health of a whole list at a glance.
Every billable action draws from one credit pool — no per-feature slider to manage. The cost for this feature is fixed by the platform's credit table; mix and match against the other features however you like.
Pro plans grant 30,000–300,000 credits per month — pick a tier on the pricing page, or top up mid-month with a credit pack.
| Action | Credits |
|---|---|
Bot Anomaly Detection + Email Verification per signup screening — always coupled | 5 |
Domain Health per domain | 1 |
Blacklist check per domain | 15 |
Inbox placement test per test | 150 |
Phone verification per lookup | 3 |
SieveGuard caches every result per-workspace, so re-lookups are zero-cost — common when you re-import the same CRM month over month. Other lookup APIs typically charge per request regardless of whether you've seen the number before; we charge once.
Numbers we can't parse at all (e.g. random strings, too few digits) come back with status=syntax-error and are NOT billed. They're still stored in the cache so you don't re-submit the same malformed row twice.
It is based on number-portability databases aggregated per country. Pretty reliable in mature markets (US / UK / DE / FR / NL); slightly less so in emerging markets where porting databases are less complete. The "unknown" status is honest about that — it means "we cannot classify confidently" rather than guessing.
Spin up a workspace, plug in your data, see results — no card required to start.