Lead source

Find public companies

Filter on companyType "Public Company", then count the people you can reach at those companies. Sizing is free.

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

Filter on companyType with the value Public Company, then count the people you can reach at those companies. Sizing is free.

The filter reads the legal type recorded on a company profile. Pair it with size, region and a buyer role to turn it into a usable list.

The filter

FilterTypeExample valuesNote
companyTypearray of enum["Public Company"], ["Public Company", "Privately Held"]One of 10 exact strings. Case matters. Resolve with leadocean_list_enum_values (name company_type).

The 10 values are Educational, Educational Institution, Government Agency, Nonprofit, Partnership, Privately Held, Public Company, Self-Employed, Self-Owned and Sole Proprietorship.

This is a type label, not a stock-exchange feed. There is no ticker or exchange filter on the company search, so you cannot slice by listing venue. Slice by hqCountry, industry or employeeRange instead.

How many you can reach

Three live counts from leadocean_count_leads, run on 2026-10-01. Each count is mailable people at matching companies, not a company count. They use the tool's default email statuses (verified, catch_all_valid or catch_all). No records were spent.

FiltersMailable people
companyType Public Company, jobLevel C-Team, hqCountry US1,046,688
companyType Public Company, jobFunction Finance & Accounting, jobLevel C-Team and VP, hqContinent Europe12,681
companyType Public Company, employeeRange 201-500 and 501-1000, jobFunction Information Technology, jobLevel Director, hqCountry US2,438

The first number is large because the label covers every company a profile marks as public, including subsidiaries and small listed firms. Add employeeRange early.

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.

List public companies in the US with 201 to 1,000 employees. Size the IT directors there first, then show me 25 companies.

The agent counts with the free tool, then calls leadocean_search_companies with this:

json
{
  "companyType": ["Public Company"],
  "employeeRange": ["201-500", "501-1000"],
  "hqCountry": ["US"],
  "limit": 25
}

The search costs 1 record per company returned. Use leadocean_search_leads with the same filters plus jobFunction and jobLevel when you want people.

Run it with the API

One flat JSON body to POST /v1/companies/search. Filters are arrays of strings.

bash
curl -X POST "https://api.leadocean.io/v1/companies/search" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "companyType": ["Public Company"],
    "employeeRange": ["201-500", "501-1000"],
    "hqCountry": ["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/companies/search?count=true" \
  -H "x-api-key: $LEADOCEAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "companyType": ["Public Company"],
    "employeeRange": ["201-500", "501-1000"],
    "hqCountry": ["US"],
    "limit": 1
  }'

data comes back empty and meta.countOnly is true. meta.total stops at 100,000 on the REST API. For people at these companies, send the same filters to POST /v1/people/search.

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": "public-co-it-directors-us",
    "filters": {
      "companyType": ["Public Company"],
      "employeeRange": ["201-500", "501-1000"],
      "jobFunction": ["Information Technology"],
      "jobLevel": ["Director"],
      "hqCountry": ["US"]
    },
    "limit": 2000,
    "preset": "search"
  }'

Poll GET /v1/exports/{id}, then download. Prefer clicking? 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 hqCountry, hqContinent or hqSalesRegion to pick a region. See find public companies in a region.
  • Add jobFunction and jobLevel to reach one buyer. Finance & Accounting with C-Team and VP is the second count above.
  • Add minLastFundingYear to keep companies with a recent round, or compare with find new companies for recently founded ones.

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

FAQ

Is companyType the same as being listed on an exchange?

No. It is the legal type on the profile, and Public Company is one of 10 values. There is no ticker or exchange filter, so check a listing in your own source before you rely on it.

Why is the US count over a million?

It counts mailable people, not companies. Public companies employ many C-level contacts each, and the label includes subsidiaries. Narrow with employeeRange, industry or jobFunction.

Can I get executive compensation or financials?

No. LeadOcean returns who works at the company and how to reach them, with company fields such as headcount and revenue ranges. It is a contact and company database, not a filings feed.

What does it cost?

Counting is free, as are list_filters and list_enum_values. 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 public company 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 →