Identity protection, credit monitoring, and privacy products charge for data-broker removal. We're the service underneath: scan 1,147 people-search and broker sites, submit the opt-outs, and confirm they're gone. You keep the customer, the price, and the margin.
Per-member cost from $7.53 in year one at scale. Consumer products sell this for $96 to $156 a year. Safe Shepherd, our own consumer brand, runs on it.
Every step is one API call with one job. You decide the schedule; most customers scan on signup and re-check monthly.
Name, city, state in. For each site: found or not, and the profile URL if found. The engine picks the cheapest method that works on that broker.
A typical member shows up on 15 to 40 sites. You get a webhook per site with what was exposed: address, age, relatives, phone.
Automated form opt-out where the broker has one; a personalized CCPA/GDPR request where it doesn't. Proof screenshot when there's a form.
Re-scan the sites where they were found. Brokers repopulate; the loop catches it. Your product shows "clean since March."
You have the trust and the billing relationship. Removal is the feature your members ask for and your competitors charge extra for.
Add removal to your existing plan tiers or sell it as an add-on. Batch-onboard your base, then run the monthly loop.
A cardholder benefit that reduces account-takeover risk and lifts premium-card value. Enroll at activation.
You already sell "less exposure." This is the part of that promise you can prove, site by site, with URLs.
Everything an agent needs is at one URL. Paste this into Claude Code, Codex, or Cursor and it will wire the scan, the removal, the webhook handler, and a test run on the sandbox.
Prefer to read it yourself? The five-minute start. Using it from a chat instead of a codebase? Connect the MCP server.
Prepaid credits, no minimum, no platform fee. The tier is set by your total tasks that month. Most customers don't scan all 1,147 sites for every member; pick a coverage level and the per-member column updates.
| Tier | Tasks per month | Scan | Remove | Per member, example schedule iYou decide when and how often to scan; we bill per task. This column shows one common pattern: scan the covered sites once when a member joins (onboard), remove where found, then each month re-check the found sites plus the most-hit brokers (per month). Scan weekly, quarterly, or only on request and the cost moves with it. |
|---|---|---|---|---|
| Standard | under 10,000 | $0.016 | $0.05 | |
| Growth | 10,000 to 100,000 | $0.011 | $0.03 | |
| Enterprise | 100,000 to 1,000,000 | $0.005 | $0.02 | |
| Infrastructure | over 1,000,000 | $0.003 | $0.01 |
This is an example schedule, not how the API works: you pick which sites, when, and how often, and pay per task. At full coverage a typical member is found on about 25 sites; the found count scales with coverage. Some brokers need a browser or vision to read; those bill as Scan+ or Scan Pro and your invoice shows exactly which. Full price table.
Same endpoints, same payloads. Only the key prefix changes.
Put your own numbers in. The cost side is our real tier table applied to a realistic member: full scan once, removals where found, a monthly re-check loop. The revenue side is whatever you charge.
Send your base size and target attach and we'll return a signed quote at the right tier.
The whole page runs on your sandbox key. Fixture brokers return deterministic results and never touch a real site, so it costs nothing and nothing real gets removed.
Sign up and both are on your dashboard. The prefix is the mode. There's no flag to set.
Paste this into Claude Code, Codex, or Cursor. It reads the same reference you would and runs the sandbox test.
One site or every site. The person Found Person is on every fixture broker; Clean Person is on none.
curl -X POST https://api.privacyai.com/task \ -H "X-API-Key: $PAI_API_KEY" -H "Content-Type: application/json" \ -d '{"type":"scan","target":"all", "person":{"firstName":"Found","lastName":"Person","state":"TX"}, "webhookUrl":"https://yourapp.com/privacyai"}'
One POST per site as each finishes. Branch on result.found.
{ "taskId": "b7e2…", "type": "scan", "target": "spokeo",
"status": "SUCCESS",
"result": { "found": true,
"urls": ["https://www.spokeo.com/Found-Person/…"],
"data": { "age": 47, "city": "Austin" } },
"cost": { "method": "scan", "usd": 0.016, "charged": false } }
Same endpoint, type: "remove". Some brokers need email or age; the 400 tells you which.
{ "type": "remove", "target": "spokeo",
"person": { "firstName": "Found", "lastName": "Person",
"state": "TX", "email": "fp@example.com", "age": 47 },
"webhookUrl": "https://yourapp.com/privacyai" }
Send type: "check" for the sites where they were found. It's billed as a scan. When the loop works on fixtures, add credits and swap the key prefix. Nothing else changes.
Full fixture table, webhook inbox, and request console: Sandbox reference.