Three endpoints. One API key. Scan anyone's data broker exposure, get an AI risk score, and submit opt-out requests — from your app, script, or AI agent.
Working in 2 minutes. Your API key is your email (for free tier) or a token from your dashboard.
# 1. Scan for data broker exposure
curl -X GET "https://unlist.ai/api/v1/scan?name=Jane+Smith&email=jane@company.com&state=CA" \
-H "Authorization: Bearer YOUR_API_KEY"
# 2. Remove from high-risk brokers
curl -X POST "https://unlist.ai/api/v1/remove" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Jane Smith",
"email": "jane@example.com",
"brokers": ["spokeo", "whitepages", "radaris", "zoominfo", "apollo-io"]
}'
# 3. Check status
curl "https://unlist.ai/api/v1/status?email=jane@example.com" \
-H "Authorization: Bearer YOUR_API_KEY"/api/v1/scan/api/v1/remove/api/v1/statusScan and auto-remove all high-risk listings in ~15 lines.
import requests
API_KEY = "your_api_key"
BASE = "https://unlist.ai/api/v1"
HEADERS = {"Authorization": f"Bearer {API_KEY}"}
# Scan
scan = requests.get(f"{BASE}/scan", headers=HEADERS, params={
"name": "Jane Smith",
"email": "jane@company.com",
"state": "CA"
}).json()
print(f"Risk score: {scan['risk_score']}/100")
print(f"Found on {scan['counts']['total']} sites")
print(f"High risk: {scan['counts']['high']}")
# Remove high-risk brokers automatically
high_risk = [f["broker_slug"] for f in scan["findings"] if f["risk_level"] == "high"]
removal = requests.post(f"{BASE}/remove", headers=HEADERS, json={
"name": "Jane Smith",
"email": "jane@example.com",
"brokers": high_risk
}).json()
print(f"Queued {removal['queued']} removals, {removal['tokens_remaining']} tokens left")const API_KEY = "your_api_key";
const BASE = "https://unlist.ai/api/v1";
const headers = { "Authorization": `Bearer ${API_KEY}` };
// Scan
const scan = await fetch(`${BASE}/scan?name=Jane+Smith&email=jane@company.com&state=CA`, { headers })
.then(r => r.json());
console.log(`Risk: ${scan.risk_score}/100, found on ${scan.counts.total} sites`);
// Auto-remove all high-risk
const highRisk = scan.findings
.filter((f: any) => f.risk_level === "high")
.map((f: any) => f.broker_slug);
const removal = await fetch(`${BASE}/remove`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({ name: "Jane Smith", email: "jane@example.com", brokers: highRisk })
}).then(r => r.json());
console.log(`Queued ${removal.queued} removals`);The API is designed to work as a tool in any AI agent framework — OpenAI function calling, Anthropic tool use, LangChain, AutoGPT, CrewAI. The OpenAPI spec is importable directly.
# For AI agents (e.g. in a system prompt or tool definition)
# Base URL: https://unlist.ai/api/v1
# Auth: Authorization: Bearer <token>
#
# Tool: scan_data_brokers
# GET /scan?name=<name>&email=<email>&state=<state>
# Returns risk_score (0-100), findings[], ai_summary
#
# Tool: remove_from_brokers
# POST /remove
# Body: { name, email, brokers: ["spokeo", "whitepages", ...] }
# Returns job_id, tokens_used, status_url
#
# Tool: check_removal_status
# GET /status?email=<email>
# Returns summary of pending/completed removals
#
# OpenAPI spec: https://unlist.ai/api/v1/openapi.json
# Compatible with: OpenAI function calling, Anthropic tool use,
# LangChain tools, AutoGPT plugins, any REST clientSee the AI agent integration guide →Token-based. Buy once, use forever. No monthly subscription required for API access.
Sign up free — includes 10 tokens to try the API immediately.