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
| Filter | Type | Example values | Note |
|---|---|---|---|
companyType | array 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.
| Filters | Mailable people |
|---|---|
companyType Public Company, jobLevel C-Team, hqCountry US | 1,046,688 |
companyType Public Company, jobFunction Finance & Accounting, jobLevel C-Team and VP, hqContinent Europe | 12,681 |
companyType Public Company, employeeRange 201-500 and 501-1000, jobFunction Information Technology, jobLevel Director, hqCountry US | 2,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:
{
"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.
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.
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.
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,hqContinentorhqSalesRegionto pick a region. See find public companies in a region. - Add
jobFunctionandjobLevelto reach one buyer. Finance & Accounting with C-Team and VP is the second count above. - Add
minLastFundingYearto 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 →