What you get
Company revenue comes back as part of one company lookup. You send a domain or a LinkedIn company URL and get company_data.company_revenue_in_usd, a banded revenue code, and yearly figures where we hold them. There is no separate revenue endpoint (see all enrichments). Values we do not hold come back as null, never guessed.
| Field | What it is | Example |
|---|---|---|
company_data.company_revenue_in_usd | Annual revenue in US dollars | 38000000 |
company_data.company_revenue_in_usd_code | The same revenue as a banded code | a band code |
company_data.company_financials[] | Yearly revenue and growth, where we have them | one entry per year |
company_data.company_employees | Headcount and a size band, to sanity-check the revenue | 240, "201-500" |
company_data.company_funding | Total raised, last round type, date and year | "Series B" |
company_data.company_name, company_domain | Which company this is | "Acme", "acme.com" |
company_metrics | completion_score and marketability_score | 94, 81 |
meta | Sources, fetched_at, schema leadocean.company.v1 | "leadocean.company.v1" |
Revenue is thin. The docs call it a bonus, not something to filter on. It sits on a small share of records, and 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. With only a name, search companies first, then look up the domain you get back.
Three ways to run it
In the app
Revenue is not an export column. The Exports page at app.leadocean.io exports people, and its column picker lists each person's current company: name, domain, industry and employee range, but no revenue. For revenue, 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"}'This is the sample from the LeadOcean docs, trimmed to the revenue-relevant part. Fields we hold nothing for are left out of the docs sample. A real response has them as null.
{
"success": true,
"data": {
"company_data": {
"company_name": "Acme",
"company_domain": "acme.com",
"company_employees": {
"number_of_employees": 240,
"number_of_employees_code": "201-500"
},
"company_revenue_in_usd": 38000000
},
"company_metrics": { "completion_score": 94, "marketability_score": 81 },
"meta": { "sources": ["own"], "schema": "leadocean.company.v1" }
},
"meta": { "credits": 1, "source": "own" }
}meta.credits: 1 is the cost of the call. GET works too, with domain or linkedin_url as query parameters. Developer detail is on Company Revenue API.
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 its annual revenue, headcount and HQ country." More in Company Revenue over MCP.
What it costs
One company lookup is 1 record, 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.
One catch: a hit with no revenue on file still costs 1 record, because you received a company. You pay for the company, not for the revenue field.
Free gives you 1,000 records, one-off, no card. Pro is $499 a month, flat, with no per-record price.
Worked example: look up 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 docs give no share of those that carry revenue, so we state none. The only way to know for your list is to run it: a sample of a few hundred domains shows your hit rate on the company_revenue_in_usd field before you commit.
To find companies by revenue instead of looking one up, company search has minRevenue and maxRevenue filters in USD. They return only records where we hold a figure. See find companies by revenue.
Accuracy and limits
- Nulls are honest. Unknown revenue is
null. Arrays that hold nothing come back empty, not missing. - Do not filter or score on revenue alone. The docs say it is thinly held. Pair it with headcount and
completion_score. - Banded code. Use the code when you only need a range, and the USD figure when you need a number.
- 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 docs do not say which year the revenue figure refers to or how it is sourced per record. Check
company_financials[]andmeta.fetched_atwhen the year matters.
FAQ
Can I look up revenue by company name?
No. Send a website domain or a LinkedIn company URL. With a name only, search companies first and use the domain from the result.
Does a company with no revenue cost a record?
Yes, if we hold the company. The lookup returns the record with revenue as null, and that is 1 record. A company we hold nothing for is a 404 and costs nothing.
Is revenue available for every company?
No. It is held for a small share of records and is most often missing for small private companies. Treat it as a bonus field.
Can I export revenue as a CSV?
Not from the Exports page. Its columns cover people and their current company, without revenue. Look up companies through the API or an agent, or search by minRevenue and maxRevenue.
Look up 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 →