gtm.devdocs
find companies

Company search API

search_companies

2.5 credits / company returned

Firmographic company search over the company index (~9M companies), ranked by LinkedIn follower count. Supports complex targeting: combine multiple industries/categories to INCLUDE (they OR together — a company matching any of them qualifies) with industries_exclude/categories_exclude to SUBTRACT, plus employee size range, HQ country/region/city, a name substring, has_domain, funding graph filters (stage, total raised, funding date range, investor names), and detected tech stack (must use / must not use). Funding and investor filters restrict to the subset of companies with a funding-graph record (~40% coverage) — an honest data limit. At least one filter is required. Paginate with limit/offset (default 25 per page); the filters echo shows the canonical labels actually applied and the page object tells you if more rows exist. A best-effort `total` (full matching-universe count) rides along when it resolves within a short bound — omitted for broad filters rather than stalling the call; use size_tam with the same filters for an unbounded exact count.

Get an API key 1,000 free live credits · no card

Parameters

paramtypedescription
ads_countriesstring[]Ad MARKETS the ads run in (ISO-2 like "IN", "US", or names) — where the company advertises, distinct from HQ country. Empty = every tracked market. Optional.
ads_keywordsstring[]Ad-topic keywords — the company's ADS must mention one (text search of the ad library). Empty = any ad. Optional.
ads_platformsstring[]Ad platforms: "meta" and/or "linkedin". Empty = either. Optional.
categoriesstring[]Category keywords to INCLUDE — fuzzy-resolved against the granular category vocabulary and OR-combined with any industries. Categories cover the subset of companies carrying category tags. Optional.
categories_excludestring[]Category keywords to EXCLUDE — fuzzy-resolved against the category vocabulary; companies tagged with a matching category are always subtracted (companies without category tags are dropped too, matching product semantics). Optional.
citystringHQ city (e.g. "Bengaluru", "Austin"). Optional.
countrystringHQ country — name or ISO-2 code (e.g. "India", "US"). Optional.
funded_afterstringOnly companies whose LAST funding round closed on/after this ISO date (YYYY-MM-DD). Optional.
funded_beforestringOnly companies whose LAST funding round closed on/before this ISO date (YYYY-MM-DD). Optional.
funding_stagestring[]Funding-graph stage(s) to INCLUDE, OR together (e.g. ["series_b"], ["seed","pre_seed"]). Free-form (not a fixed enum) — common values: seed, pre_seed, angel, series_a..series_e, venture, private_equity, debt_financing, grant. Optional.
has_domainbooleanOnly companies with a known website domain. Optional.
industriesstring[]Industry keywords to INCLUDE. Each entry fuzzy-resolves against BOTH the broad industry vocabulary and the granular category vocabulary; all matches OR together into one include group (a company matching any qualifies). Example: ["payroll", "hr software"]. Optional.
industries_excludestring[]Industry keywords to EXCLUDE. Each entry fuzzy-resolves against the industry vocabulary; matching companies are always subtracted from the results (companies with no industry on file are kept). Optional.
industrystringSingle industry keyword — shorthand for industries: [..]. Matched against BOTH the broad industry vocabulary and the more granular category vocabulary (e.g. "software", "payroll", "warehouse automation") — companies match on either. Optional.
investorsstring[]Investor / VC / accelerator names to INCLUDE, OR together — fuzzy-resolved against the investor-name vocabulary (e.g. ["Y Combinator"], ["Sequoia"]). Restricts to companies with a funding-graph record. Optional.
limitintegerCompanies per page (default 10, max 100). COST: each company returned costs 2.5 credits (plus a 0.1 base fee per call), so this limit sets the price of the call — ask for what you need.
max_fundingnumberMaximum total funding raised, USD. Optional.
min_fundingnumberMinimum total funding raised, USD. Optional.
modelsstring[]Business-model labels — our GTM model axis, ANDed with everything else ("how they sell"): D2C, SaaS, Marketplace, Ecommerce, B2B, B2C, Subscription, AI-native, PLG / Product-led, Bootstrapped, VC-backed… THE precise filter for model concepts ("d2c companies" → models: ["D2C"]). Optional.
models_excludestring[]Business-model labels to EXCLUDE. Optional.
name_containsstringSubstring of the company name (e.g. "labs"). Optional.
offsetintegerRows to skip for pagination (default 0; offset+limit must not exceed 5000).
regionstringHQ state/region as stored on the company index (e.g. "California", "Karnataka"). Optional.
require_fundedbooleanOnly companies that have raised any funding at all. Ignored when min_funding is also set above 0. Optional.
running_adsbooleanOnly companies ACTIVELY RUNNING ADS (Meta/LinkedIn ad libraries — cached index covers India on both platforms and the US on LinkedIn). Compose with ads_countries / ads_platforms / ads_keywords. Optional.
sectorsstring[]GTM sector labels to INCLUDE — our own 117-label vertical taxonomy (e.g. "SaaS / Cloud", "D2C / Consumer Brands", "Payments & Fintech", "EdTech & E-Learning"). OR-combined with industries/categories. Case/spacing-forgiving. Optional.
sectors_excludestring[]GTM sector labels to EXCLUDE. Optional.
size_rangestringEmployee size bucket, exact values: "1 employee", "2-10 employees", "11-50 employees", "51-200 employees", "201-500 employees", "501-1,000 employees", "1,001-5,000 employees", "5,001-10,000 employees", "10,001+ employees". Compact forms like "51-200" or "1001-5000" are normalized. Optional.
tech_notstring[]Detected technologies the company must NOT use (NONE of these). Same resolution as tech_uses. Optional.
tech_sourcestring: stack | jobs | bothWhich detection signal tech_uses/tech_not check: "stack" (website tech-stack scan, default), "jobs" (mentioned in the company's LinkedIn job postings), or "both" (either counts as a match). Optional.
tech_usesstring[]Detected technologies the company MUST use (ALL of these), e.g. ["salesforce"] or ["salesforce","hubspot"]. Resolved against the tech-detection vocabulary (exact name preferred, fuzzy fallback). Optional.

Call it from your agent (MCP)

Connect once and search_companies appears in your agent’s toolbox next to every other gtm.dev tool. Claude Code:

claude mcp add --transport http gtm https://mcp.gtm.dev \
  --header "Authorization: Bearer YOUR_API_KEY"

Under the hood, the client sends:

curl -X POST https://mcp.gtm.dev \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
       "params":{"name":"search_companies","arguments":{"industries":["payroll","hr software"],"industries_exclude":["staffing"],"country":"US","limit":50}}}'

other clients (cursor, claude desktop, openai agents sdk, langchain): mcp setup

Call it over REST

curl -X POST https://api.gtm.dev/v1/tools/search_companies \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"industries":["payroll","hr software"],"industries_exclude":["staffing"],"country":"US","limit":50}'

Errors (401, 402, 429, 400) are listed in the REST reference. Calls that error are not billed — see pricing.

Related tools