Firmographic data says who a company is. Technographic data says what it runs. Combine them in one filter set and you get a list that is the right size and has the right stack.
This guide builds that list in three calls: size it for free, pull the companies, then pull the people.
TL;DR
- Put firmographic filters (country, headcount) and a technology filter in the same request. Count first, because counts are free.
- Takes about 20 minutes and spends about 60 records on the free plan. The 1,000 free records cover it many times over.
- Technology data comes from a crawl of about 7.8M company websites, so it covers a slice of the 67M companies, not all of them.
Prerequisites
- A LeadOcean API key from app.leadocean.io. Free works: 1,000 records, no card.
- The key in your shell as
$LEADOCEAN_API_KEY. curlandjq, or the LeadOcean MCP server athttps://api.leadocean.io/mcpin a client that supports MCP.
export LEADOCEAN_API_KEY="your-key-here"Step 1: Pick the technology filter
Use technologyCategories when you care what a tool is for. Use technologies when you need one product by name.
A category such as Marketing automation matches every tool of that kind, so you do not list vendors one by one. The list has 105 categories, and the values are exact strings. Look them up before you guess.
curl -s "https://api.leadocean.io/v1/enums" \
-H "x-api-key: $LEADOCEAN_API_KEY" | jq 'keys'In the MCP server the same lookup is the free leadocean_list_enum_values tool with name: "tech_category". Searching it for "auto" returns Marketing automation, which the crawl labels at 301,981 companies (crawl of 2026-09-07).
Step 2: Size the company list for free
Send the firmographic and technographic filters together to the company count endpoint. It costs no records and returns an exact total.
curl -s "https://api.leadocean.io/v1/companies/count" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-G \
--data-urlencode 'technologyCategories=Marketing automation' \
--data-urlencode 'employeeRange=51-200,201-500' \
--data-urlencode 'hqCountry=US'List filters take comma-separated values on a GET. Check the names against GET /v1/filters if a call rejects one. If the total is under 100, loosen a filter. If it is over 10,000, tighten one, because a single search pages to 10,000 rows (meta.depthCapped).
The MCP tool leadocean_count_companies does the same thing and adds breakdowns by industry, headcount band, HQ country and HQ state.
Step 3: Pull a sample of companies
Now spend records on a small page to check the match. The search body is flat JSON, filters are arrays, and limit runs from 1 to 100.
curl -s -X POST "https://api.leadocean.io/v1/companies/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"technologyCategories": ["Marketing automation"],
"employeeRange": ["51-200", "201-500"],
"hqCountry": ["US"],
"limit": 25
}' | jq '.meta, (.data | length)'That page is 25 records. Read a few rows before you pull more. If the stack looks wrong for your offer, change the category now, not after 10,000 rows.
To page on, pass the nextCursor from meta as cursor in the next body.
Step 4: Find the buyers at those companies
Add person filters to the same company filters. The people search accepts them together, so you do not have to join two lists yourself.
curl -s -X POST "https://api.leadocean.io/v1/people/search" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"technologyCategories": ["Marketing automation"],
"employeeRange": ["51-200", "201-500"],
"hqCountry": ["US"],
"jobLevel": ["VP", "Director"],
"jobFunction": ["Advertising & Marketing"],
"limit": 25
}'Enum values are exact strings. VP and Director are job levels, and Advertising & Marketing is a job function. A wrong string gives an empty result, not an error.
Size this call free first. In the MCP server, leadocean_count_leads takes the same filters and counts only mailable people by default. It also returns distinctCompanies, so you can see how many employers the people span.
Step 5: Enrich the people you will contact
Search returns the profile. Enrich returns the contact data. Enrich takes exactly one of linkedin_url, email, phone or person_id.
curl -s -X POST "https://api.leadocean.io/v1/people/enrich" \
-H "x-api-key: $LEADOCEAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{"person_id": "PERSON_ID_FROM_SEARCH", "reveal_email": true}'An enrichment that finds nobody is a 404 and costs nothing. Read email_status before you send, because bounced emails are not refunded.
For a list, skip the loop. POST /v1/exports takes up to 50,000 rows a request and 500,000 a day, and the app at app.leadocean.io has an Exports page with the same filters and a price preview. Bulk CSV export is not on Free.
What you get
These are real free-tool results from 2026-10-21, with no records spent.
Company count: technologyCategories: Marketing automation, employeeRange: 51-200 and 201-500, hqCountry: US.
{
"total": 11746,
"totalIsExact": true,
"facets": {
"employee_range": [
{"value": "51-200", "count": 9110},
{"value": "201-500", "count": 2636}
],
"hq_state": [
{"value": "California", "count": 1915},
{"value": "New York", "count": 1044},
{"value": "Texas", "count": 860}
]
},
"credits": 0
}People count: the same company filters, plus jobLevel: VP, Director and jobFunction: Advertising & Marketing. The default counts people with a verified, catch_all_valid or catch_all email.
{
"total": 5071,
"totalAll": 15598,
"distinctCompanies": 2335,
"credits": 0
}So 11,746 companies match, and 5,071 mailable VPs and Directors of marketing work at 2,335 of them. The 15,598 in totalAll is the same filters with no email condition.
The industry breakdown of the same count puts 771 of them in Software Development. Adding industry: Computer Software, an older label, drops the total to 9. Combined filters cut fast, so count before you pull.
A search page comes back in this shape (response shape from the API reference, placeholder values):
{
"data": [
{"company_data": {"company_name": "Acme", "company_domain": "acme.com"}}
],
"meta": {"count": 25, "nextCursor": "<opaque cursor>"}
}Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| 401 | Missing or wrong x-api-key header | Check $LEADOCEAN_API_KEY is exported and sent as x-api-key. |
| 429 | Requests above the plan's rate limit (5 a second on Free, 200 on Agency) | Wait for the Retry-After header, then retry. Batch your calls. |
| 402 | The 1,000 free records are spent | Upgrade to Solo ($97 a month) or Agency ($497 a month). Counts stay free. |
Empty data and a total of 0 | A filter value is not an exact string, or the filters are too tight | Look the value up in GET /v1/enums, then loosen one filter. |
meta.depthCapped is true | One search paged to 10,000 rows | Narrow the filters and run a second search. |
| Export refused | Over 50,000 rows a request or 500,000 a day | Split the export by country or headcount band. |
FAQ
What is the difference between firmographic and technographic data?
Firmographic data describes the company: industry, headcount, location, funding and revenue. Technographic data describes the software it runs, such as its marketing automation or CRM. You filter on the first to find the right company and on the second to find the right moment.
How much of the database has technology data?
About 7.8M companies were crawled for technology, against 67M companies in total. A technology filter searches that crawled slice only. The crawl behind these counts ran on 2026-09-07, and the whole dataset refreshes monthly.
Should I filter by category or by product name?
Start with a category. It catches every tool of that kind and survives a vendor switch. Use technologies when your offer only works with one named product.
Do technology filters work on people search?
Yes. Company filters, technology included, work on both company search and people search, so one request returns the right people at the right companies.
Does the count cost records?
No. GET /v1/companies/count, leadocean_count_companies and leadocean_count_leads are free, however many times you run them.
Next steps: see prompts for technographic data, compare technographic data providers and firmographic data providers, and check pricing. More guides are in the blog hub.
Build your first technographic list in minutes
Free to start. No credit card. 1,000 records to spend whenever you like.
Get your free API key →