You get a Clay table where each LinkedIn profile URL turns into a full name, current job title, company and work email. Clay's template does this with a bundle of its own enrichments. This recipe does it with one HTTP API column calling LeadOcean at a flat price. The HTTP API column needs Clay Growth or higher (Clay pricing, September 2026).
LeadOcean enrich takes a LinkedIn profile URL, an email, a phone or a person_id. Other URL types are not accepted. To start from a name and a company, see find email from name and company.
How it works
- Get a free key. Sign up at app.leadocean.io/register. No card, 1,000 records.
- Add a URL column. Name it
LinkedIn URLand paste or import your profile URLs. - Add the HTTP API column. Method POST, endpoint
https://api.leadocean.io/v1/people/enrich. - Set headers and body. Send
x-api-keyand one identifier, theLinkedIn URLcolumn. - Pick the field paths. Clay uses dot notation for nested values (Clay docs, September 2026).
- Run five rows first. Check the columns fill, then run the table.
Configuration
Set the column like this. /LinkedIn URL is Clay's column reference.
Method: POST
URL: https://api.leadocean.io/v1/people/enrich
Headers: x-api-key: <your LeadOcean key>
content-type: application/json
Body: {
"linkedin_url": "/LinkedIn URL",
"reveal_email": true
}
Field paths to return:
data.profile_data.profile_full_name
data.contact_data.email_status
data.contact_data.contact_emails
data.contact_data.contact_current_experiencesTest the same request in a terminal first. This is what Clay sends per row.
curl -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"linkedin_url":"https://www.linkedin.com/in/jane-doe","reveal_email":true}'Send exactly one identifier. Two returns a 400 (LeadOcean docs, September 2026). reveal_email costs no extra record.
Field mapping
| LeadOcean field | Clay column | Note |
|---|---|---|
data.profile_data.profile_full_name | Full name | Name as held on the profile. |
data.contact_data.contact_current_experiences | Current role | Holds job_title, company_name and company_domain. |
data.contact_data.contact_emails | Emails | A list. Pick the work entry in a Clay formula. |
data.contact_data.email_status | Email status | One of 13 values. Send only verified and catch_all_valid. |
data.contact_data.has_email | Has email | Cheapest check for a run condition. |
data.resume_data.experiences | Past roles | Past titles and dates, when held. Past employers carry no company_id yet. |
Cost at 10,000 rows
LeadOcean costs $0 for the first 1,000 records, $97 on Solo or $497 on Agency for all 10,000. Clay adds its own plan on top.
A hit counts one record. A miss is a 404 and costs nothing (LeadOcean docs, September 2026). Solo is $97 a month and covers 10k enrichments every 5 hours, so 10,000 rows fit in one run. There is no per-record price.
Clay's HTTP API column starts on Growth at $495 a month billed monthly, or $446 billed yearly. It uses one Action per call, and Growth includes 40,000 Actions a month (Clay pricing, September 2026). So 10,000 rows use a quarter of the Actions. Clay Data Credits are only spent if you add its own enrichments.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No HTTP API column | Clay Free or Launch plan | The column is Growth and up. Run the calls from a script and import the CSV instead. |
| 401 on every row | Wrong header | Use x-api-key, not Authorization. |
| 400 on some rows | Blank or non-profile URL | Add a run condition that skips empty cells. |
| 404 on some rows | LeadOcean holds nothing for that person | Expected and free. |
| 402 mid-run | The 1,000 free records are spent | Move to Solo or Agency. |
| 429 errors | Over 5 requests a second on Free | Lower the column's rate limit and honor Retry-After. |
FAQ
Can I enrich a company website URL?
Not with this endpoint. POST /v1/companies/enrich handles companies, with a domain as the input. Use a second column for it.
Does a miss cost anything?
No LeadOcean record. Clay still spends one Action per call, so set an "Only run if" formula that skips blank URL cells (Clay docs, September 2026).
Do I need a card to test it?
No. The free plan has no card and 1,000 records, one-off.
Can I skip Clay?
Yes. Run the curl call above in a script, or export a list with POST /v1/exports. See find email from CSV of names and find email from a YC company list.
Back to all integrations. Plans are on pricing.
Turn your URL list into emails. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →