Search Lookalikes
X-API-Key — the only required header for this endpoint.Find lookalike companies from either a natural-language description or a set of seed company websites, with optional firmographic filters.
Use it for queries such as:
Healthcare companies building with voice AICompanies that provide customer support software for B2CCompanies that build workflow automation for non technical industries
Or supply 1-10 seed company websites and let OpenFunnel synthesize the query for you:
seed_domains=stripe.com&seed_domains=adyen.com&seed_domains=checkout.com
You can also restrict results to your ICP by applying filters for company size, funding stage, and headquarters country.
Two input modes
At least one of query or seed_domains is required. Both can be combined for a hybrid trait.
- Natural language (
query): describe the kind of company you want. Best when you can articulate the trait in 1-2 sentences. - Seed-based discovery (
seed_domains): pass up to 10 company websites and OpenFunnel uses them to synthesize the lookalike query for you. Best when you can name a few example customers but struggle to phrase what they have in common. - Both together: pass
seed_domainsANDquery— the query becomes a must-have angle layered on top of the seeds (e.g. seeds=[stripe.com, adyen.com] + query=“for SMB merchants” → synthesized trait targets B2B SMB payments).
With seed_domains, the response echoes back the LLM-synthesized derived_query, plus resolved_seed_domains (seeds that landed in our index) and unresolved_seed_domains (seeds we couldn’t find — skipped silently as long as at least one resolved).
Omitting filters
If you omit filters, search runs across all company sizes, funding stages, and supported locations. Use the optional firmographic filters below to restrict results to your ICP.
Choosing a search strategy: precision vs. recall
Use the search_type parameter to pick how aggressively the API filters:
agentic— high precision. Tighter results — a smaller, more obvious set of companies that explicitly describe themselves with your trait. Fastest path (~2-4s).semantic(default) — high recall. Wider net. Includes companies that don’t use your exact phrasing but are conceptually adjacent. Slower but better when you want the long tail.
Stick with semantic (default) when your trait is fuzzy or conceptual, or when you want adjacent / near-fit companies in addition to obvious matches. Switch to agentic when your query has a clear category (B2B customer support software, HVAC home services, LLM evaluation tools) and you want a tight, high-confidence shortlist fast.
Credits
1 credit per company returned. Empty result sets are free. The exact amount billed is echoed back in credits_consumed on the response. The LLM trait synthesis used by seed_domains is included — no extra charge.
Example — semantic (default, high recall)
This request finds 100 healthcare companies building with voice AI in the US, with 50-500 employees, and funded at Series A or Series B.
curl -sS -G "https://api.openfunnel.dev/api/v1/account/search-lookalikes" \
-H "X-API-Key: YOUR_API_KEY" \
--data-urlencode "query=Healthcare companies building with voice AI" \
--data-urlencode "limit=100" \
--data-urlencode "min_employees=50" \
--data-urlencode "max_employees=500" \
--data-urlencode "funding_stages=Series A" \
--data-urlencode "funding_stages=Series B" \
--data-urlencode "locations=USA"
Example — agentic (high precision, fastest)
For crisp queries that mention specific software categories or industries, opt into the agentic backend to get a tight, high-confidence set quickly.
curl -sS -G "https://api.openfunnel.dev/api/v1/account/search-lookalikes" \
-H "X-API-Key: YOUR_API_KEY" \
--data-urlencode "query=B2B customer support software" \
--data-urlencode "search_type=agentic" \
--data-urlencode "limit=10" \
--data-urlencode "min_employees=50" \
--data-urlencode "max_employees=500" \
--data-urlencode "locations=USA"
Example — seed-based discovery
Pass a handful of example companies and OpenFunnel will figure out what they have in common, then find more like them.
curl -sS -G "https://api.openfunnel.dev/api/v1/account/search-lookalikes" \
-H "X-API-Key: YOUR_API_KEY" \
--data-urlencode "seed_domains=stripe.com" \
--data-urlencode "seed_domains=adyen.com" \
--data-urlencode "seed_domains=checkout.com" \
--data-urlencode "limit=25"
The response includes a derived_query field with the LLM-synthesized trait so you can see exactly what was searched.
Example — seeds + query (must-have angle)
Combine seeds with a free-form query to constrain the synthesized trait. The seeds set the category; the query sets the angle.
curl -sS -G "https://api.openfunnel.dev/api/v1/account/search-lookalikes" \
-H "X-API-Key: YOUR_API_KEY" \
--data-urlencode "seed_domains=stripe.com" \
--data-urlencode "seed_domains=adyen.com" \
--data-urlencode "query=focused on SMB merchants" \
--data-urlencode "limit=25"
Headers
Query Parameters
Describe the kinds of companies you want to find. Required unless seed_domains is provided. When both are supplied, the query is used as a must-have angle on top of the trait synthesized from the seeds.
1 - 200Up to 10 seed company websites/domains (e.g. stripe.com, https://www.adyen.com). When provided, OpenFunnel uses them to synthesize the lookalike query for you. Protocol / www. prefixes are normalized automatically. Unresolved seeds are skipped silently as long as at least one resolves. Repeat the parameter to send multiple values.
10Maximum number of companies to return. Default 10, max 5000. Practical values for interactive use are <=100; values >=500 are intended for batch / data-extraction workflows where minutes-long latency is acceptable (LLM trait validation runs on every candidate).
1 <= x <= 5000Minimum employee count, inclusive.
x >= 0Maximum employee count, inclusive.
x >= 0Funding stages to include. Repeat the parameter to send multiple values.
Pre-Seed, Seed, Series A, Series B, Series C, Series D, Series E, Series F, Series G, Series H, Acquired, Private, Public Headquarters country filter using ISO 3166-1 alpha-3 codes (e.g. USA, GBR, IND, DEU). Top 30 by company volume: USA, GBR, CHN, FRA, IND, DEU, BRA, BEL, ESP, CAN, AUS, NLD, ITA, NOR, ZAF, MEX, TUR, CHE, ARE, POL, SWE, IDN, ARG, PAK, COL, PRT, JPN, CHL, NGA, AUT. Pass EU to expand to all 27 EU member states. Repeat the parameter to send multiple values. Full list of 250 codes via GET /api/v2/tech/country-options (under Agent Helpers).
Retrieval strategy. Pick based on whether you want high precision (a tight set of obvious matches) or high recall (a wider net that includes near-fits and adjacent companies).
agentic— high precision. Returns a smaller, tighter set of companies that explicitly self-describe with your trait. Latency-optimized — typically 2-4s.semantic(default) — high recall. Surfaces a broader candidate pool including companies that don't use your exact phrasing but are conceptually similar. Slower but better when you want to cast a wide net or your trait is fuzzy.
Rule of thumb: start with agentic if you know roughly what category you want; switch to semantic if results feel too narrow or you want the long tail.
semantic, agentic Response
Successful Response
Response for the public lookalike search.
Original user query. May be an empty string when seed_domains was provided without a query.
Matching companies
Number of results returned
Credits charged for this response. 1 credit per company returned. The LLM trait synthesis used by seed_domains is included — no extra charge.
When seed_domains was provided, this is the LLM-synthesized trait query that was actually run against the lookalike pipeline. Null for pure-query requests.
Seed input strings that matched a company in the OpenFunnel companies index. Null when seed_domains was not provided.
Seed input strings that could not be resolved. Skipped silently as long as at least one seed resolved. Null when seed_domains was not provided.