{"name":"Cold Leads API","version":"v1","openapi":"https://coldleads.app/api/v1/openapi.json","agent_onboarding":"No key yet? POST /api/agent/provision {owner_email, agent_id, callback_url?} → Stripe checkout_url for the human owner (Business plan) + claim_token; poll GET /api/agent/status?session_id=… with header X-Claim-Token → api_key once after payment","mcp":"https://coldleads.app/api/mcp — Model Context Protocol (Streamable HTTP, OAuth for ChatGPT or Authorization: Bearer sk_…). Includes workspace contacts, conversations, templates, campaigns, website lead capture, search and verification. Local stdio server: https://github.com/anttka4cz/mcp-server-coldleads (npx -y --allow-git=root github:anttka4cz/mcp-server-coldleads, env COLDLEADS_API_KEY)","sdk":{"node":"https://github.com/anttka4cz/coldleads-node-sdk","install":"npm install --allow-git=root github:anttka4cz/coldleads-node-sdk"},"llms":"https://coldleads.app/llms.txt","auth":"secret key (sk_…) in the x-api-key header or Authorization: Bearer — create it in Settings → API keys; requires the Business plan. Publishable lk_ keys only work for the website lead form.","rate_limit":"120 requests per minute per key; 5 concurrent bulk jobs per account; up to 5000 e-mails per job","credits":"1 credit per verified e-mail (cached results included) or e-mail-finder request; contact search, credits and job polling are free; monthly allowance by plan plus purchased packs","agents":"Designed to be called directly by AI agents with function calling (ChatGPT, Claude, Copilot Studio, n8n, Make): describe these endpoints as tools and pass the key in x-api-key","endpoints":{"POST /api/v1/verify":{"body":{"email":"anna@example.com","timeout_ms":"optional 1000–30000; past it the result is risky with reasons [timeout]"},"returns":"status valid|risky|invalid, score, reasons, mx, catch_all (true only when the SMTP accept-all check ran; reasons ok / smtp_unreachable tell whether the mailbox was checked)"},"POST /api/v1/verify/bulk":{"body":{"emails":["a@example.com","b@example.com"],"name":"optional"},"returns":"job id; poll GET /api/v1/verify/jobs/{id}"},"GET /api/v1/verify/jobs/{id}":{"query":{"results":"1 to include per-e-mail results"},"returns":"status, done/total, counts by bucket"},"POST /api/v1/find":{"body":{"first":"Anna","last":"Novak","domain":"example.com"},"returns":"most likely e-mail by common patterns, confidence, method verified (mailbox confirmed over SMTP) | pattern | none, catch_all, candidates"},"GET /api/v1/credits":{"returns":"plan, monthly limit, used, left"},"GET /api/v1/leads":{"query":{"domain":"example.com","role":"optional keyword (sales, ceo…)","limit":"1–50, default 10"},"returns":"contacts already in your Cold Leads CRM at that domain (no credits)"}},"buckets":{"valid":"domain accepts mail; mailbox confirmed over SMTP (reason ok) or not checked because no SMTP connection was possible (reason smtp_unreachable)","risky":"accept-all server, disposable domain, inconclusive SMTP answer (smtp_unknown) or time budget exceeded (timeout); role accounts stay valid with a lower score","invalid":"bad syntax, no mail server or mailbox rejected"}}