What you get
Company enrichment returns one company record from a website domain or a LinkedIn company URL. The schema is leadocean.company.v1, with three blocks plus meta. Values we do not hold come back as null, never guessed.
| Field | What it is | Example |
|---|---|---|
company_data.company_name | Name | "Acme" |
company_data.company_domain | Website domain | "acme.com" |
company_data.company_description | Short description | "Industrial sensors for warehouses." |
company_data.company_industries[] | Industry names with a priority | "Manufacturing" |
company_data.company_employees | Headcount, a size band code, min and max | 240, "201-500" |
company_data.company_revenue_in_usd | Revenue, with a banded code | 38000000 |
company_data.company_funding | Total raised, last round type, date and year, lead investors | "Series B" |
company_data.company_profile | Founded date, ownership type, publicly traded | "2014" |
company_data.company_primary_address | City, state, country, country code | "Austin", "US" |
company_data.company_linkedin_followers | LinkedIn followers | 18250 |
company_data.company_number_of_profiles | People we hold at the company | 312 |
company_data.company_number_of_decision_makers | Of those, flagged decision makers | 41 |
company_detected_technologies[] | Product, vendor, category, first and last detected dates | "Cloudflare", "2026-08-21" |
company_metrics | completion_score and marketability_score | 94, 81 |
meta | Sources, source ids, fetched_at, schema | "leadocean.company.v1" |
Revenue and funding are thin. The docs call them a bonus, not something to filter on. Absent is the normal case for small private companies.
What you send
| Input | Required | Note |
|---|---|---|
domain | One of the two | Website domain, for example acme.com. Preferred key. |
linkedin_url | One of the two | LinkedIn company page URL. |
There is no lookup by company name. If you only have a name, search companies first, then enrich the domain you get back.
Three ways to run it
In the app
Company lookup is not an export column. The Exports page at app.leadocean.io exports people, and its column picker includes each person's current company: name, domain, industry, LinkedIn URL, website and employee range. For one-by-one lookups, use the API or an agent.
With the API
curl -X POST "https://api.leadocean.io/v1/companies/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "content-type: application/json" \
-d '{"domain":"acme.com"}'A hit returns success: true, the data object above and meta.credits: 1. GET works too, with domain or linkedin_url as query parameters.
From an AI agent
The MCP tool is leadocean_get_company. It takes domain or linkedin_url and returns the same record. Try: "Look up acme.com and tell me headcount, HQ country and whether they run Cloudflare." More in Enrich Company over MCP, or install the Enrich Company skill. For a batch workflow, see prompts to enrich company records.
What it costs
One company lookup is 1 record. It costs the same whether you came in by domain or LinkedIn URL. A 404, meaning we hold nothing for that company, costs nothing. Rejected requests (429, 402, 503) are never metered either.
Free gives you 1,000 records, one-off, no card. Pro is $499 a month, flat, with no per-record price.
Worked example: enrich 10,000 companies and 9,200 are found. That is 9,200 records, and the 800 misses cost nothing. Free covers the first 1,000 once. On Pro the month is $499 whatever the count, inside fair use. See pricing.
Coverage
LeadOcean holds 63M companies (measured September 2026). The website technology data covers about 7.8M crawled sites, so company_detected_technologies is empty for companies outside that set. The same database holds 693M people, and each company record counts how many of them sit there.
Accuracy and limits
- Nulls are honest. Unknown values are
null. Arrays that hold nothing come back empty, not missing. - Funding and revenue are sparse. Do not build a filter or a score on them alone.
- Tech stack has dates. Each technology carries first and last detected dates, so you can tell a live tool from a retired one.
- Quality scores.
completion_scoresays how complete the record is.marketability_scoresays how reachable the company is. - Errors. 400 validation, 401 bad key, 403 missing scope, 404 not in our data, 429 too fast, 503 store unreachable. Errors use one shape:
success: falseand anerrorobject. - Rate limit. 100 requests per second per key, on every plan.
- Gap. The record carries
company_phones[]andcompany_emails[], but the docs give no verification status for them. For people, use the email_status values on the person record.
FAQ
What do I need to enrich a company?
A website domain or a LinkedIn company page URL. Domain is preferred. A company name alone does not work.
Does a failed lookup use my records?
No. A 404 costs nothing, and neither does any rejected request. You pay 1 record per company you receive.
Can I get the people at the company too?
Yes. GET /v1/companies/{domain}/people lists the people we hold there, stopping at 10,000 rows. Each person returned is 1 record.
Is the tech stack live?
It is detected from the company website, with first and last detected dates on each entry. Coverage is about 7.8M crawled sites, so check the dates before you trust a tool as current.
Enrich your first 1,000 companies free
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →