Skip to main content
GET
/
api
/
v1
/
account
/
search-lookalikes
Search Lookalikes
curl --request GET \
  --url https://api.openfunnel.dev/api/v1/account/search-lookalikes \
  --header 'X-API-Key: <x-api-key>'
{
  "query": "<string>",
  "results": [
    {
      "name": "<string>",
      "domain": "<string>",
      "linkedin_url": "<string>",
      "headquarters": "<string>",
      "company_size": "<string>",
      "match_reason": "<string>"
    }
  ],
  "total": 123,
  "credits_consumed": 0,
  "derived_query": "<string>",
  "resolved_seed_domains": [
    "<string>"
  ],
  "unresolved_seed_domains": [
    "<string>"
  ]
}

Headers

X-API-Key
string
required

Query Parameters

query
string | null

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.

Required string length: 1 - 200
seed_domains
string[]

Up 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.

Maximum array length: 10
limit
integer
default:10

Maximum 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).

Required range: 1 <= x <= 5000
min_employees
integer

Minimum employee count, inclusive.

Required range: x >= 0
max_employees
integer

Maximum employee count, inclusive.

Required range: x >= 0
funding_stages
enum<string>[]

Funding stages to include. Repeat the parameter to send multiple values.

Available options:
Pre-Seed,
Seed,
Series A,
Series B,
Series C,
Series D,
Series E,
Series F,
Series G,
Series H,
Acquired,
Private,
Public
locations
string[]

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).

search_type
enum<string>
default:semantic

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).

  • agentichigh 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.

Available options:
semantic,
agentic

Response

Successful Response

Response for the public lookalike search.

query
string
required

Original user query. May be an empty string when seed_domains was provided without a query.

results
InstantTraitSearchResult · object[]
required

Matching companies

total
integer
required

Number of results returned

credits_consumed
integer
default:0

Credits charged for this response. 1 credit per company returned. The LLM trait synthesis used by seed_domains is included — no extra charge.

derived_query
string | null

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.

resolved_seed_domains
string[] | null

Seed input strings that matched a company in the OpenFunnel companies index. Null when seed_domains was not provided.

unresolved_seed_domains
string[] | null

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.