SIRVEILEST. 2025 · SCAN API Get a key

Proof

Measured, not marketed.

Four numbers carry this page: 890 ms median and 1,463 ms at p95 for a single check, 154 s median for a full sweep, and 548 domains covered by every sweep. All four come from the measurement runs in tech paper v5 — and below them sits the methodology, a curl to reproduce the whole thing, and the competitors’ numbers with sources. Where a competitor beats us, we print it.

Preview build — figures locked at launch.

890 ms
Median · single check

Fast enough to live inside a signup flow or a support screen — the user is still reading when the answer lands.

1,463 ms
p95 · single check

19 calls in 20 finish under a second and a half. Set your timeout at three seconds and stop thinking about it.

154 s
Median · full sweep

Submit the job, pour a coffee, collect 548 per-domain answers. Live at request time — never a cached snapshot.

548
Domains · every sweep

The registry derived from the California CPPA Data Broker Registry — the legally mandated filing list, plus curation, derivation published.

Methodology

How the numbers were made — so you can unmake them.

A benchmark you can’t reproduce is an advertisement. Here is what was measured, how the percentiles are defined, and a one-line curl that runs the same test against the same endpoint. The meter means your benchmark costs a dime.

What was measured

Wall-clock time from request sent to complete response received, against the live API. Single checks are timed on POST /v1/verify; sweeps are timed from job submission on POST /v1/scan to the job report reading complete. Figures are from the tech paper v5 measurement runs.

The request shape

Every timed check used the production request body — firstName, lastName, email, domain — against broker and people-search domains, the class the product is built for. No warm-up requests were excluded from the tally; slow runs count.

Percentiles, defined

Median (p50): half of measured calls finished faster than this. p95: 19 out of 20 finished faster; the remaining 1 in 20 was slower, and we’d rather tell you that than show you an average that hides it. Averages flatter; percentiles confess.

Cold, not cuddled

Checks were measured cold, with no cached answers served — each timed call did its public-surface lookups at request time. Sweep timing includes queueing, fan-out across all 548 domains, and report assembly.

Run it yourself
# Time one real check against the live endpoint.
# One completed answer = one dime on the meter. A failed
# call bills $0.00 — even the one you use to test that claim.
curl -s -o /dev/null \
  -w "status: %{http_code}  total: %{time_total}s\n" \
  https://api.sirveil.ai/v1/verify \
  -H "Authorization: Bearer sv_live_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "firstName":"Jane", "lastName":"Doe",
       "email":"[email protected]",
       "domain":"examplebroker.com" }'

# Loop it 100 times, sort, and read your own median and
# p95. Total cost of auditing us: about ten dollars.

If your numbers disagree with ours, email [email protected] with the run — we’ll publish the discrepancy or fix the cause, whichever the data says.

Cost efficiency

The arithmetic. Bring a calculator, catch us lying.

No market studies, no “up to 97% savings” — just division you can check on the back of the invoice we send you.

$0.35 ÷ 548 domains ≈ $0.00064 per domain checked, in one sweep. A fifteenth of a cent buys a dated, sourced verdict on one registered broker.
548 lookups × 30 s ≈ 4.6 hours of a human doing the same sweep by hand — at an optimistic thirty seconds per site, before coffee, typos, and the will to live. The sweep does it in 154 seconds for thirty-five cents. Doing it the long way is free, and we say so; the fee buys the engine and the labour.
$0.10 per targeted answer when you already know which domain you care about — one check, one evidenced verdict, about a second.
$0.00 per failed call, always errors and timeouts never bill. The per-answer math above is the real unit price, because you never pay for a non-answer.

The field

Checked against the leaders. Sources cited. Losses included.

Every claim below was verified on the vendor’s own pages in August 2026, and each card links its source. Anything we couldn’t verify there, we cut — the same rule we apply to ourselves. One of these vendors beats us on coverage, and the card says so.

Exposure & removal

Optery

They beat us on coverage. Optery’s business API page advertises “over 635+” data brokers — more sites than our 548-domain registry, and we’re printing that in our own benchmark page because that’s the house rule.

Where we differ: we found no published per-call price and no self-serve key on that page — access starts with an email to support and a scheduled meeting, with prepaid-yearly or month-to-month plans. Our price is on the page and the key is self-serve.

Source: optery.com/api — checked August 2026.

Self-serve challenger

Apify — Personal Data Exposure Report actor

Respect where due: a published $1.00 per exposure report, pay-per-event, no subscription — the only other vendor we found preaching the metered religion.

The listing scans 18 broker and people-search sites directly (23 sources counting breach databases) in a quoted 2–5 minutes per subject. Our sweep covers 548 domains for $0.35 in a measured median of 154 seconds. Same shape of product; different order of magnitude.

Source: apify.com — actor listing — checked August 2026.

Enrichment data

People Data Labs

Credit to them: pricing is genuinely published — person APIs from $0.28 per credit at the entry tier (350–2,500 credits/month), one credit consumed per successful match, tiers set by how many credits you purchase.

It’s a different product: a credit buys one cached profile record — “who is this person?” Our call buys a live indexed / not-indexed verdict with evidence — “where are they exposed, right now?” And our meter has nothing to purchase in advance.

Source: support.peopledatalabs.com — Pricing & credits — checked August 2026.

Identity resolution

Pipl

Pipl’s API pricing page redirects to a login screen; the public routes to access run through a contact-sales form. That is the entire verifiable pricing story, so it is the entire card.

Our position: no public number exists to compare, and we won’t invent one — try the link yourself. Our two numbers are printed on every page of this site.

Source: pipl.com/api/pricing (login-gated) · pipl.com/contact-us — checked August 2026.

People-search data

Endato / EnformionGO

Metered like us — billed per match, self-serve signup. Published unlike us: their help center says the per-match rates live inside your account dashboard (“Keys tab → Pricing section”), so you learn the price after you sign up, not before. A per-match dollar figure circulates in third-party write-ups; we couldn’t verify it on Endato’s own public pages today, so it isn’t here.

Source: go.enformion.com — “How do I view my cost per match?” — checked August 2026.

What we cut, and why: a widely-quoted Pipl monthly minimum, an Endato per-match price, and competitor first-report timings all failed today’s verification pass on the vendors’ own pages — so they’re not on this page. If we can’t cite it, we don’t print it. That rule cost us some flattering comparisons; it’s still the rule.

Compare us yourself — the questions to ask any vendor, including us.

Is the per-call price published? Ours: $0.10 a check, $0.35 a sweep, on every page. If theirs needs a meeting, that’s an answer too.
Do failed calls bill? Ours: $0.00, always. Ask what an error or a timeout costs on their meter.
Is anything prepaid — and does it expire? Ours: nothing, so nothing can. Credit packs pay the vendor for your forgetfulness.
Does the answer arrive with evidence? Ours: every result carries its source. A verdict without provenance is a vibe.
Will they say “we couldn’t tell”? Ours: indeterminate is a first-class status. A vendor with no refusal state is guessing somewhere.
Do they publish their losses? Ours: see the Optery card above. A comparison page where the vendor wins every row was written backwards.

Honest refusals

“Couldn’t tell” is an answer. Guessing isn’t.

Decidability is class-dependent, and pretending otherwise is how this industry sells fiction. We benchmark our refusals because they’re part of the product.

Decidable by design

Broker and people-search domains exist to be publicly findable — so a public-surface check returns a real indexed or not_indexed verdict, with the queries and evidence attached.

Undecidable, admitted

Login walls and noindex’d sites can’t be verified from the public surface — by us or by anyone honest. Those return indeterminate, with the reason: a completed, billed answer that tells you exactly what could not be seen, instead of a fake “no.”

Refusal over confidence theater

A typical sweep reads about 5 indexed / 522 not indexed / 21 indeterminate. Those 21 are the benchmark you should ask every vendor about — a scanner that never says “couldn’t tell” is guessing somewhere, and you’re paying for the guesses.

Ten dollars audits the whole page. The meter starts at zero.

Get a key, run the curl a hundred times, and compare your percentiles to ours. Worst case, you’re out the price of lunch and holding the receipts.

Get a key Read the docs