The job in one paragraph
CRM enrichment means taking the records you already hold and filling the fields they lack: work email, phone, title, seniority, company size, industry. You send an identifier you have. You get back the record we hold for it. LeadOcean does this over REST and over a hosted MCP server. It does not write into your CRM. You run the loop in a script, a Zapier, Make or n8n flow, or an AI agent, and write the results back yourself.
The workflow
- Check the account.
GET /v1/account(MCP:leadocean_get_account). Free. It shows the records you have left. - Size the gap.
POST /v1/people/search?count=truewith your filters and"limit": 1, orleadocean_count_leads. Free.meta.totalis capped at 100,000. - Enrich contacts.
POST /v1/people/enrich(MCP:leadocean_get_lead) with exactly one ofemail,linkedin_url,phoneorperson_id. Setreveal_emailto true to get the address. 1 record per hit. A 404 costs nothing. - Enrich accounts.
POST /v1/companies/enrich(MCP:leadocean_get_company) withdomainorlinkedin_url. 1 record per company. Dedupe domains first, because ten contacts at one company need one lookup. - Add phones where the contact has none.
GET /v2/people/phone(MCP:leadocean_find_phone). 1 record per call. On the v2 endpoint a call that finds nothing still costs 1 record. - Write back what you trust. Read
email_statusbefore you save an address. Keepverifiedandcatch_all_valid. Treat the rest as unsent. - Add net-new contacts. For accounts with only one contact,
POST /v1/exports(MCP:leadocean_export_leads) pulls more people. 1 record per row, up to 50,000 rows per request.
There is no lookup by name plus company name. If you only hold a name and a domain, search by domain first, then enrich by person_id. Search costs 1 record per person returned.
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"email":"jane.doe@acme.com","reveal_email":true}'A worked example
Take a CRM with 15,000 contacts, each with an email. Suppose 12,000 of them match (the hit rate is your assumption here, not a result). That run is 12,000 records. The 3,000 misses cost nothing.
Add phones for 5,000 of the matched contacts through GET /v2/people/phone. That is 5,000 more records, miss or not. The total is 17,000 records.
On Free, the first 1,000 records are yours once, with no card. On Pro the month is $499, flat, with no per-record price, inside fair use. See pricing.
To size a gap before you spend anything, we ran leadocean_count_leads on 1 October 2026. Filters: jobLevel Director, jobFunction Sales & Business Development, country US, employeeRange 51-200, hasPhone true. It returned 83,763 people with a phone number on file. The count cost 0 records.
Tools that fit
- Enrich Company: the account lookup by domain, with every field listed.
- Enrich Person skill: Claude looks up one person from a LinkedIn URL or email.
- CSV Enricher skill: export your CRM list, let Claude price and enrich it, import the new file.
- Zapier, Make and n8n: fire an enrichment call on every new contact.
- The Exports page in the app at app.leadocean.io: filter builder, column picker and the record price before you start. It has no CRM sync, so you import the CSV.
For tool comparisons, read the best CRM enrichment tools and the best enrichment tools for Zoho CRM. For the term itself, see enrichment.
Pitfalls
- Stale data. The dataset is refreshed monthly, and each record carries its own
fetched_atdate. Enrich again on a schedule, not once, and check that date before you overwrite a field a rep typed. - Catch-all emails.
catch_allandcatch_all_validaddresses accept any mail, so a send can still bounce. There is no refund for bounces. Reademail_statusand send toverifiedfirst. - Rate limits. The limit is 100 requests per second per key, on every plan. A 429 is never metered. Back off and retry.
- Enum strings. Filter values are exact strings: jobLevel is
C-Team,VPorDirector, and seniority is lowercase, such asc_suite. Checkleadocean_list_enum_valuesbefore you build a filter.
FAQ
Does LeadOcean write into my CRM?
No. LeadOcean returns data and you write it back. Use your own script, Zapier, Make, n8n or an agent. The app has no CRM connector.
Do misses use my records?
On POST /v1/people/enrich and POST /v1/companies/enrich, a 404 costs nothing. On the v2 contact endpoints a call costs 1 record even when it finds nothing.
Can I enrich from a name and a company?
Not directly. Search by the company domain, pick the person, then enrich with the person_id the search returned.
How fresh is the data?
The dataset is refreshed monthly. Every record has a fetched_at date, so you can skip rows that are newer than your last pass.
Enrich your CRM records free
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →