The job in one paragraph
An AI SDR is only as good as the contacts it reads. It needs a list that matches your ICP, a work email it can trust, and a record fresh enough that the first line is not wrong. LeadOcean supplies the data, over REST or a hosted MCP server. It is not the SDR: it has no sequencer, no inbox and no dialer. Your agent, or the sending tool you already use, does the writing and the sending.
The workflow
- Check the account.
GET /v1/account(MCP:leadocean_get_account). Free. Your agent should read the balance before it loops. - Resolve the filters.
GET /v1/enums(MCP:leadocean_list_enum_values). Free. Filter values are exact strings, so let the agent look them up instead of guessing. - Size the audience.
POST /v1/people/search?count=truewith"limit": 1, orleadocean_count_leads. Free.meta.totalis capped at 100,000. - Pull the list.
POST /v1/people/search(MCP:leadocean_search_leads). 1 record per person returned, up to 100 per page. Page withcursor. - Fill the gaps.
POST /v1/people/enrich(MCP:leadocean_get_lead) with exactly one ofemail,linkedin_url,phoneorperson_id. Setreveal_emailto true for the address. 1 record per hit. A 404 costs nothing. - Add a phone for call tasks.
GET /v2/people/phone(MCP:leadocean_find_phone). 1 record per call, including a call that finds nothing. - Gate on email status. Read
email_statusbefore the agent drafts. Send toverifiedfirst. Holdcatch_allfor a second pass. - Add company context.
POST /v1/companies/enrich(MCP:leadocean_get_company) withdomain. 1 record per company. Dedupe domains first.
For bulk lists, POST /v1/exports (MCP: leadocean_export_leads) takes up to 50,000 rows per request at 1 record per row. The Exports page in the app does the same with a filter builder and a price preview.
curl -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"jobLevel":["VP"],"jobFunction":["Sales & Business Development"],"country":["US"],"employeeRange":["201-500"],"limit":25}'A worked example
Say your ICP is VPs of Sales at US companies with 201-500 employees. We ran leadocean_count_leads on 1 October 2026 with jobLevel VP, jobFunction Sales & Business Development, country US and employeeRange 201-500.
With the default email filter (verified, catch_all_valid and catch_all), it returned 11,207 people. With emailStatus set to verified only, it returned 3,138. Both counts cost 0 records.
Now pick a pilot of 1,000 people from the verified set. Pulling them is 1,000 records. That fits inside the Free plan, which gives 1,000 records once, with no card.
If the agent then looks up phones for 300 of them, that is 300 more records. The Pro plan at $499 a month has no per-record price, inside fair use. See pricing.
Tools that fit
- Claude Code MCP setup: connect the hosted MCP server, sign in with OAuth, no key pasted.
- Lead List Builder skill: Claude turns an ICP into a priced list.
- ICP Qualifier skill: Claude gives a criterion-by-criterion fit verdict for a domain, for 4 records by default.
- Contact Finder skill: Claude finds the right person at a named account.
- Find Work Email: the email lookup, with every field listed.
- Clay and n8n: call the API from the workflow that feeds your sender.
- AI agent builders: the broader pattern for agents that call our API.
For the term and the buyer checklist, read what is an AI SDR and the 2026 AI SDR data needs report. To compare databases, see the best B2B databases.
Pitfalls
- Stale data. The dataset is refreshed monthly, and each record carries its own
fetched_atdate. Check it before an agent writes a line about a job change. - Catch-all emails.
catch_alladdresses accept any mail, so a send can still bounce. There is no refund for bounces. Send toverifiedfirst. - Rate limits. The limit is 100 requests per second per key, on every plan. A 429 is never metered. Make the agent back off and retry.
- Enum strings. jobLevel is
C-Team,VPorDirector. Seniority is lowercase, such asc_suite. An agent that invents a value gets an empty list.
FAQ
What data does an AI SDR need?
A matched person, a work email with a status, the title and company, and optionally a phone. LeadOcean returns these fields. Your agent adds the message and the send.
Does LeadOcean send the emails?
No. LeadOcean returns data. Your agent or sending tool writes and sends, and you read email_status first.
Can the agent call LeadOcean without an API key?
Yes, over MCP. The hosted server at https://api.leadocean.io/mcp uses OAuth sign-in. The REST API uses the x-api-key header.
How do I keep an agent from overspending?
Have it call leadocean_count_leads first, which is free, and leadocean_get_account before each loop. On Free the cap is the 1,000 one-off records.
Feed your AI SDR real contacts, free
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →