You get a list of people who commented on a viral LinkedIn post, cut down to the ones who match your buyer, and loaded into a HeyReach campaign. A scraper supplies the commenter profile URLs. LeadOcean does not scrape LinkedIn comments. It enriches each URL, and a small script keeps the buyers and posts them to HeyReach. Clay publishes a template for the same job inside its table builder (September 2026).
How it works
- Pick the post and scrape the commenters. Use any scraper that returns one LinkedIn profile URL per commenter. Save them as
commenters.csv. - Enrich each URL. Call
POST /v1/people/enrichwithlinkedin_url. LeadOcean takes exactly one identifier per call (LeadOcean docs, September 2026). - Qualify. Keep rows where
contact_current_experiences[].job_titlematches your buyer, orprofile_is_decision_makeris true. A 404 means LeadOcean holds nothing and costs nothing. - Add to HeyReach. Post up to 100 leads per request to AddLeadsToCampaignV2 with your
campaignId(HeyReach docs, September 2026). - Check the counts. The response returns
addedLeadsCount,updatedLeadsCountandfailedLeadsCount. Log them per batch.
Configuration
Enrich one commenter. Use a placeholder URL to test.
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"}'Then send the qualified rows to HeyReach. HeyReach authenticates with an X-API-KEY header (HeyReach docs, September 2026). The host is api.heyreach.io; the path answers 401 without a key (checked October 2026).
curl -X POST "https://api.heyreach.io/api/public/campaign/AddLeadsToCampaignV2" \
-H "X-API-KEY: $HEYREACH_API_KEY" \
-H "content-type: application/json" \
-d '{
"campaignId": 12345,
"resumeFinishedCampaign": false,
"resumePausedCampaign": false,
"accountLeadPairs": [{
"linkedInAccountId": 678,
"lead": {
"firstName": "Jane", "lastName": "Doe",
"companyName": "Acme", "position": "VP Sales",
"profileUrl": "https://www.linkedin.com/in/jane-doe",
"emailAddress": "", "location": "", "summary": "", "about": "",
"customUserFields": [{"name": "source_post", "value": "viral_post_1"}]
}
}]
}'Custom field names may use letters, digits and underscores only (HeyReach docs, September 2026).
Field mapping
| LeadOcean field | HeyReach field | Note |
|---|---|---|
profile_data.profile_full_name | firstName, lastName | Split on the first space. |
contact_data.contact_current_experiences[].job_title | position | First entry is the current role. |
contact_data.contact_current_experiences[].company_name | companyName | Same entry as the title. |
profile_data.profile_url | profileUrl | The key HeyReach needs for LinkedIn outreach. |
profile_data.profile_headline | summary | Optional. |
contact_data.contact_emails[].email | emailAddress | Needs reveal_email: true. Check status first. |
Cost at 10,000 rows
10,000 commenters cost LeadOcean at most 10,000 records. The first 1,000 are free for life, and a profile with no match costs nothing. At 50 requests a second on Solo, 10,000 calls take about 200 seconds.
LeadOcean. Free is $0, no card, 5 requests a second. Solo is $97 a month and Agency is $497 a month, with a fair-use pace and no per-record price (LeadOcean pricing).
HeyReach. Growth lists at $79 a month per sender on the monthly view, Agency at $999 and Unlimited at $2,999 (HeyReach pricing, October 2026). 10,000 leads is 100 AddLeads calls. The API allows 300 requests a minute (HeyReach docs, September 2026).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| 404 from LeadOcean | LeadOcean holds nothing for that profile | Skip it. It is free. |
| 402 from LeadOcean | The 1,000 free records are spent | Move to Solo or Agency. |
| 429 from LeadOcean | Over your plan's requests a second | Wait for Retry-After, or slow the loop. |
failedLeadsCount above 0 | Missing profileUrl, or a custom field name with spaces | Use underscores and send the URL. |
| 429 from HeyReach | Over 300 requests a minute | Batch 100 leads per call and pause between calls. |
| Few rows pass the filter | Commenters are mostly peers, not buyers | Tighten the post choice, not the filter. |
FAQ
Does LeadOcean scrape the comments?
No. LeadOcean is a people and company data API. It enriches a LinkedIn URL you already hold. See scrape leads from the live web and enrich them and the lead scrape definition.
Can I qualify by company size?
Yes. Call POST /v1/companies/enrich on the company domain and filter on the result. The same one-record rule applies.
Do I need an email for HeyReach?
No. HeyReach needs the profileUrl for LinkedIn steps. Add the email only if you run email steps, and read email_status first because LeadOcean does not refund bounces.
What if the post has thousands of comments?
Run the loop in batches of 100 and log the HeyReach counts. For the scraping pattern, see how to scrape a directory.
Back to all integrations. More on the pairing: LeadOcean and HeyReach. See pricing.
Turn post commenters into a qualified LinkedIn campaign. Start free.
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →