Most "use case" guides list ideas and publish a blended ROI figure nobody can reproduce. This one gives you the query, the free count and a formula, so the ROI number is yours.
We publish no benchmark here. A conversion rate belongs to your offer and your list. What we can give you is the cost side exactly: records spent, and what they return.
TL;DR
- Four use cases (outbound list build, CRM enrichment, account research, agent lookups), each sized with a free call before any records are spent.
- Takes about 25 minutes and spends about 60 records on the Free plan (1,000 records for life, no card).
- ROI = (meetings x deal value x close rate) divided by cost. You measure the first three. The API gives you the last one.
Prerequisites
- A LeadOcean account on the free plan: app.leadocean.io/register.
- An API key from the app, exported as
$LEADOCEAN_API_KEY. curlandjq. Optional: an MCP client for Step 1 (the hosted server is athttps://api.leadocean.io/mcp, 13 tools).- Your own numbers: average deal value, close rate, meeting rate from a past campaign.
Step 1: Size the audience for free
Counting costs nothing, so size every use case before you buy anything.
Over the API, send count=true as a query parameter and limit 1 in the body. The body stays flat JSON and filters are arrays.
curl -s -X POST "https://api.leadocean.io/v1/people/search?count=true" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{
"jobLevel": ["VP"],
"jobFunction": ["Sales & Business Development"],
"country": ["CA"],
"limit": 1
}' | jq '.meta'In an MCP client, the same question is one tool call: leadocean_count_leads. Note that meta.total is capped at 100,000 on the API, and the count describes the mailable audience by default (verified, catch_all_valid and catch_all addresses).
Step 2: Build an outbound list (use case 1)
Pull the people your count described, a page at a time. Limit runs 1 to 100 and you follow cursor for the next page.
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": ["CA"],
"limit": 25
}' | jq '.meta, (.data | length)'A page of 25 is 25 records. One search pages to 10,000 rows (meta.depthCapped tells you when it stops), so narrow the filters instead of walking the index. For files beyond a few pages, use POST /v1/exports: up to 50,000 rows a request and 500,000 a day. Bulk CSV export is not on Free.
Step 3: Enrich the CRM (use case 2)
Enrichment takes exactly one of linkedin_url, email, phone or person_id. There is no name plus domain lookup: search by domain first, then enrich by person_id.
curl -s 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 person we hold nothing for returns 404 and costs nothing. Since October 2026 the response also carries career history (resume_data: past roles, educations, certifications and awards, each when held). Past employers have no company_id yet.
Step 4: Research accounts and size the market (use case 3)
For account lists, count companies first. GET /v1/companies/count is free and takes the company-search filters.
curl -s "https://api.leadocean.io/v1/companies/count?industry=Software%20Development&hqCountry=CA" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jq '.total'Then list the people at one account with GET /v1/companies/acme.com/people (it stops at 10,000 rows). Each person returned is one record.
Step 5: Give an agent live lookups (use case 4)
Connect an MCP client to https://api.leadocean.io/mcp. Sign-in is OAuth 2.1, so no key is pasted. The agent gets 13 tools. Seven are free: leadocean_count_leads, leadocean_count_companies, leadocean_list_filters, leadocean_list_enum_values, leadocean_get_account, leadocean_get_export and leadocean_list_exports. Search, get, phone and export tools spend one record per person or company returned.
A prompt that stays cheap:
Count VP-level sales people in Canada first. Show me the total and
the distinct company count. Do not pull any records until I confirm.Step 6: Turn counts into ROI
Cost per outcome is records spent divided by outcomes. Paid plans have a fair-use pace instead of credits, so on Solo ($97 a month) or Agency ($497 a month) your cost is the plan, not a per-record price. Source: leadocean.io/pricing, October 2026.
cost_per_meeting = plan_cost_per_month / meetings_booked_per_month
roi = (meetings * deal_value * close_rate) / plan_cost_per_monthOn the Free plan the cost is your 1,000 records. Spend 60 on a pilot, measure reply and meeting rate, then scale. Do not trust a blended benchmark that does not state its list, offer and sender.
What you get
The free count from Step 1, run on 2026-10-21 through the leadocean_count_leads MCP tool:
{
"total": 5574,
"totalIsExact": true,
"totalAll": 18800,
"distinctCompanies": 3873,
"credits": 0
}Filters: jobLevel VP, jobFunction Sales & Business Development, country CA. total is the mailable count (verified, catch_all_valid or catch_all). totalAll is the same filters with no email condition. The call spent no records.
A search page returns person objects. The shape below is the response shape from the API reference (api.leadocean.io/openapi.json, September 2026), with placeholder values:
{
"data": [
{
"profile_data": { "profile_full_name": "Jane Doe" },
"contact_data": { "has_email": true, "email_status": "verified" },
"meta": { "source_ids": { "person_id": "<digits>" } }
}
],
"meta": { "count": 25, "limit": 25, "credits": 25, "nextCursor": "<cursor>" }
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Re-copy the key from the app and check $LEADOCEAN_API_KEY is exported |
| 429 | Above the plan's rate limit (5 a second on Free, 200 on Agency) | Honor the Retry-After header, or move up a plan |
| 402 | Out of records (Free is 1,000, once) | Move to a paid plan, or narrow the pull |
| Empty results | Enum value not exact, such as vp for jobLevel | Check leadocean_list_enum_values; jobLevel takes VP, seniority takes vp |
| Export refused | Over 50,000 rows a request or 500,000 a day | Split the filter into smaller exports |
| 404 on enrich | We hold nothing for that person | Free. Try another identifier |
FAQ
Can I get an ROI benchmark from LeadOcean?
No. We do not publish a blended conversion rate. Reply and meeting rates depend on your offer and list, so measure them on a small pilot.
How many records does the pilot spend?
About 60: two search pages of 25 plus a few enrichments. Counts, filters lists and enum lookups are free.
Does a paid plan have a per-record price?
No. Solo is $97 a month and Agency is $497 a month, each with a fair-use pace. Reaching it slows the key until the window resets.
Which use case should I start with?
Start with the CRM enrichment pilot if you already have contacts. Start with the outbound list if you do not. Both begin with a free count.
Related reading: data enrichment API use cases that drive revenue, best data enrichment tools compared by use case, B2B data API latency benchmark, the blog hub and pricing.
Size your first B2B data use case for free
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →