Search Companies
search_companiesSearch for US public companies by name, ticker symbol, CIK (SEC identifier), or SIC industry code. Returns ticker, company name, sector, industry, exchange, and current S&P 500 membership status. Use this tool to resolve a company name to ticker/CIK before calling get_company_fundamentals, get_valuation_metrics, or other tools that require a ticker — they do not fuzzy-match company names.
Use this tool — NOT get_pit_universe — when the user asks about CURRENT S&P 500 members. To list current S&P 500 members, call search_companies({ is_sp500: true }) (the is_sp500 filter is itself a valid search parameter, so no other input is required). This returns the live snapshot as of query time. Example: "List 5 current S&P 500 members" → call search_companies({ is_sp500: true, limit: 5 }).
Use get_pit_universe ONLY when the user explicitly needs a survivorship-free historical universe as of a specific past date (e.g. "S&P 500 members as of March 2018"). If the user says "current," "today," "now," or gives no date, use search_companies instead.
One ticker can return two rows. A CIK identifies a registrant, not a company, so a reincorporation or holdco reorganisation moves the ticker to a NEW CIK while the filing history stays under the old one. Both rows are real. Use is_active to tell them apart: true is the current listing, false is the superseded one and carries listed_until. Prefer is_active over status — status is an entity-level flag that is unreliable in both directions.
Data details: sic_code is the 4-digit SIC; industry is the human-readable label. sector is SIC-derived with GICS-style labels — NOT licensed GICS, so industrial conglomerates may map differently from official GICS (e.g. 3M → 'Health Care' by SIC vs Industrials by GICS). S&P 500 membership is sourced from index_membership.parquet (current SP500 = index_name='SP500' AND removal_date IS NULL). Available on all plans.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cik | No | SEC CIK identifier (exact match). E.g. '0000320193' for Apple. | |
| limit | No | Maximum number of results to return (1–50). Defaults to 25. | |
| query | No | Free-text search over company name and ticker. Case-insensitive. E.g. 'Apple', 'AAPL', 'Microsoft', 'semiconductor'. | |
| is_sp500 | No | Filter to current S&P 500 members only. | |
| sic_code | No | 4-digit SIC industry code. E.g. '7372' for Prepackaged Software. | |
| is_active | No | Filter on whether the LISTING is current. true = currently trading; false = superseded listings only (delisted, or a ticker that moved to a new registrant). Omit to return both. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| _meta | Yes | Provenance envelope — data lineage for every MCP response | |
| query | Yes | ||
| companies | Yes | ||
| results_returned | Yes |