TAM sizing API
size_tam
1 credit / callCount how many companies in the company index (~9M companies) match a firmographic filter set — the TAM behind a search_companies page. Takes the same filters as search_companies (at least one required), including the multi include/exclude industry and category lists (includes OR together, excludes always subtract), funding graph filters (stage, total raised, funding date range, investor names), and detected tech stack (must use / must not use); returns {count, filters} with the canonical filters actually applied. Funding and investor filters restrict to the subset of companies with a funding-graph record (~40% coverage) — an honest data limit, not a bug.
Parameters
| param | type | description |
|---|---|---|
| categories | string[] | 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_exclude | string[] | 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. |
| city | string | HQ city (e.g. "Bengaluru", "Austin"). Optional. |
| country | string | HQ country — name or ISO-2 code (e.g. "India", "US"). Optional. |
| funded_after | string | Only companies whose LAST funding round closed on/after this ISO date (YYYY-MM-DD). Optional. |
| funded_before | string | Only companies whose LAST funding round closed on/before this ISO date (YYYY-MM-DD). Optional. |
| funding_stage | string[] | 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_domain | boolean | Only companies with a known website domain. Optional. |
| industries | string[] | 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_exclude | string[] | Industry keywords to EXCLUDE. Each entry fuzzy-resolves against the industry vocabulary; matching companies are always subtracted from the count (companies with no industry on file are kept). Optional. |
| industry | string | Single 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. |
| investors | string[] | 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. |
| max_funding | number | Maximum total funding raised, USD. Optional. |
| min_funding | number | Minimum total funding raised, USD. Optional. |
| models | string[] | Business-model labels — our GTM model axis, ANDed with everything else ("how they sell"): D2C, SaaS, Marketplace, Ecommerce, Franchise, Subscription, AI-native, PLG / Product-led… THE precise filter for model concepts. Optional. |
| models_exclude | string[] | Business-model labels to EXCLUDE. Optional. |
| name_contains | string | Substring of the company name (e.g. "labs"). Optional. |
| region | string | HQ state/region as stored on the company index (e.g. "California", "Karnataka"). Optional. |
| require_funded | boolean | Only companies that have raised any funding at all. Ignored when min_funding is also set above 0. Optional. |
| sectors | string[] | GTM sector labels to INCLUDE — our own 117-label vertical taxonomy (e.g. "SaaS / Cloud", "D2C / Consumer Brands", "Payments & Fintech"). OR-combined with industries/categories. Case/spacing-forgiving. Optional. |
| sectors_exclude | string[] | GTM sector labels to EXCLUDE. Optional. |
| size_range | string | Employee 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_not | string[] | Detected technologies the company must NOT use (NONE of these). Same resolution as tech_uses. Optional. |
| tech_source | string: stack | jobs | both | Which 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_uses | string[] | 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 size_tam 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":"size_tam","arguments":{"industry":"software","country":"IN","size_range":"51-200"}}}'other clients (cursor, claude desktop, openai agents sdk, langchain): mcp setup
Call it over REST
curl -X POST https://api.gtm.dev/v1/tools/size_tam \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"industry":"software","country":"IN","size_range":"51-200"}'Errors (401, 402, 429, 400) are listed in the REST reference. Calls that error are not billed — see pricing.