unified_search
Identifier-driven cross-collection fan-out search. Pass one or more entity identifiers — ticker, bioguide_id, company_cik, recipient_uei, company_name, or cusip — and this tool queries every collection where that field is indexed, returning results grouped by source in one envelope. Congressional-trade and annual financial disclosure results come from STOCK Act and Form 278 filings. The same filings are published free as news at https://keyvex.com/disclosures under 5 U.S.C. § 13107(c). Use this for high-level 'tell me everything about X' questions before drilling into specific source tools. Replaces 6-10 sequential tool calls with a single fan-out. Identifier coverage: - ticker → 13 collections (company_profile, insider_trades, institutional_holdings, congressional_trades, planned_insider_sales, initial_ownership_baselines, activist_ownership, material_events, proxy_filings, xbrl_fundamentals, tender_offers, registration_statements, nport_holdings) - bioguide_id → 2 collections (congressional_trades, annual_financial_disclosures). In both, a record's party is the party the member held on the date of the record (a trade's transaction date, a disclosure's filing date); for a date outside the member's terms in office, the party of their nearest term (the last one before that date, or the first one after it). - company_cik → 11 collections (company_profile, insider_trades, planned_insider_sales, initial_ownership_baselines, activist_ownership, material_events, proxy_filings, xbrl_fundamentals, private_placements, registration_statements, nport_filings) - recipient_uei → 1 collection (federal_contracts) - company_name → 5 name-keyed collections (federal_contracts, enforcement_actions, consumer_complaints, product_recalls, fda_approvals) AND auto- resolves to ticker + company_cik via EDGAR's catalog, cascading into every ticker/CIK adapter above. The unlock for 'tell me everything about Wells Fargo' hitting up to 20 collections in one call. (lobbying_filings is excluded from the fan-out — its 51K-record substring scan is too slow for parallel federation; call get_lobbying_filings directly instead.) enforcement_actions here returns ENFORCEMENT only, as get_enforcement_actions does by default; call get_enforcement_actions with category="all" for the agencies' general news too. When a regulator's site refuses KeyVex (CFTC since 2026-10-07), the freshness block says which records are missing. - cusip → 4 collections (institutional_holdings, activist_ownership, nport_holdings, treasury_auctions) Multiple identifiers can be combined to narrow each source's query (e.g., ticker + bioguide_id will filter congressional_trades by both). Name resolution: when only company_name is supplied, the resolved ticker and CIK come from EDGAR's company_tickers_exchange.json (US-listed names only). Foreign-only or private companies won't resolve to a ticker, but name-keyed collections (CFPB, lobbying, etc.) still receive the substring filter directly. Performance note: company_name fan-out includes substring-filtered collections (lobbying_filings 51K+, federal_contracts) which scan a 5K- record window per source. The full cascade can take 10-40s depending on Firestore region. When latency matters more than coverage, pass sources to whitelist only the ticker/CIK-keyed adapters (typically <1s total). Per-source result count is capped via per_source_limit (default 5, max 50). One slow or failing source returns an error block instead of blocking the rest — check sources_queried vs sources_with_results to see what landed. When you need full result counts and richer filters on one specific collection, call that collection's dedicated tool directly afterward.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "unified_search"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cusip | No | 9-character CUSIP security identifier. Fans out to institutional_holdings, activist_ownership, nport_holdings, treasury_auctions. | |
| limit | No | Alias for per_source_limit (this is a fan-out, so the cap is per source). Default 5, max 50. | |
| since | No | ISO date (YYYY-MM-DD). Applied to each collection's primary date field. | |
| until | No | ISO date (YYYY-MM-DD). Inclusive upper bound. | |
| ticker | No | Stock symbol. Case-insensitive. Fans out to 13 collections. | |
| sources | No | Optional whitelist of source names. Default: all collections that index the provided identifier(s). | |
| bioguide_id | No | Congressional bioguide ID (e.g. P000197 for Pelosi). Fans out to 2 collections. | |
| company_cik | No | SEC CIK number for an issuer (10-digit, leading zeros). Fans out to 8 SEC collections. | |
| company_name | No | Issuer name (e.g., 'Lockheed Martin', 'Wells Fargo'). Resolves to ticker + CIK via EDGAR catalog (if US-listed) AND substring-filters name-keyed collections (federal_contracts, enforcement_actions, consumer_complaints, product_recalls, fda_approvals). For a company's lobbying activity, call get_lobbying_filings directly — it is excluded here for fan-out latency. | |
| recipient_uei | No | USAspending recipient UEI. Fans out to federal_contracts only. | |
| per_source_limit | No | Max records per source. Default 5, max 50. |