Lead source

Find companies by location

Filter on hqCountry, country or city, then count the people you can reach. Sizing is free.

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

Filter on hqCountry, country or city, then count the people you can reach. Sizing is free.

Location comes in two kinds. hqCountry is where the company's headquarters sits. country and city are where the person is. Pick the one that matches how you sell.

The filter

FilterTypeExample valuesNote
hqCountryarray of enum["DE"], ["US", "CA"]Company headquarters. ISO 3166-1 alpha-2 code, one of 254 exact strings. Resolve with leadocean_list_enum_values (name country).
countryarray of enum["GB"], ["FR", "NL"]Where the person is. Same 254 codes. Use it for field teams and local events.
cityarray of strings["Austin"], ["Berlin"]City keywords for the person, not a closed list. excludeCity removes cities.

Codes, not names. DE works. Germany does not.

Broader and finer options exist. hqContinent and continent take values like Europe and North America. hqSalesRegion and salesRegion take NORAM, LATAM, EMEA or APAC. hqCity and hqState take keywords for the headquarters, but the free sizing tool cannot count them (it returns unsupported_filters). They still work in a real search.

How many you can reach

Four live counts from leadocean_count_leads, run on 2026-10-01. Each count is mailable people: verified, catch_all_valid or catch_all email, the tool's default. It spent no records.

FiltersMailable people
hqCountry DE, jobLevel C-Team, employeeRange 11-5024,166
country DE, jobLevel C-Team, employeeRange 11-5023,448
country US, city Austin, jobFunction Sales & Business Development, jobLevel VP and Director4,388
hqSalesRegion APAC, jobFunction Information Technology, jobLevel C-Team, employeeRange 201-500451

These are people at matching companies, not a company count. The first two rows differ by 718 because some people at German companies sit in another country.

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 C-level people at companies headquartered in Germany with 11 to 50 employees. Size it first, then show me 25.

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

json
{
  "hqCountry": ["DE"],
  "jobLevel": ["C-Team"],
  "employeeRange": ["11-50"],
  "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 and takes the hq* filters only.

Run it with the API

One flat JSON body to POST /v1/people/search. 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 '{
    "hqCountry": ["DE"],
    "jobLevel": ["C-Team"],
    "employeeRange": ["11-50"],
    "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 '{
    "hqCountry": ["DE"],
    "jobLevel": ["C-Team"],
    "employeeRange": ["11-50"],
    "emailStatus": ["verified", "catch_all_valid", "catch_all"],
    "limit": 1
  }'

data comes back empty and meta.countOnly is true. meta.total stops at 100,000 on the REST API. POST /v1/companies/search takes hqCountry, hqCity, hqState, hqContinent and hqSalesRegion.

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": "germany-c-level-small",
    "filters": {
      "hqCountry": ["DE"],
      "jobLevel": ["C-Team"],
      "employeeRange": ["11-50"]
    },
    "limit": 5000,
    "preset": "search"
  }'

Poll GET /v1/exports/{id}, then download. Prefer clicking? The Exports page in the app 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 ["51-200"]) to pick a company size. See find companies by headcount.
  • Add jobFunction and jobLevel to reach one buyer. Sales & Business Development plus VP and Director is the third count above.
  • Add minLastFundingYear to keep recently funded companies in your region. See find new companies. Size the list without any funding filter, because the free count does not support them.

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

FAQ

Do I use hqCountry or country?

Use hqCountry to target companies based in a place. Use country to target people who work there. A German company can employ someone in Poland, so the two lists overlap but are not the same.

Can I filter by state or city of the headquarters?

Yes, with hqState and hqCity in a search or export. The free count tool does not support them, so size with hqCountry first, then narrow. city (the person's city) can be sized for free.

Are the counts companies or people?

People. Each number is mailable people at companies matching the filters, using the default email statuses. Companies and people are different units, so do not read it as a company count.

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 location 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 →