Search Industries (NAICS / SIC)
The v2 MCP API is in preview and not yet generally available. These pages document its tools and request/response shapes; live data access is limited to enrolled organizations until v2 is released.
RESOLVER: find industry codes (HG industry_id, NAICS, SIC) by keyword to feed into search_companies (industry_ids, naics_codes, sic_codes). Searches/translates across HG industry (23 buckets), NAICS 2012 (~2,200 codes), and SIC 1987 (~1,500 codes) in one call. Use when you have an industry NAME or colloquial term ("fintech", "software publishers") and need its code(s) before an industry-scoped company search — resolve here first. Do NOT use to find companies — that is search_companies (pass the codes you resolve). Do NOT use to find what industry a specific company belongs to — call company_firmographic (pass companyDomain/hg_id); this searches taxonomy definitions, not company records. Do NOT use for technology/product categories ("IaaS","CRM","cloud infrastructure") — use get_product_category. Use cases: (1) q="software publishers" name fragment; (2) q="541511" code crosswalk; (3) q=52 numeric prefix→sector+descendants; (4) q="software,saas" multi-term OR; (5) taxonomy=naics|sic|industry for deduped rows; naics_leaf_only=true for 6-digit leaves. Colloquial terms (fintech, saas, etc.) expanded server-side — alias_expansions shows what ran. Zero-result: empty results + near-miss q → up to 5 suggestions (taxonomy name near-misses only). NAICS: hierarchy_level (sector|subsector|industry_group|naics_industry|national_industry) + is_leaf — only leaves safe for downstream filters. Downstream: use sic.sic_standard_code ("7372") not sic.sic_code ("I7372"). HG quirk: no Software bucket — 511210/7372→Computer Mfg; 541511/518210→Professional Services. Use NAICS/SIC for tech. Paging: offset_exceeds_total flags paging-past-end. Max limit 500. Free.
Credits
Free — No credits consumed. See the full credit table for how AI Credits work.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
q | string | - | Optional. Text input → case-insensitive substring match against industry/NAICS/SIC name columns. All-digit input → prefix match against code columns only (e.g. q=52 returns NAICS sector 52 and its descendants, not codes that merely contain "52" like 1152). Multi-term: comma-separated (software,publishing,saas) runs the union (OR). Colloquial terms (fintech, saas, healthcare, cleantech, ev, cybersecurity, …) are expanded server-side; the response's alias_expansions shows what ran. Minimum 2 characters. |
taxonomy | string | - | Optional. Restricts matching to one taxonomy AND groups results by its primary key — one row per distinct entity with crosswalk counts on the matched block. Other blocks become {}. Pick the taxonomy your downstream filter needs: industry → search_companies.industry_ids, naics → naics_codes, sic → sic_codes. |
naics_leaf_only | boolean | false | Only meaningful when taxonomy=naics. When true, drops 2/3/4/5-digit NAICS rollup codes and returns only the 6-digit leaf codes — the safe codes to chain into search_companies.naics_codes, since rollups will not match a single company's classification. Silently ignored for other taxonomies. |
limit | integer | 50 | Page size, 1–500. Default 50. |
offset | integer | 0 | Page offset, ≥ 0. Default 0. |
Required Integrations
This tool is only available when your organization has the following integration configured in the Phoenix Integrations settings:
- HG Insights (Data API) (
hginsights_v2__data_api)
Use Cases
- Resolve an industry name to codes before an industry-scoped company search — pass the returned industry_id / naics_code / sic_standard_code to search_companies
- Translate a known code to its full crosswalk — pass a NAICS or SIC code as
qto see the matching HG industry, NAICS, and SIC - Expand a colloquial sector term (fintech, saas, cybersecurity) into real taxonomy matches — check
alias_expansionsto see what ran - List one de-duplicated row per code in a taxonomy — pass
taxonomy=naics(withnaics_leaf_only=truefor chainable 6-digit leaves) ortaxonomy=sic - Self-heal a typo or near-miss — when
resultsis empty, readsuggestionsfor the closest taxonomy names before retrying
Example Usage
Resolve "software publishers" to leaf NAICS codes for search_companies
{
"tool": "search_industries_naics_sic",
"arguments": {
"q": "software publishers",
"taxonomy": "naics",
"naics_leaf_only": true
}
}
Expand the colloquial term "fintech" into taxonomy matches
{
"tool": "search_industries_naics_sic",
"arguments": {
"q": "fintech"
}
}
Translate NAICS code 541511 into its full crosswalk
{
"tool": "search_industries_naics_sic",
"arguments": {
"q": "541511"
}
}
Response Format
| Field | Type | Description |
|---|---|---|
results | array | Crosswalk rows. In unscoped mode, one row per match across taxonomies. In grouped mode, one row per distinct entity in the requested taxonomy. |
results[].matched_on | string | Which taxonomy produced the match. Present when q is set. |
results[].industry | object | HG industry block. {} when not the matched/populated taxonomy. |
results[].industry.industry_id | number | null | |
results[].industry.industry_name | string | null | |
results[].industry.naics_count | number | null | Crosswalk count — populated only in grouped mode (taxonomy=industry). |
results[].industry.sic_count | number | null | Crosswalk count — populated only in grouped mode (taxonomy=industry). |
results[].naics | object | NAICS 2012 block. {} when not the matched/populated taxonomy. |
results[].naics.naics_code | string | null | |
results[].naics.naics_name | string | null | |
results[].naics.naics_top_parent_code | string | null | |
results[].naics.naics_top_parent_name | string | null | |
results[].naics.hierarchy_level | string | null | NAICS level derived from code length (2/3/4/5/6 digits). |
results[].naics.is_leaf | boolean | null | True iff hierarchy_level == "national_industry". Only leaves are safe to chain into downstream code-based filters. |
results[].naics.display_name_with_level | string | null | Disambiguating label, e.g. "Commercial Banking (subsector 5221)". |
results[].naics.sic_count | number | null | Crosswalk count — populated only in grouped mode (taxonomy=naics). |
results[].sic | object | SIC 1987 block. {} when not the matched/populated taxonomy. |
results[].sic.sic_code | string | null | HG-extended SIC code (carries an internal letter prefix, e.g. "I7372"). Do NOT pass to downstream APIs — use sic_standard_code instead. |
results[].sic.sic_standard_code | string | null | Standard SIC-1987 code (e.g. "7372"). This is the value to pass to downstream APIs. Empty for sector-level rows. |
results[].sic.sic_name | string | null | |
results[].sic.is_hg_extension | boolean | null | True when sic_code carries an HG-internal letter prefix (currently true for every SIC row). |
results[].sic.naics_count | number | null | Crosswalk count — populated only in grouped mode (taxonomy=sic). |
pagination | object | |
pagination.total | number | Total rows matching the filter (not just this page). |
pagination.limit | number | |
pagination.offset | number | |
pagination.has_more | boolean | |
pagination.total_pages | number | ceil(total / limit). |
pagination.offset_exceeds_total | boolean | True when offset >= total and total > 0 — diagnostic for paging-past-end bugs. |
alias_expansions | array | null | Present only when one or more q terms were rewritten server-side. Each entry shows the colloquial term and the substrings it expanded to. |
suggestions | array | null | Present only when results is empty AND q contained a text term. Up to 5 closest taxonomy names by trigram distance — use to self-heal typos / near-misses before retrying. |