Pre-Black Friday: 20% off, for as long as you stayEARLYBFon Solo and AgencyEnds Nov 28Start free

Integration recipe

LeadOcean + your sender: search, enrich and send emails automatically

Two API calls and one send step. Runs on a schedule with no rep in the loop.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

You get a job that finds people who match a filter, pulls a verified work email for each, and hands the address to the tool that sends your message. It needs two LeadOcean calls and no seat licence. The send step can be Gmail, SMTP or your sequencer.

How it works

  1. Trigger. Run the job on a schedule (cron, a workflow tool timer or a CI job). Once a day is enough for most lists.
  1. Search. Call POST /v1/people/search with your filters. Add emailStatus: ["verified"] so you only pay for people you can mail. Page with cursor.
  1. Enrich. For each person_id, call POST /v1/people/enrich with reveal_email: true. A person with nothing on file returns a 404 and costs nothing.
  1. Send. Pass the address and name to your sender. Skip anyone already contacted. LeadOcean does not send mail and has no sequencer.

Size the list first, then start small. Run the job on 25 rows, read the messages in your sender's drafts and only then switch on live sending. A bad filter costs records, and a bad template costs your sender's reputation. Send in batches rather than one burst, and log each address you have mailed so a rerun never repeats a message. To size the list for free, send the same search with count=true as a query parameter and limit 1.

Configuration

bash
curl -s 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"],
    "emailStatus": ["verified"],
    "limit": 25
  }'

curl -s https://api.leadocean.io/v1/people/enrich \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"person_id": "PERSON_ID_FROM_SEARCH", "reveal_email": true}'

The search body is flat JSON. Filters such as country and jobLevel are arrays of strings, and limit runs from 1 to 100. Enum values are exact strings. Look them up with GET /v1/enums before you change a filter. Send the key in the x-api-key header.

Keep the two calls in separate steps. Search is metered at one record per person returned, and enrich is a second record, so a failed send never forces you to search again. Store the person_id and the revealed address, and retry only the send.

Field mapping

LeadOcean fieldSender fieldNote
contact_data.contact_emails[].emailToPresent only with reveal_email: true. Best address first.
profile_data.profile_first_nameFirst name merge tagFall back to a neutral greeting if empty.
contact_data.contact_current_experiences[].job_titleRole merge tagUse the first entry.
contact_data.contact_current_experiences[].company_nameCompany merge tagRead the current role, not resume_data.
contact_data.contact_emails[].statusSend filterSend only verified. No refund for bounces.

Cost at 10,000 rows

Free cannot finish this job. It holds 1,000 records for life, and search plus enrich spends two records per person, so it covers about 500 rows. Use it to test.

At 10,000 rows, use Solo at $97 a month. Solo allows 10k enrichments every 5 hours and 100k search records every 5 hours, so the run fits in one window. There are no credits and no overage invoice.

Your sender has its own cost and daily cap. Read them in the sender's own docs before you schedule 10,000 sends. LeadOcean plans are on /pricing.

Troubleshooting

SymptomCauseFix
404 on enrichNothing held for that personSkip the row. It costs nothing.
402Free records spentMove to Solo. Free does not refill.
429Above your plan rate (5 a second on Free, 50 on Solo)Honour Retry-After.
Empty searchEnum value is not an exact stringCheck GET /v1/enums.
BouncesStatus other than verifiedFilter on emailStatus. See role-based emails.

FAQ

Can LeadOcean send the emails?

No. It returns the data. The send step runs in Gmail, SMTP or your sequencer.

Can I do the same from a chat client?

Yes. The hosted MCP server at https://api.leadocean.io/mcp exposes leadocean_search_leads and leadocean_get_lead among its 13 tools. The send step still needs a tool you connect.

Is there a Salesforce version?
What if I only have an email and need the profile?

Enrich accepts an email as input. For the reverse case, see searching LinkedIn by email.

More recipes are in the integrations hub.

Automate your outbound list with a free API key

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →