Lead source

Find companies by revenue

Filter on minRevenue and maxRevenue in USD, then size the list around it. Sizing is free.

Get your free API key →Free to start. No credit card. 1,000 records to spend whenever you like.

Filter on minRevenue and maxRevenue in USD, then size the list around it. Sizing is free.

Revenue is a hard number filter, not a band you pick from a list. It is also thinly held, so it works best next to headcount and industry.

The filter

FilterTypeExample valuesNote
minRevenueinteger, USD10000000Annual revenue floor. Whole dollars, no currency symbol or "10M".
maxRevenueinteger, USD50000000Annual revenue ceiling. Use both for a range.

Both filters exist on people search and on company search. Neither is an enum, so there is no list to resolve.

The catch is coverage. A record with no revenue on file is never returned, in either direction. A narrow range returns fewer companies than the headcount filters would. The company-level field is described on the company revenue page.

How many you can reach

leadocean_count_leads does not support minRevenue or maxRevenue. On 2026-10-01 it returned unsupported_filters for both, with no total. The free count cannot apply revenue, so size the audience without it and let revenue narrow the list at search time.

What the tool can size is the audience before revenue narrows it. Three live counts, run on 2026-10-01, mailable people only (verified, catch_all_valid or catch_all email, the tool's default). They spent no records.

Filters (revenue not applied)Mailable people
jobLevel C-Team, country US, employeeRange 51-200440,914
jobFunction Finance & Accounting, jobLevel VP and Director, hqCountry GB, employeeRange 1001-5000, 5001-10000 and 10001+16,618
industry Computer Software, seniority founder, employeeRange 1-101,621

These are people at matching companies, not a company count. Adding a revenue range gives a smaller number, never a larger one.

Run it from an AI agent

Connect the MCP server at https://api.leadocean.io/mcp (OAuth sign-in, no key pasted), then ask in plain words.

Find CFOs and VP Finance at UK companies with at least $100M in annual revenue. Show me 25.

The agent calls leadocean_search_leads with this:

json
{
  "minRevenue": 100000000,
  "jobFunction": ["Finance & Accounting"],
  "jobLevel": ["VP", "C-Team"],
  "hqCountry": ["GB"],
  "limit": 25
}

The search costs 1 record per person returned. Use leadocean_search_companies when you want companies, not people. It costs 1 record per company.

Run it with the API

One flat JSON body to POST /v1/people/search. Revenue is an integer in USD. Other filters are arrays of strings.

bash
curl -X POST "https://api.leadocean.io/v1/people/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "minRevenue": 10000000,
    "maxRevenue": 50000000,
    "jobLevel": ["C-Team"],
    "country": ["US"],
    "limit": 25
  }'

For the free sizing call, put count=true in the URL (not the body) and set limit to 1.

bash
curl -X POST "https://api.leadocean.io/v1/people/search?count=true" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "minRevenue": 10000000,
    "maxRevenue": 50000000,
    "jobLevel": ["C-Team"],
    "country": ["US"],
    "limit": 1
  }'

data comes back empty and meta.countOnly is true. meta.total stops at 100,000. POST /v1/companies/search takes the same two filters.

Export the list

POST /v1/exports takes the same filters inside a filters object. One export is up to 50,000 rows, and an account can export 500,000 rows a day.

bash
curl -X POST "https://api.leadocean.io/v1/exports" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "us-c-level-10m-50m",
    "filters": {
      "minRevenue": 10000000,
      "maxRevenue": 50000000,
      "jobLevel": ["C-Team"],
      "country": ["US"]
    },
    "limit": 5000,
    "preset": "search"
  }'

Poll GET /v1/exports/{id}, then download. The Exports page at app.leadocean.io has the filter builder, a column picker, the record price before you start, and a CSV download.

Combine it

  • Add employeeRange (for example ["201-500"]) to cross-check revenue against size. See find companies.
  • Add jobFunction and jobLevel to reach one buyer, such as Finance & Accounting plus VP and Director.
  • Add minLastFundingYear (for example 2025) to keep recently active companies. See find new companies.

More ways to build a company list are on the find companies hub.

FAQ

What currency is revenue in?

US dollars, as a whole-number integer. Convert other currencies yourself before you send the filter.

Why does a revenue range return fewer companies than I expected?

Only records with a revenue figure on file can match. Revenue is held for a small share of companies, most often missing for small private ones. Add employeeRange as a second route to the same segment.

Can I look up one company's revenue instead?

Yes. The company lookup returns company_revenue_in_usd for a domain. See company revenue.

What does it cost?

Sizing is free. A search costs 1 record per person or company returned. The free plan has 1,000 records, one-off, no card. Pro is $499 a month. See pricing.

Size your revenue-filtered list for free, then pull it

Free to start. No credit card. 1,000 records to spend whenever you like.

Get your free API key →