KeyVex
What this MCP does
Searches U.S. public financial, regulatory, political, corporate, enforcement, and government spending disclosures.
Tools
Input schema
{'type': 'object', 'properties': {'cusip': {'type': 'string', 'description': '9-character CUSIP of the security being reported on. Useful for cross-class filings (preferred vs common).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'ticker': {'type': 'string', 'description': "Issuer stock symbol filter, e.g. 'AAPL'. Case-insensitive."}, 'sort_by': {'enum': ['filing_date', 'event_date', 'percent_of_class', 'shares_owned'], 'type': 'string', 'description': 'Field used for ordering and for the since/until date filters. Default: filing_date.'}, 'filer_cik': {'type': 'string', 'description': 'Filer (reporting person) CIK. Exact match.'}, 'filer_name': {'type': 'string', 'description': "Full or partial filer name; case-insensitive substring match. Example: 'BlackRock' matches all BlackRock entities."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent / largest first).'}, 'company_cik': {'type': 'string', 'description': 'Issuer SEC CIK (10-digit, padded with leading zeros). Alternative to ticker.'}, 'filing_type': {'enum': ['SCHEDULE 13D', 'SCHEDULE 13D/A', 'SCHEDULE 13G', 'SCHEDULE 13G/A'], 'type': 'string', 'description': 'Exact filing type. /A variants are amendments. Original 13D/G filings (no /A) signal a fresh crossing of the 5% threshold.'}, 'is_activist': {'type': 'boolean', 'description': 'Filter to 13D filings only (true) or 13G only (false). Omit to include both. Use is_activist=true to surface takeover/activist signal.'}, 'min_percent_of_class': {'type': 'number', 'description': 'Filter to filings where percent_of_class >= this value. Use to focus on large/concentrated stakes.'}, 'include_filing_narrative': {'type': 'boolean', 'description': "Include the Schedule 13D narrative items in each row: Item 2 (the reporting person and the ownership chain behind them), Item 2(d)-(e) (criminal convictions and civil securities proceedings in the last five years, as PROSE â\x80\x94 usually a denial, never reduced to a flag), Item 3 (source of funds: own money vs borrowings), Item 4 (PURPOSE OF TRANSACTION â\x80\x94 the filer's own statement of intent, where board seats, consent rights and control ambitions are declared) and Item 6 (the contracts with the issuer that implement Item 4). Default FALSE because these are long: measured at 58.5% of a row and ~548 KB on a 50-row page, and the same text repeats once per reporting person on a filing. Ask for it when researching WHY a stake was taken; leave it off when you want the numbers. Rows that have narrative available but withheld carry `filing_narrative_available: true`, so an absent field is never mistaken for a filer who said nothing. 13D only â\x80\x94 13G filings carry no narrative items."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records. Default 50, max 500.'}, 'state': {'type': 'string', 'description': "Two-letter registrant state (e.g., 'TX')."}, 'sort_by': {'enum': ['last_action_date', 'year_mfr'], 'type': 'string', 'description': 'Default last_action_date (most recent registry activity first).'}, 'n_number': {'type': 'string', 'description': 'Direct lookup by registration (with or without the N prefix).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default desc.'}, 'manufacturer': {'type': 'string', 'description': "Case-insensitive substring against the manufacturer (e.g., 'gulfstream', 'cessna')."}, 'registrant_name': {'type': 'string', 'description': 'Case-insensitive substring against registrant + co-owner names.'}, 'aircraft_type_code': {'enum': ['1', '2', '3', '4', '5', '6', '7', '8', '9', 'H', 'O'], 'type': 'string', 'description': 'FAA code: 4 fixed-wing single-engine, 5 fixed-wing multi-engine, 6 rotorcraft, 1 glider, 2 balloon, 9 gyroplane, H hybrid lift, O other.'}, 'registrant_type_code': {'enum': ['1', '2', '3', '4', '5', '7', '8', '9'], 'type': 'string', 'description': 'FAA code: 1 Individual, 2 Partnership, 3 Corporation, 4 Co-Owned, 5 Government, 7 LLC, 8 Non-Citizen Corp, 9 Non-Citizen Co-Owned.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'kind': {'enum': ['congress_trade', 'initial_13d', 'federal_contract'], 'type': 'string', 'description': 'Only this kind.'}, 'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Page size (default 50).'}, 'since': {'type': 'string', 'description': 'Only alerts detected at or after this ISO date or date-time.'}, 'cursor': {'type': 'string', 'description': 'next_cursor from the previous page.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max records to return (1-500). Default 50.'}, 'party': {'type': 'string', 'description': "Exact match on the record's party, where the 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). So party='Democrat' matches filings made while the filer was a Democrat. Empty on filings by candidates who never served."}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Lower bound on the chosen sort_by field. Defaults to filtering by filing_date.'}, 'state': {'type': 'string', 'description': "Two-letter state code (e.g., 'CA', 'TX'). Exact match. Empty for candidate filings (the Senate eFD covers candidates too)."}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Upper bound on the chosen sort_by field.'}, 'chamber': {'enum': ['senate', 'house'], 'type': 'string', 'description': "Filter to one chamber ('senate' or 'house'). v1 covers both."}, 'sort_by': {'enum': ['filing_date', 'filing_year'], 'type': 'string', 'description': "Field to sort by. Default 'filing_date' (most recent filings first)."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': "Sort direction. Default 'desc'."}, 'bioguide_id': {'type': 'string', 'description': "Filer's bioguide_id (e.g., 'P000197' for Nancy Pelosi). Exact match. Most precise filter. A filing carries a bioguide_id only when exactly one member of Congress can be its filer: reports by candidates who never served carry none, and neither does a filing saved before its filer appeared in the member catalog. So for a brand-new member, cross-check with member_name."}, 'filing_year': {'type': 'integer', 'maximum': 2100, 'minimum': 1990, 'description': 'The year of the FILING period being reported on (NOT the date filed). Most filers report the prior calendar year â\x80\x94 e.g., a May 2026 Annual filing has filing_year=2025. New Filer reports cover the partial year up to filing.'}, 'member_name': {'type': 'string', 'description': "Substring match against the filer's full name (case-insensitive). E.g., 'Pelosi', 'Mitch McConnell'. Use bioguide_id when possible for precision."}, 'report_type': {'enum': ['Annual', 'New Filer', 'Termination', 'Combined', 'Amendment', 'Periodic', 'Other'], 'type': 'string', 'description': 'Filter to one filing flavor. Default is unfiltered (returns all types).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': "Direct lookup: '{cert}-{YYYY-MM-DD}' (e.g., '3511-2026-03-31'). Fastest path."}, 'cert': {'type': 'integer', 'description': 'FDIC certificate number (exact) â\x80\x94 the stable bank identifier (e.g., 3511 = Wells Fargo Bank NA, 628 = JPMorgan Chase Bank NA).'}, 'name': {'type': 'string', 'description': "Case-insensitive substring against the institution name (e.g., 'silicon valley', 'first republic')."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'report_date lower bound (YYYY-MM-DD inclusive).'}, 'state': {'type': 'string', 'description': "Two-letter state code (exact, e.g., 'CA', 'TX')."}, 'until': {'type': 'string', 'description': 'report_date upper bound (YYYY-MM-DD inclusive).'}, 'sort_by': {'enum': ['report_date', 'total_assets'], 'type': 'string', 'description': 'Default report_date. total_assets requires an exact report_date filter (league-table mode).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'report_date': {'type': 'string', 'description': "Exact quarter-end (YYYY-MM-DD: 03-31 / 06-30 / 09-30 / 12-31). Combine with sort_by='total_assets' for league tables."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum bills to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': "Latest-action date lower bound (ISO YYYY-MM-DD inclusive). Useful for 'what's moved recently'. NOTE: this filters the most-recent floor/committee action, which can move with activity even on a bill introduced a year ago. For 'introduced in the last N months' questions, use introduced_since instead."}, 'title': {'type': 'string', 'description': "Case-insensitive substring against bill title. Useful for topic searches ('artificial intelligence', 'border security', etc.)."}, 'until': {'type': 'string', 'description': 'Latest-action date upper bound (ISO YYYY-MM-DD inclusive).'}, 'bill_id': {'type': 'string', 'description': "Composite bill identifier ('{congress}-{TYPE}-{number}', e.g., '119-HR-134'). Direct doc lookup, fastest path."}, 'sort_by': {'enum': ['latest_action_date', 'update_date', 'introduction_date'], 'type': 'string', 'description': 'Sort key. Default: latest_action_date (most recently active first). Use introduction_date to sort by when the bill was originally introduced.'}, 'congress': {'type': 'integer', 'description': 'Congress number (e.g., 119 = January 2025 onward; 118 = January 2023 - January 2025).'}, 'bill_type': {'enum': ['HR', 'S', 'HRES', 'SRES', 'HJRES', 'SJRES', 'HCONRES', 'SCONRES'], 'type': 'string', 'description': 'Type code. HR/S are bills; HRES/SRES are simple resolutions (single-chamber, non-binding); HJRES/SJRES are joint resolutions (both chambers, can become law); HCONRES/SCONRES are concurrent resolutions (both chambers, non-binding).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'origin_chamber': {'enum': ['House', 'Senate'], 'type': 'string', 'description': 'Filter to bills originating in one chamber.'}, 'introduced_since': {'type': 'string', 'description': "Introduction-date lower bound (ISO YYYY-MM-DD inclusive). The right filter for 'bills introduced in the last N months' â\x80\x94 distinct from since/until, which track latest action. Older bill records may have an empty introduction_date if they were ingested before that field was added; those will be excluded from introduced_since/introduced_until results until the bill is re-scraped."}, 'introduced_until': {'type': 'string', 'description': 'Introduction-date upper bound (ISO YYYY-MM-DD inclusive).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Direct doc lookup ({contract_code}-{YYYY-MM-DD}). Fastest path.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max records. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Inclusive lower bound on report_date (YYYY-MM-DD).'}, 'until': {'type': 'string', 'description': 'Inclusive upper bound on report_date (YYYY-MM-DD).'}, 'sort_by': {'enum': ['report_date', 'open_interest', 'noncomm_net', 'comm_net'], 'type': 'string', 'description': 'Sort key. Default: report_date.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'latest_only': {'type': 'boolean', 'description': 'When true, returns only the most recent report row per contract (one row per contract instead of weekly history).'}, 'commodity_name': {'type': 'string', 'description': "Exact commodity name from CFTC's catalog (e.g., 'S&P 500 STOCK INDEX', 'GOLD', 'CRUDE OIL', 'EURO FX')."}, 'contract_market_name': {'type': 'string', 'description': "Case-insensitive substring on contract_market_name (e.g., 'S&P 500', 'GOLD', 'CRUDE OIL', 'JAPANESE YEN'). Client-side filter."}, 'cftc_contract_market_code': {'type': 'string', 'description': "Exact CFTC contract code (e.g., '13874A' = E-mini S&P 500, '088691' = Gold, '067651' = Crude Oil WTI)."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': "SEC CIK, padded or not ('320193' or '0000320193'). Exactly one of ticker/cik."}, 'ticker': {'type': 'string', 'description': "Company ticker, e.g. 'AAPL', 'BRK-B' (EDGAR hyphen convention for class shares). Exactly one of ticker/cik."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'owner': {'enum': ['Self', 'Spouse', 'Joint', 'Dependent'], 'type': 'string', 'description': "Who owns the asset. STOCK Act covers spouse and dependent children's trades too â\x80\x94 this filter narrows to one ownership category."}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'cursor': {'type': 'string', 'description': 'Pass the `next_cursor` from the previous response VERBATIM to fetch the next page. Keep every other filter and the sort identical while paging. Omit to start from the top.'}, 'ticker': {'type': 'string', 'description': "Stock symbol filter, e.g. 'AAPL'. Case-insensitive. Leave empty to query across all tickers."}, 'chamber': {'enum': ['senate', 'house'], 'type': 'string', 'description': 'Filter to one chamber. Senate PTRs are HTML-parsed from efdsearch.senate.gov. House PTRs are PDF-parsed from disclosures-clerk.house.gov.'}, 'sort_by': {'enum': ['disclosure_date', 'transaction_date'], 'type': 'string', 'description': 'Field used by since/until and ordering. Default: disclosure_date (when the public first saw the trade).'}, 'min_amount': {'type': 'number', 'description': "Filter to trades with amount_min >= this value (USD). Use to focus on larger disclosed trades. Note: amount ranges are minimums, so '$1,001 - $15,000' has amount_min=1001."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}, 'bioguide_id': {'type': 'string', 'description': "Member's permanent congressional ID, e.g. 'C001035' for Susan Collins. Preferred over member_name when known. Pair with get_member_profile to enrich a trade with the member's party/state/committee assignments."}, 'member_name': {'type': 'string', 'description': "Full or partial member name; case-insensitive substring match. Examples: 'Collins', 'Pelosi'."}, 'amendment_status': {'enum': ['original', 'amendment', 'unknown'], 'type': 'string', 'description': "Filter by whether the row came from an original filing or an AMENDMENT. Default: all three, deliberately â\x80\x94 most amendment rows are NOT duplicates, they are disclosures the amendment added (181 of 198 recent Senate amendment rows have no original). Use 'original' to exclude restatements, accepting that you will also drop genuinely new disclosures. 'unknown' is every House row: the Clerk index carries no amendment indicator, so it cannot be determined from the source."}, 'transaction_type': {'enum': ['buy', 'sell', 'exchange'], 'type': 'string', 'description': "Filter by disclosed transaction type. 'buy' = Purchase (P); 'sell' = Sale, full or partial (S); 'exchange' = Exchange (E) â\x80\x94 bond maturities, corporate spin-offs, and share-class exchanges, which are disclosed trades too. Leave empty to include all three."}, 'exclude_superseded': {'type': 'boolean', 'description': "Drop ORIGINAL disclosures that a later amendment restates. Default FALSE â\x80\x94 they are returned, marked `superseded_by_amendment: true`, and the envelope carries `superseded_rows_included` plus a coverage_warning naming the count. â\x9a\xa0 SET THIS WHENEVER YOU ARE SUMMING AMOUNTS. A member who amends a report has BOTH versions in the data â\x80\x94 Boozman's Chevron trade appears as an amendment and an original, identical in every visible field under two report ids â\x80\x94 so any total over the default response DOUBLE-COUNTS them. 2,360 of 13,642 original Senate rows are in that state (measured 2026-08-27). It is not the default because Senate amendments do not declare WHICH report they replace, so the match is made on member + transaction date + ticker + owner + asset name; dropping on that identity alone is a judgement the caller should make knowingly. House rows are never affected â\x80\x94 the Clerk index carries no amendment indicator, so their status is 'unknown' and they are never marked."}, 'include_non_open_market': {'type': 'boolean', 'description': "Phase A v0.52.0 (2026-05-24): controls whether NON-MARKET events appear in the result. When false (honest default for direction queries), keeps ONLY OPEN_MARKET rows plus INSUFFICIENT_DATA rows (passthrough â\x80\x94 unclassified is not the same as confirmed non-market, never silently dropped). Excludes both NON_OPEN_MARKET_TRANSFER (charitable contributions, gifts, donations detected in `comment`) AND EQUITY_COMP (rare for congressional but handled identically for parity). Honest-by-default: with transaction_type='buy'|'sell' â\x86\x92 defaults to FALSE so a charitable contribution can't pollute a sell-total query. Without transaction_type â\x86\x92 defaults to TRUE (everything tagged honestly). The transaction_type field on each row is NEVER mutated. Example: `member_name:'Pelosi', transaction_type:'sell'` by default EXCLUDES Pelosi's Trinity University contribution; `include_non_open_market:true` re-includes it. Envelope carries `unclassifiable_records_retained: N` when any INSUFFICIENT_DATA rows passed through."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Direct lookup by CFPB complaint_id.'}, 'issue': {'type': 'string', 'description': "Case-insensitive substring against the issue field (e.g., 'incorrect information', 'fraud', 'debt is not yours')."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Applied to sort_by field.'}, 'state': {'type': 'string', 'description': "Two-letter state code (e.g., 'CA', 'NY'). Case-insensitive."}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD).'}, 'company': {'type': 'string', 'description': "Case-insensitive substring against company name (e.g., 'experian', 'jpmorgan', 'capital one')."}, 'product': {'type': 'string', 'description': "Exact product match (e.g., 'Mortgage', 'Debt collection', 'Credit reporting or other personal consumer reports')."}, 'sort_by': {'enum': ['date_received', 'date_sent_to_company'], 'type': 'string', 'description': 'Default date_received.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default desc.'}, 'sub_product': {'type': 'string', 'description': 'Exact sub-product match.'}, 'submitted_via': {'enum': ['Web', 'Phone', 'Postal mail', 'Fax', 'Referral', 'Email'], 'type': 'string', 'description': 'Channel filter.'}, 'timely_response': {'type': 'boolean', 'description': "Filter to complaints with timely company response (within CFPB's 15-day window) or not."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 200.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only applications with filing_date on or after this date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only applications with filing_date on or before this date.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Order by filing_date. Default: desc (most-recent first).'}, 'company_name': {'type': 'string', 'description': "Corporate applicant (IP-holding entity), case-insensitive. Triggers a LIVE USPTO query over that applicant's full history. Use the full legal entity, e.g. 'Microsoft Technology Licensing, LLC' (not 'Microsoft'), 'Google LLC' (not 'Google')."}, 'application_number': {'type': 'string', 'description': "Exact USPTO application number for a direct lookup (cache). Example: '17/123456'."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': 'Issuer CIK (any zero-padding).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Filing date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Filing date upper bound (YYYY-MM-DD inclusive).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort by filing date. Default desc.'}, 'filing_type': {'enum': ['offering', 'progress_update', 'annual_report', 'termination'], 'type': 'string', 'description': 'Form-family filter (see description).'}, 'issuer_name': {'type': 'string', 'description': 'Case-insensitive substring against issuer (or SPV co-issuer) name.'}, 'portal_name': {'type': 'string', 'description': "Case-insensitive substring against the funding portal (e.g. 'wefunder', 'startengine')."}, 'jurisdiction': {'type': 'string', 'description': "Issuer's state/country of organization (two-letter, e.g. 'DE')."}, 'accession_number': {'type': 'string', 'description': 'Direct lookup by EDGAR accession number.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['ticker'], 'properties': {'since': {'type': 'string', 'description': 'ISO date YYYY-MM-DD inclusive. Default: earliest your plan allows.'}, 'until': {'type': 'string', 'description': 'ISO date YYYY-MM-DD inclusive. Default: latest available.'}, 'ticker': {'type': 'string', 'description': "Ticker symbol, e.g. 'AAPL', 'SPY', 'BRK-B' (hyphen for share classes)."}, 'frequency': {'enum': ['daily', 'weekly', 'monthly'], 'type': 'string', 'description': 'Downsampling. Default daily. Use weekly/monthly for multi-year charts.'}, 'include_ohlc': {'type': 'boolean', 'description': 'Add open/high/low/volume (+ adjusted variants) to each row. Default false. Aggregated per period on weekly/monthly.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': 'Issuer SEC CIK (any zero-padding).'}, 'form': {'enum': ['25', '25/A', '25-NSE', '25-NSE/A', '15-12B', '15-12B/A', '15-12G', '15-12G/A', '15-15D', '15-15D/A', '15F-12B', '15F-12B/A', '15F-12G', '15F-12G/A', '15F-15D', '15F-15D/A'], 'type': 'string', 'description': 'Verbatim form type. 25-NSE = exchange-filed removal; 25 = issuer-filed; 15-12B/15-12G/15-15D = deregistration by registration section; 15F-* = foreign private issuers; /A = amendment.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Filing date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Filing date upper bound (YYYY-MM-DD inclusive).'}, 'action': {'enum': ['delisting', 'deregistration'], 'type': 'string', 'description': "Form family: 'delisting' = Form 25 family (exchange removal); 'deregistration' = Form 15 family (going dark)."}, 'ticker': {'type': 'string', 'description': "Exact ticker (resolved from CIK; '' for unlisted filers)."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort by filing date. Default desc (newest first).'}, 'company_name': {'type': 'string', 'description': 'Case-insensitive substring against the issuer name.'}, 'accession_number': {'type': 'string', 'description': "Direct lookup by EDGAR accession number (e.g., '0000876661-26-000593')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'drug': {'type': 'string', 'description': "Drug name phrase â\x80\x94 brand ('ozempic'), generic ('semaglutide'), or reported product name."}, 'skip': {'type': 'integer', 'maximum': 25000, 'minimum': 0, 'description': 'Pagination offset (openFDA hard cap 25,000). Not used in count_by mode.'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Records per page (default 10, max 100 â\x80\x94 records are heavy). In count_by mode: facet rows (default 25, max 1000).'}, 'since': {'type': 'string', 'description': 'FDA receive-date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'FDA receive-date upper bound (YYYY-MM-DD inclusive).'}, 'country': {'type': 'string', 'description': "Country where the event occurred (ISO-2, e.g. 'US')."}, 'outcome': {'enum': ['death', 'life_threatening', 'hospitalization', 'disability', 'congenital_anomaly', 'other'], 'type': 'string', 'description': 'One specific seriousness outcome flag.'}, 'serious': {'type': 'boolean', 'description': 'true = serious reports only (death, hospitalization, disability, â\x80¦); false = non-serious only.'}, 'count_by': {'enum': ['reaction', 'drug', 'brand', 'manufacturer', 'country'], 'type': 'string', 'description': 'Facet mode: return top terms + counts instead of records (reaction | drug | brand | manufacturer | country).'}, 'reaction': {'type': 'string', 'description': "MedDRA reaction term phrase (e.g., 'pancreatitis', 'myocardial infarction')."}, 'manufacturer': {'type': 'string', 'description': "Manufacturer name phrase (openFDA annotation, e.g. 'novo nordisk')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Default 50, max 500.'}, 'source': {'enum': ['bls', 'fred', 'eia', 'fiscaldata'], 'type': 'string', 'description': 'Filter to one source. Omit to query all four. BLS = canonical labor + price stats. FRED = rates, money, GDP, PCE inflation, sentiment. EIA = energy prices + production. FiscalData = Treasury debt to the penny, MTS budget totals, avg interest rates on the debt.'}, 'sort_by': {'enum': ['period', 'value', 'year'], 'type': 'string', 'description': 'Default period (chronological).'}, 'category': {'enum': ['employment', 'labor-force', 'wages', 'hours', 'inflation', 'productivity', 'rates', 'gdp', 'activity', 'money', 'debt', 'fiscal', 'trade', 'sentiment', 'energy'], 'type': 'string', 'description': 'Bucket filter.'}, 'series_id': {'type': 'string', 'description': "Exact series ID. BLS examples: 'LNS14000000' (U-3), 'CES0000000001' (payrolls), 'CUUR0000SA0' (CPI). FRED examples: 'DFF' (Fed Funds), 'DGS10' (10Y Treasury), 'PCEPILFE' (Core PCE), 'M2SL' (M2), 'WALCL' (Fed assets), 'UMCSENT' (sentiment). FiscalData examples: 'FISCAL-DEBT-TOTAL-DAILY' (daily national debt), 'FISCAL-MTS-DEFICIT-MONTHLY' (monthly deficit/surplus)."}, 'since_year': {'type': 'integer', 'description': 'Calendar-year lower bound (inclusive).'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default desc.'}, 'until_year': {'type': 'integer', 'description': 'Calendar-year upper bound (inclusive).'}, 'latest_only': {'type': 'boolean', 'description': "When true, return only the most-recent observation per series. Useful for 'current state' snapshots."}, 'period_type': {'enum': ['monthly', 'quarterly', 'semiannual', 'annual', 'weekly', 'daily'], 'type': 'string', 'description': 'Cadence filter.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Case-insensitive substring against title + teaser + description combined. Use for company-name / person-name searches.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum actions to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Published date lower bound (YYYY-MM-DD inclusive).'}, 'title': {'type': 'string', 'description': "Case-insensitive substring against the title / headline (e.g., 'insider trading', 'fraud', 'antitrust')."}, 'topic': {'type': 'string', 'description': "Filter by DOJ topic tag (array-contains, e.g., 'Financial Fraud', 'Cybercrime', 'Public Corruption')."}, 'until': {'type': 'string', 'description': 'Published date upper bound (YYYY-MM-DD inclusive).'}, 'source': {'enum': ['sec', 'doj', 'cftc', 'occ', 'fdic', 'ftc', 'fed', 'fincen'], 'type': 'string', 'description': 'Filter to one issuing agency: sec (SEC), doj (DOJ), cftc (CFTC), occ (OCC bank-regulator), fdic (FDIC bank-regulator), ftc (FTC antitrust + consumer protection), fed (Federal Reserve bank + individual-banker actions), fincen (FinCEN anti-money-laundering penalties).'}, 'action_id': {'type': 'string', 'description': "Direct lookup ('sec-{guid}', 'doj-{uuid}', or 'cftc-{release-number}'). Fastest path."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent announcements first).'}, 'agency_component': {'type': 'string', 'description': "Substring against the issuing DOJ component (e.g., 'criminal division', 'fraud section', 'antitrust'). Empty for most SEC items."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'status_date lower bound (YYYY-MM-DD inclusive).'}, 'state': {'type': 'string', 'description': "Two-letter state code of a named facility (e.g., 'TX'). Derived from the case's facilities."}, 'until': {'type': 'string', 'description': 'status_date upper bound (YYYY-MM-DD inclusive).'}, 'sort_by': {'enum': ['status_date', 'fed_penalty'], 'type': 'string', 'description': 'Default: status_date. fed_penalty surfaces the largest federal penalties (cannot be combined with since/until).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'case_number': {'type': 'string', 'description': "Direct lookup by ICIS case number, format RR-YYYY-NNNN (e.g., 'HQ-1998-0303')."}, 'fiscal_year': {'type': 'integer', 'description': 'EPA fiscal year of the case (e.g., 2024).'}, 'min_penalty': {'type': 'number', 'minimum': 0, 'description': 'Only cases with fed_penalty >= this amount (USD).'}, 'activity_type': {'enum': ['administrative', 'judicial'], 'type': 'string', 'description': "administrative = EPA's own formal actions (~93% of cases); judicial = DOJ-filed civil court cases."}, 'defendant_name': {'type': 'string', 'description': "Case-insensitive substring against defendant names + case name (e.g., 'caterpillar', 'exxon')."}, 'primary_statute': {'type': 'string', 'description': 'Lead statute code (RANK_ORDER=1): CWA (Clean Water Act), CAA (Clean Air Act), FIFRA (pesticides), SDWA (drinking water), RCRA (hazardous waste), TSCA (toxic substances), CERCLA (Superfund), EPCRA (right-to-know). Rare others: AIM, MPRSA, MWTA.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': "Direct lookup ('drugsfda-{applNo}-{subType}{n}', '510k-{kNumber}', 'pma-{pmaNumber}-{suppl|ORIG}'). Fastest path."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum events to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Decision date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Decision date upper bound (YYYY-MM-DD inclusive).'}, 'source': {'enum': ['drugsfda', '510k', 'pma'], 'type': 'string', 'description': 'Filter to one feed: drugsfda (drug approval actions), 510k (device clearances), pma (Class III device approvals).'}, 'category': {'enum': ['drug', 'device'], 'type': 'string', 'description': 'Coarser filter: drug (= drugsfda) or device (= 510k + pma together).'}, 'applicant': {'type': 'string', 'description': "Case-insensitive substring against the sponsor / applicant company name (e.g., 'pfizer', 'medtronic')."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent decisions first).'}, 'product_code': {'type': 'string', 'description': "Exact FDA device product code (e.g., 'OLO', 'MNQ'). Devices only."}, 'product_name': {'type': 'string', 'description': "Case-insensitive substring against product/trade/device name AND generic name / active ingredients (e.g., 'semaglutide', 'stent')."}, 'decision_code': {'type': 'string', 'description': 'Exact decision code: AP / TA (drugs), SESE etc. (510k), APPR / OK30 etc. (PMA).'}, 'review_priority': {'enum': ['PRIORITY', 'STANDARD', 'EXPEDITED'], 'type': 'string', 'description': 'PRIORITY (drugs), STANDARD (drugs), or EXPEDITED (devices). The high-signal filter for catalyst hunting.'}, 'application_number': {'type': 'string', 'description': "Exact match on the FDA application number (e.g., 'NDA020123', 'ANDA213414', 'K260369', 'P250013')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cycle': {'type': 'integer', 'description': 'Election cycle year (e.g., 2026). Returns candidates whose cycles[] includes this value. Common cycles: 2022, 2024, 2026.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum candidates to return. Default 50, max 500.'}, 'party': {'type': 'string', 'description': 'Party code: DEM | REP | LIB | GRE | IND | OTH.'}, 'state': {'type': 'string', 'description': "2-letter state abbreviation (e.g., 'PA', 'CA'). Empty for President. Combine with office=S to find the senators from a state."}, 'office': {'enum': ['H', 'S', 'P'], 'type': 'string', 'description': 'Office code: H=House, S=Senate, P=President. Narrows ambiguous name matches.'}, 'sort_by': {'enum': ['name', 'last_file_date', 'active_through'], 'type': 'string', 'description': 'Sort key. Default: last_file_date (most recent first).'}, 'district': {'type': 'string', 'description': "House district as 2-digit string ('01'-'53') or 'AL' for at-large. Senate/President leave blank."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'active_only': {'type': 'boolean', 'description': 'When true, restricts to candidate_inactive=false (currently active filers). Default false (includes withdrawn / defeated / inactive).'}, 'candidate_id': {'type': 'string', 'description': "FEC-assigned candidate ID (immutable across cycles), e.g., 'S6PA00091' for Pat Toomey, 'P80003338' for Mitt Romney's 2008 presidential bid. Direct doc lookup, fastest path."}, 'candidate_name': {'type': 'string', 'description': "Case-insensitive substring against the FEC-filed candidate name (typically LASTNAME, FIRSTNAME format). Example: 'mccormick' or 'collins'."}, 'include_committees': {'type': 'boolean', 'description': "When true (default), each returned candidate is enriched with a `committees` array containing all FEC committees linked via candidate_ids[]. The principal campaign committee (designation='P') is listed first. Set false to skip the committee fetch for faster responses when you only need candidate profile fields."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cycle': {'type': 'integer', 'description': "Election cycle year (2-year transaction period, e.g. 2026). Required for leaderboard and group_by='employer'/'state'; defaults to the current cycle for group_by='candidate'."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max rows (aggregate/per-record) or max ORGANISATIONS (leaderboard, default 100). Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Per-record mode: inclusive lower bound on contribution_receipt_date (YYYY-MM-DD).'}, 'until': {'type': 'string', 'description': 'Per-record mode: inclusive upper bound on contribution_receipt_date (YYYY-MM-DD).'}, 'sub_id': {'type': 'string', 'description': 'Per-record mode: direct doc lookup by FEC sub_id. Returns the row only when it is a non-individual contribution.'}, 'sort_by': {'enum': ['contribution_receipt_date', 'contribution_receipt_amount'], 'type': 'string', 'description': 'Per-record mode sort key. Default: contribution_receipt_date.'}, 'group_by': {'enum': ['employer', 'state', 'candidate', 'committee', 'cycle'], 'type': 'string', 'description': 'Aggregate mode: group totals by this axis. employer/state require recipient_committee_id + cycle (the FEC computes those per committee). cycle requires candidate_id or recipient_committee_id.'}, 'max_amount': {'type': 'number', 'description': 'Per-record mode: inclusive upper bound on amount.'}, 'min_amount': {'type': 'number', 'description': 'Leaderboard: itemization floor for aggregated rows (default 1000; 200 = FEC itemization floor). Per-record: inclusive lower bound on amount.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Per-record mode: default desc.'}, 'entity_type': {'enum': ['COM', 'CCM', 'PAC', 'PTY', 'ORG'], 'type': 'string', 'description': "Per-record mode selector â\x80\x94 NON-INDIVIDUAL types only: COM (committee), CCM (candidate committee), PAC, PTY (party), ORG (organization). IND, UNK and CAN are not accepted: a CAN row is the FEC's code for a CANDIDATE, who is a natural person, so candidate contributions are served aggregated only alongside every other individual."}, 'leaderboard': {'type': 'boolean', 'description': "Leaderboard mode: top ORGANISATION donors (PAC / party / committee / company) by name + summed total + count for ONE bounded scope, PLUS the individual side as statistics only (count and total â\x80\x94 NO median and NO maximum; each is one person's number and re-identifies against the FEC's own site). Those statistics are WITHHELD ENTIRELY when fewer than 5 distinct individuals contributed in the scope. NO NATURAL PERSON IS NAMED â\x80\x94 ranking named individuals by their giving is a prohibited commercial use of contributor lists (11 CFR 104.15). Requires cycle + exactly one of recipient_committee_id | candidate_id | contributor_state | contributor_employer."}, 'candidate_id': {'type': 'string', 'description': "FEC candidate ID (e.g. 'S8GA00180'). Scope for group_by='candidate'/'cycle', leaderboard scope, or per-record filter."}, 'exclude_memos': {'type': 'boolean', 'description': 'Per-record mode: when true (DEFAULT) filters out memoed_subtotal rows (FEC duplicates that double-count dollars). Leaderboards always exclude them.'}, 'contributor_state': {'type': 'string', 'description': '2-letter state code. Leaderboard scope (top donors from a state) or per-record filter (non-individual rows).'}, 'contributor_employer': {'type': 'string', 'description': 'Employer name (FEC substring match). LEADERBOARD SCOPE ONLY â\x80\x94 top donors reporting this employer. Not available as a per-record filter.'}, 'recipient_committee_id': {'type': 'string', 'description': "FEC committee ID (e.g. 'C00401224'). Scope for group_by='employer'/'state'/'committee'/'cycle', leaderboard scope, or per-record filter. Use get_fec_candidate_profile to find a candidate's principal committee."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cycle': {'type': 'integer', 'description': 'Election cycle year (2-year transaction period). Common values: 2026, 2024, 2022.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum disbursements to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Inclusive lower bound on disbursement_date (YYYY-MM-DD).'}, 'until': {'type': 'string', 'description': 'Inclusive upper bound on disbursement_date (YYYY-MM-DD).'}, 'sub_id': {'type': 'string', 'description': 'FEC sub_id (globally unique row ID). Direct doc lookup, fastest.'}, 'sort_by': {'enum': ['disbursement_date', 'disbursement_amount'], 'type': 'string', 'description': 'Sort key. Default: disbursement_date.'}, 'max_amount': {'type': 'number', 'description': 'Inclusive upper bound on disbursement_amount.'}, 'min_amount': {'type': 'number', 'description': "Inclusive lower bound on disbursement_amount in dollars. KeyVex's cached subset holds $1,000+ rows; live queries cover every itemized row."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent / largest first).'}, 'entity_type': {'enum': ['COM', 'CCM', 'PAC', 'PTY', 'ORG'], 'type': 'string', 'description': 'Recipient entity type code â\x80\x94 ORGANISATION types only: COM (committee), CCM (candidate committee), PAC, PTY (party), ORG (organization â\x80\x94 most vendors). IND (individual), CAN (candidate â\x80\x94 a natural person) and UNK (unclassified) are not accepted: those rows are withheld under 11 CFR 104.15.'}, 'candidate_id': {'type': 'string', 'description': "FEC candidate ID tied to the disbursement (e.g., 'S6PA00091'). NOTE: only populated on candidate-linked rows; most vendor payments carry no candidate_id â\x80\x94 prefer spender_committee_id for a campaign's full spending picture."}, 'exclude_memos': {'type': 'boolean', 'description': "When true (DEFAULT), filters out rows flagged memoed_subtotal=true â\x80\x94 FEC's aggregate / subtotal duplicates that double-count the same dollars across multiple rows. Pass exclude_memos=false to include them (useful for matching FEC's own raw row counts)."}, 'recipient_name': {'type': 'string', 'description': "Case-insensitive substring against the payee's filed name (vendor, consulting firm or committee â\x80\x94 natural persons are withheld, so a person's name returns nothing). Substring filter (client-side on the cached path)."}, 'recipient_state': {'type': 'string', 'description': "2-letter US state code of the recipient (e.g., 'CA', 'TX')."}, 'spender_committee_id': {'type': 'string', 'description': "FEC committee ID doing the spending (e.g., 'C00580100'). Use get_fec_candidate_profile to find the principal committee for a candidate."}, 'disbursement_purpose_category': {'type': 'string', 'description': "FEC's normalized purpose bucket (e.g., 'ADVERTISING', 'CONSULTING', 'CONTRIBUTIONS', 'FUNDRAISING', 'TRANSFERS', 'TRAVEL', 'PAYROLL', 'OTHER')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cycle': {'type': 'integer', 'description': "Election cycle (2-year transaction period), e.g. 2026/2024/2022. INCOMPLETE â\x80\x94 the FEC leaves this field (two_year_transaction_period) null on many rows, so filtering by cycle undercounts, and the cycle index is not provisioned (a cycle query currently returns INDEX_MISSING). For complete cycle coverage, scope by DATE instead: since='<cycle start>' (e.g. since='2025-01-01' for the 2026 cycle)."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max records. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Inclusive lower bound on expenditure_date (YYYY-MM-DD).'}, 'until': {'type': 'string', 'description': 'Inclusive upper bound on expenditure_date (YYYY-MM-DD).'}, 'sub_id': {'type': 'string', 'description': 'FEC sub_id (globally unique row ID). Direct doc lookup.'}, 'sort_by': {'enum': ['expenditure_date', 'expenditure_amount'], 'type': 'string', 'description': 'Sort key. Default: expenditure_date.'}, 'max_amount': {'type': 'number', 'description': 'Inclusive upper bound on expenditure_amount.'}, 'min_amount': {'type': 'number', 'description': 'Inclusive lower bound on expenditure_amount in dollars.'}, 'payee_name': {'type': 'string', 'description': 'Case-insensitive substring on the payee_name (ad agency, media buyer, vendor). Client-side filter.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'description': {'type': 'string', 'description': "Case-insensitive substring on disbursement_description (free-text purpose of the spend, e.g., 'tv ad', 'mailer', 'digital advertising'). Client-side filter."}, 'candidate_id': {'type': 'string', 'description': 'Target candidate being supported or opposed.'}, 'committee_id': {'type': 'string', 'description': 'FEC committee that spent the money (typically a super PAC). A filer who is, or may be, a natural person returns no rows â\x80\x94 see the description.'}, 'exclude_memos': {'type': 'boolean', 'description': "When true (DEFAULT), filters out rows flagged memoed_subtotal=true â\x80\x94 FEC's aggregate / receipt-account duplicates that double-count the same dollars across multiple rows. Top-spender queries are misleading without this filter. Pass exclude_memos=false to include the raw memo rows."}, 'support_oppose': {'enum': ['S', 'O'], 'type': 'string', 'description': "'S' = filter to ads supporting the target; 'O' = filter to ads opposing. Omit for both."}, 'candidate_office': {'enum': ['H', 'S', 'P'], 'type': 'string', 'description': 'Office of the target candidate: H/S/P.'}, 'candidate_office_state': {'type': 'string', 'description': "2-letter state code of the target candidate (e.g., 'PA', 'TX')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date â\x80\x94 on last_modified_date, except when sort_by is start_date, where it applies to start_date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date (the same date field as since).'}, 'sort_by': {'enum': ['last_modified_date', 'start_date', 'award_amount', 'total_outlays'], 'type': 'string', 'description': 'Field used for ordering. since/until apply to start_date when this is start_date, and to last_modified_date for every other sort. Default: last_modified_date (most-recently-modified first).'}, 'psc_code': {'type': 'string', 'description': "Product or Service Code (4-character). Example: 'AR33' (R&D Space Flight Advanced Development). Exact match."}, 'min_amount': {'type': 'number', 'description': 'Filter to awards with award_amount >= this value (USD). Use to focus on large contracts.'}, 'naics_code': {'type': 'string', 'description': "6-digit North American Industry Classification System code. Example: '541710' (R&D in Physical/Engineering/Life Sciences). Exact match."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc.'}, 'recipient_uei': {'type': 'string', 'description': 'Unique Entity Identifier (replaced DUNS in 2022). 12-character alphanumeric. Exact match: only awards made to this UEI itself. If it is also the parent of other recipients, their awards are NOT included and total_count is omitted â\x80\x94 coverage_warning names the parent; use recipient_name with that name for the whole family.'}, 'recipient_name': {'type': 'string', 'description': "Recipient name substring; case-insensitive match. Example: 'Lockheed Martin' matches 'LOCKHEED MARTIN CORP', 'LOCKHEED MARTIN MISSILES AND FIRE CONTROL', etc. USAspending also matches the PARENT company's name, so a parent name returns its subsidiaries' awards (e.g. Sikorsky under 'Lockheed Martin'). Combined with recipient_uei it is matched against that recipient's OWN name instead, and coverage_warning says how many awards it removed."}, 'awarding_agency': {'type': 'string', 'description': "The TOPTIER awarding agency name â\x80\x94 exact and case-sensitive; a sub-agency name (e.g. 'Defense Logistics Agency') or an abbreviation ('NASA') matches nothing. Examples: 'Department of Defense', 'National Aeronautics and Space Administration', 'Department of Health and Human Services'."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max records. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Inclusive lower bound (YYYY-MM-DD) on last_modified_date â\x80\x94 or on start_date when sort_by is start_date.'}, 'until': {'type': 'string', 'description': 'Inclusive upper bound (YYYY-MM-DD), on the same date field as since.'}, 'sort_by': {'enum': ['last_modified_date', 'start_date', 'award_amount', 'total_outlays'], 'type': 'string', 'description': 'Sort key. since/until apply to start_date when this is start_date, and to last_modified_date for every other sort. Default: last_modified_date.'}, 'min_amount': {'type': 'number', 'description': 'Inclusive lower bound on award_amount in dollars.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'cfda_number': {'type': 'string', 'description': "Catalog of Federal Domestic Assistance program number (e.g., '93.847' = NIH R01 research grants, '20.939' = highway safety improvement). Filter to one program."}, 'recipient_uei': {'type': 'string', 'description': 'Exact federal UEI (Unique Entity ID) â\x80\x94 most precise: only grants made to this UEI itself. If it is also the parent of other recipients, their grants are NOT included and total_count is omitted â\x80\x94 coverage_warning names the parent; use recipient_name with that name for the whole family.'}, 'recipient_name': {'type': 'string', 'description': "Case-insensitive substring on the recipient's name (e.g., 'Stanford', 'Mayo Clinic'), applied by USAspending â\x80\x94 which also matches the PARENT's name, so a parent name returns its subsidiaries' grants. Combined with recipient_uei it is matched against that recipient's OWN name instead, and coverage_warning says how many grants it removed."}, 'awarding_agency': {'type': 'string', 'description': "The TOPTIER awarding agency name â\x80\x94 exact and case-sensitive; a sub-agency name (e.g. 'National Institutes of Health') or an abbreviation ('NSF') matches nothing. Examples: 'National Science Foundation', 'Department of Energy', 'Department of Health and Human Services'."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'text': {'type': 'string', 'description': "Substring against title + abstract + excerpts combined. Use for topic searches ('climate', 'ai', 'cryptocurrency')."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum documents to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'publication_date lower bound (YYYY-MM-DD inclusive).'}, 'title': {'type': 'string', 'description': 'Case-insensitive substring against the document title.'}, 'until': {'type': 'string', 'description': 'publication_date upper bound (YYYY-MM-DD inclusive).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (newest first).'}, 'agency_name': {'type': 'string', 'description': "Case-insensitive substring against full agency names. Use when you don't know the slug."}, 'agency_slug': {'type': 'string', 'description': "Agency slug for exact filter (e.g., 'securities-and-exchange-commission', 'environmental-protection-agency')."}, 'document_type': {'enum': ['Rule', 'Proposed Rule', 'Notice', 'Presidential Document'], 'type': 'string', 'description': "Exact filter to one document type. 'Proposed Rule' is the high-value one for compliance forward-look."}, 'document_number': {'type': 'string', 'description': "GPO-assigned document number (e.g., '2026-09385'). Direct doc lookup, fastest."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': "Direct lookup: '{declarationString}-{fips}' (e.g., 'DR-4728-CA-06037')."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Declaration date lower bound (YYYY-MM-DD inclusive).'}, 'state': {'type': 'string', 'description': "Two-letter state / territory code (e.g., 'FL', 'PR')."}, 'title': {'type': 'string', 'description': "Case-insensitive substring against declaration title + designated area (e.g., 'ian', 'maui')."}, 'until': {'type': 'string', 'description': 'Declaration date upper bound (YYYY-MM-DD inclusive).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent declarations first).'}, 'incident_type': {'type': 'string', 'description': "Exact incident type (e.g., 'Hurricane', 'Flood', 'Fire', 'Severe Storm', 'Tornado', 'Earthquake')."}, 'disaster_number': {'type': 'integer', 'description': 'Exact FEMA disaster number (e.g., 4728).'}, 'declaration_type': {'enum': ['DR', 'EM', 'FM'], 'type': 'string', 'description': 'DR = major disaster, EM = emergency, FM = fire management.'}, 'fema_declaration_string': {'type': 'string', 'description': "Exact declaration (e.g., 'DR-4728-CA') â\x80\x94 returns every designated county for that event."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'text': {'type': 'string', 'description': 'Case-insensitive substring against the document description (e.g. a company name).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Lower bound (YYYY-MM-DD inclusive) on the sort_by date field.'}, 'until': {'type': 'string', 'description': 'Upper bound (YYYY-MM-DD inclusive) on the sort_by date field.'}, 'library': {'type': 'string', 'description': "FERC library â\x80\x94 code or name: E/Electric, G/Gas, O/Oil, H/Hydro, RM/Rulemaking, Gen/General. (Rare multi-library documents carry a concatenated value like 'RulemakingElectric' â\x80\x94 FERC's own encoding â\x80\x94 and only match that exact string.)"}, 'sort_by': {'enum': ['posted_date', 'filed_date'], 'type': 'string', 'description': 'Default posted_date (when FERC published the document â\x80\x94 filings can post up to ~4 days after filing).'}, 'category': {'enum': ['Issuance', 'Submittal'], 'type': 'string', 'description': 'Issuance = BY FERC (orders, notices); Submittal = TO FERC (company filings).'}, 'class_type': {'type': 'string', 'description': "Case-insensitive substring against document class + type (e.g. 'order', 'tariff', 'protest', 'environmental')."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}, 'docket_number': {'type': 'string', 'description': "Docket number â\x80\x94 root ('RP26-930', 'P-5737') or full sub-docket ('RP26-930-000'). Returns every document in that proceeding."}, 'accession_number': {'type': 'string', 'description': "Direct lookup by FERC accession number (e.g. '20260708-3001')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, by sort_by.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'status': {'enum': ['active', 'terminated'], 'type': 'string', 'description': "Registration status: 'active' = currently on DOJ's list; 'terminated' = left the list since ingestion (kept as history). Omit for both."}, 'sort_by': {'enum': ['registration_date', 'foreign_principal_reg_date'], 'type': 'string', 'description': 'Default: registration_date.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}, 'registrant_name': {'type': 'string', 'description': 'Case-insensitive substring against the US registrant (agent) name.'}, 'registration_number': {'type': 'string', 'description': 'Exact FARA registration number. Fastest lookup.'}, 'has_foreign_principal': {'type': 'boolean', 'description': 'Filter to records that carry a foreign-principal relationship (true) or registrants with no active foreign principal (false).'}, 'foreign_principal_name': {'type': 'string', 'description': "Case-insensitive substring against the foreign principal's name."}, 'foreign_principal_country': {'type': 'string', 'description': "Country of the foreign principal, matched uppercase (e.g. 'CHINA', 'RUSSIA', 'SAUDI ARABIA'). The key foreign-influence filter."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'form': {'enum': ['10-K', '10-Q', '10-K/A', '10-Q/A'], 'type': 'string', 'description': 'Filter to one filing form.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date YYYY-MM-DD. Applied to sort_by field.'}, 'until': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}, 'ticker': {'type': 'string', 'description': "Stock symbol filter, e.g. 'AAPL'. Case-insensitive."}, 'concept': {'type': 'string', 'description': "Exact XBRL tag name (e.g., 'NetIncomeLoss', 'Revenues', 'Assets', 'CashAndCashEquivalentsAtCarryingValue'). Case-sensitive."}, 'sort_by': {'enum': ['period_end', 'filed_date', 'value'], 'type': 'string', 'description': 'Default period_end.'}, 'category': {'enum': ['income_statement', 'balance_sheet', 'cash_flow', 'metrics', 'entity'], 'type': 'string', 'description': "Bucket filter when you don't know the exact concept name."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default desc.'}, 'company_cik': {'type': 'string', 'description': 'SEC CIK number. Alternative to ticker.'}, 'fiscal_year': {'type': 'integer', 'description': "Filter to one fiscal year â\x80\x94 the year the financials DESCRIBE (the company's own fiscal-year label, derived from the original filing), NOT the filing year. Handles non-December fiscal years: e.g. NVDA's year ending 2024-01-28 is fiscal_year 2024, Apple's ending 2024-09-28 is 2024. For point-in-time period filtering, period_end / since / until and frame are also available."}, 'latest_only': {'type': 'boolean', 'description': 'When true, return only the most-recent observation per (ticker Ã\x97 concept). Default false.'}, 'fiscal_period': {'enum': ['Q1', 'Q2', 'Q3', 'Q4', 'FY'], 'type': 'string', 'description': 'Filter to one fiscal period.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'isin': {'type': 'string', 'description': 'Exact ISIN if filer included it in the identifiers block.'}, 'name': {'type': 'string', 'description': "Case-insensitive substring against the holding issuer name (e.g., 'Apple', 'Treasury', 'Goldman Sachs')."}, 'cusip': {'type': 'string', 'description': 'Exact 9-character CUSIP. Most reliable identifier for equity and debt holdings in N-PORT.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only holdings whose period_ending >= this date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only holdings whose period_ending <= this date.'}, 'ticker': {'type': 'string', 'description': 'Exact ticker symbol if filer included it in the identifiers block (less common than CUSIP).'}, 'country': {'type': 'string', 'description': "ISO-2 country code of the holding (e.g., 'US', 'GB', 'JP')."}, 'sort_by': {'enum': ['value_usd', 'pct_of_portfolio', 'period_ending'], 'type': 'string', 'description': 'Default: value_usd.'}, 'asset_cat': {'enum': ['EC', 'EP', 'DBT', 'LON', 'ABS-MBS', 'ABS-O', 'ABS-CBDO', 'ABS-APCP', 'SN', 'STIV', 'RA', 'RE', 'COMM', 'DE', 'DIR', 'DFE', 'DCR', 'DCO', 'DO', 'OTHER'], 'type': 'string', 'description': "SEC's asset-category code, case-insensitive. The data holds exactly these: EC common equity; EP preferred equity; DBT debt, Treasuries included; LON loan; ABS-MBS asset-backed, mortgage; ABS-O asset-backed, other; ABS-CBDO asset-backed, CDO/CBO; ABS-APCP asset-backed commercial paper; SN structured note; STIV short-term investment vehicle, money-market and liquidity pools; RA repurchase and reverse-repurchase agreement; RE real estate; COMM commodity; DE equity derivative; DIR interest-rate derivative; DFE foreign-exchange derivative; DCR credit derivative; DCO commodity derivative; DO other derivative; OTHER other. An unknown code is refused with the list rather than searched for â\x80\x94 Treasuries are DBT, money-market positions are STIV, and a repurchase agreement is RA."}, 'filer_cik': {'type': 'string', 'description': "Fund trust CIK (10-digit, padded with leading zeros). Returns the trust's holdings across all reporting months. This is the precise form of filer_name: one trust, rather than a name substring that can match a whole family of them."}, 'filing_id': {'type': 'string', 'description': 'EDGAR accession number â\x80\x94 returns all holdings from one specific N-PORT filing (one fund-month).'}, 'filer_name': {'type': 'string', 'description': "Case-insensitive substring against fund trust name (e.g., 'iShares', 'Vanguard', 'SPDR'). â\x9a\xa0 A name substring matches a FAMILY, not a fund: 'BlackRock' matches at least five separate trusts (0000893818, 0000844779, 0001761055, 0000355916, 0001804196) and 300,000+ holdings rows, so it asks for the whole family's book and reads far more than a caller usually wants. filer_cik is the precise form â\x80\x94 one trust. To narrow a name search instead, add period_ending."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (largest / most recent first).'}, 'counterparty': {'type': 'string', 'description': "Case-insensitive substring against the derivative counterparty (the dealer or clearing house on the other side). Answers exposure-concentration questions â\x80\x94 e.g. counterparty='Morgan Stanley' across funds. Cleared derivatives name an exchange or clearing house (CME, Chicago Board of Trade) rather than a bank. Note the source writes the literal 'N/A' where no counterparty is disclosed, and that value is preserved rather than nulled."}, 'min_notional': {'type': 'number', 'description': "Minimum derivative NOTIONAL amount in the contract's currency. This is EXPOSURE, not fair value, and for derivatives the two differ by orders of magnitude â\x80\x94 a real interest-rate swap in this dataset carries value_usd -49,184 against a notional of 6,795,000. Use min_notional (not min_value_usd) to ask 'how big is the bet'; use min_value_usd to ask 'how much is the position worth today'. Rows with no notional are excluded by any positive floor: options carry share count + strike instead and legitimately have none."}, 'is_derivative': {'type': 'boolean', 'description': "True returns only derivative rows (asset_cat starting with 'D'). False returns only non-derivative rows. Omit for both."}, 'min_value_usd': {'type': 'number', 'description': 'Minimum fair value in USD. Use to focus on large positions only.'}, 'period_ending': {'type': 'string', 'description': 'Reporting month-end (YYYY-MM-DD). Restricts results to one reporting period.'}, 'maturity_since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only debt holdings maturing on or after this date. Applies to the 33.6% of rows that are bond-like; pair with maturity_until to build a maturity ladder.'}, 'maturity_until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only debt holdings maturing on or before this date.'}, 'payoff_profile': {'enum': ['Long', 'Short'], 'type': 'string', 'description': 'Filter to long or short positions per N-PORT payoffProfile field.'}, 'derivative_type': {'enum': ['future', 'forward', 'swap', 'option', 'warrant', 'swaption', 'other'], 'type': 'string', 'description': 'Structural derivative type, derived from which `<derivativeInfo>` child element is present in the filing.'}, 'expiration_since': {'type': 'string', 'description': "ISO date (YYYY-MM-DD). Only derivatives expiring on or after this date. Normalized across contract types â\x80\x94 futures expDate, option expDt, swap terminationDt, forward settlementDt all populate it, and deriv_category tells you which. Rows whose value is not a real date (the source writes 'N/A') are excluded from the window rather than compared."}, 'expiration_until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only derivatives expiring on or before this date. Pair with expiration_since for a rollover window.'}, 'min_pct_of_portfolio': {'type': 'number', 'description': 'Minimum percentage of fund net assets (0-100 scale). Use to focus on concentrated positions.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only documents whose date_issued is on or after this date.'}, 'title': {'type': 'string', 'description': 'Case-insensitive substring against the package title.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only documents whose date_issued is on or before this date.'}, 'sort_by': {'enum': ['date_issued', 'last_modified'], 'type': 'string', 'description': 'Default: date_issued.'}, 'congress': {'type': 'string', 'description': "Congress number as string (e.g., '119')."}, 'doc_class': {'type': 'string', 'description': "Sub-class within the collection. Examples: 'hrpt' (House report), 'srpt' (Senate report), 'pub' (public law), 'pvt' (private law), 'hr' (House hearing), 's' (Senate hearing)."}, 'collection': {'enum': ['CRPT', 'PLAW', 'CHRG', 'GAOREPORTS'], 'type': 'string', 'description': 'Filter to one collection: CRPT (committee reports), PLAW (public laws), CHRG (hearings), GAOREPORTS (GAO).'}, 'package_id': {'type': 'string', 'description': "GovInfo packageId. Direct doc lookup, fastest. Example: 'CRPT-119hrpt27'."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Decision date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Decision date upper bound (YYYY-MM-DD inclusive).'}, 'soc_code': {'type': 'string', 'description': "Exact O*NET-SOC occupation code (e.g., '15-1252.00' = Software Developers)."}, 'job_title': {'type': 'string', 'description': "Case-insensitive substring against the job title (e.g., 'machine learning')."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent decisions first).'}, 'visa_class': {'type': 'string', 'description': "Exact: 'H-1B', 'H-1B1 Chile', 'H-1B1 Singapore', 'E-3 Australian'."}, 'case_number': {'type': 'string', 'description': "Direct lookup by DOL case number (e.g., 'I-200-26083-726723')."}, 'case_status': {'type': 'string', 'description': "Exact: 'Certified', 'Certified - Withdrawn', 'Denied', 'Withdrawn'."}, 'employer_name': {'type': 'string', 'description': "Case-insensitive substring against employer legal name + DBA (e.g., 'google', 'tata')."}, 'worksite_state': {'type': 'string', 'description': "Two-letter worksite state (e.g., 'CA', 'TX')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only filings with filing_date >= this date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only filings with filing_date <= this date.'}, 'ticker': {'type': 'string', 'description': "Exact issuer ticker (e.g., 'AAPL', 'BRK.B')."}, 'sort_by': {'enum': ['filing_date'], 'type': 'string', 'description': 'Sort field. Only filing_date is supported. Default: filing_date.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent filings first).'}, 'company_cik': {'type': 'string', 'description': "Issuer CIK (10-digit, leading-zero padded). All of that company's insider filings."}, 'company_name': {'type': 'string', 'description': "Case-insensitive substring against issuer company name (e.g., 'Apple', 'Tesla')."}, 'is_amendment': {'type': 'boolean', 'description': 'True returns only amendments (/A forms); false returns only originals. Omit for both.'}, 'document_type': {'type': 'string', 'description': "Exact SEC form code: '3' (initial), '4' (changes), '5' (annual), or amendments '3/A' / '4/A' / '5/A'."}, 'accession_number': {'type': 'string', 'description': "Exact EDGAR accession number â\x80\x94 returns that one filing's envelope directly."}, 'reporting_owner_name': {'type': 'string', 'description': 'Case-insensitive substring matched against ANY reporting owner on the filing (scans reporting_owners[]). Best combined with ticker/company_cik.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only holdings whose period_of_report >= this date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only holdings whose period_of_report <= this date.'}, 'ticker': {'type': 'string', 'description': "Exact issuer ticker (e.g., 'AAPL', 'BRK.B')."}, 'sort_by': {'enum': ['period_of_report'], 'type': 'string', 'description': 'Sort field. Only period_of_report is supported. Default: period_of_report.'}, 'min_value': {'type': 'number', 'description': 'Minimum USD value owned following the reported transaction. Use to focus on large positions.'}, 'is_officer': {'type': 'boolean', 'description': 'True returns only holdings reported by officers.'}, 'min_shares': {'type': 'number', 'description': 'Minimum shares owned following the reported transaction. Use to focus on large positions.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent reporting period first).'}, 'company_cik': {'type': 'string', 'description': 'Issuer CIK (10-digit, leading-zero padded). Returns insider holdings across all reporting periods for that company.'}, 'is_director': {'type': 'boolean', 'description': 'True returns only holdings reported by directors.'}, 'company_name': {'type': 'string', 'description': "Case-insensitive substring against issuer company name (e.g., 'Apple', 'Tesla')."}, 'holding_type': {'enum': ['nonderiv', 'deriv'], 'type': 'string', 'description': "'nonderiv' = direct securities (common stock); 'deriv' = derivative holdings (options, RSUs, warrants, convertibles). Omit for both."}, 'merge_co_reports': {'type': 'boolean', 'description': 'DEFAULT TRUE â\x80\x94 leave it alone unless you specifically want raw filings. When shares are held through a fund, trust or family holding company, every person deemed a beneficial owner files their own Form 3/4/5 reporting the SAME position, so one block appears once per filer. By default those lines are merged into one row per position, so share counts are the shares actually held; reporting_owner_name names every filer and co_reported_accessions lists every accession. Set false for one row per filing â\x80\x94 totals then count the same shares once per reporting person.'}, 'reporting_owner_cik': {'type': 'string', 'description': "Insider CIK (10-digit, leading-zero padded). Returns one insider's positions across every company they report on."}, 'is_ten_percent_owner': {'type': 'boolean', 'description': 'True returns only holdings reported by 10%+ beneficial owners.'}, 'reporting_owner_name': {'type': 'string', 'description': "Case-insensitive substring against the insider's name (e.g., 'Musk', 'Cook')."}, 'direct_indirect_ownership': {'enum': ['D', 'I'], 'type': 'string', 'description': "'D' direct ownership, 'I' indirect (held via trust, LLC, family member, etc.)."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'cursor': {'type': 'string', 'description': 'Opaque pagination cursor. To read past `limit`, pass the `next_cursor` value from the previous response VERBATIM; the response omits next_cursor when there is nothing after this page. Keyset-based, not offset-based: the cursor names a position in the sort order, so filings that arrive while you page do not shift or duplicate rows beneath you. Works on BOTH data sources (bulk_v2 since 2026-08-08) â\x80\x94 on bulk_v2 it names a position in the MERGED bulk + live-daily-feed stream, and both legs are advanced together. Keep sort_by/sort_order identical across a page sequence â\x80\x94 a cursor issued under a different sort is REJECTED rather than silently applied to the wrong ordering. (`offset` and `page` are not supported and are rejected: an offset into this result is not an offset into either underlying source, and on the legacy store it would bill for every row it skipped.)'}, 'ticker': {'type': 'string', 'description': "Stock symbol filter, e.g. 'AAPL'. Case-insensitive."}, 'sort_by': {'enum': ['disclosure_date', 'transaction_date', 'total_value'], 'type': 'string', 'description': "Field used for ordering and for the since/until date filters. Default: disclosure_date. Validity differs by data_source: 'transaction_date' works on BOTH; 'disclosure_date' works on both (on the default bulk_v2 it maps to filing_date); 'total_value' is LEGACY-ONLY â\x80\x94 bulk_v2 rejects it, so to rank by trade size on bulk_v2 use min_amount to filter and sort by transaction_date instead."}, 'row_type': {'enum': ['nonderiv', 'deriv'], 'type': 'string', 'description': "bulk_v2 only. Source-table discriminator: 'nonderiv' for NONDERIV_TRANS rows (direct common-stock activity), 'deriv' for DERIV_TRANS rows (options/RSUs/warrants). For legacy data, use is_derivative instead."}, 'min_value': {'type': 'number', 'description': 'Filter to trades with total_value >= this amount (USD). Use to focus on large trades. Works on BOTH data_sources. On bulk_v2 the value is DERIVED per row exactly as the returned `total_value` field is â\x80\x94 TRANS_TOTAL_VALUE where the SEC populated it (derivative rows), otherwise shares Ã\x97 price_per_share â\x80\x94 so the filter and the field always agree. Rows carrying neither (no value and no shares/price) are EXCLUDED, since an unknown value cannot be shown to clear the threshold; that matches legacy â\x80\x94 pass include_unpriced=true to keep them, and the response carries `min_value_note` saying so whenever min_value is set. Note this is a post-fetch filter on bulk_v2, so a very high threshold may return fewer rows than `limit` with has_more=true.'}, 'aff10b5one': {'enum': ['1', '0', '', 'NOT_TRACKED'], 'type': 'string', 'description': "bulk_v2 only. 10b5-1 trading-plan flag. '1' = plan adopted, '0' = no plan, '' = filer left the box blank (most common in 2023q1+ era), 'NOT_TRACKED' = pre-2023 era where the column did not exist on the SEC form. Filers often leave the box blank but disclose the plan in narrative footnotes â\x80\x94 check footnote_refs[] for trans_code annotations."}, 'schema_era': {'enum': ['pre_2023', '2023_plus'], 'type': 'string', 'description': "bulk_v2 only. Form-version era. 'pre_2023' = filings made 2006q1 through 2022q4 (no AFF10B5ONE column). '2023_plus' = filings made 2023q1 onward (AFF10B5ONE column present, matches SEC Rule 10b5-1 amendment compliance date). Driven by FILING-quarter, not transaction_date â\x80\x94 a late 2024 filing of an old 2009 trade still gets schema_era=2023_plus."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent / largest first).'}, 'company_cik': {'type': 'string', 'description': 'SEC CIK number (10-digit, padded with leading zeros). Alternative to ticker when known.'}, 'data_source': {'enum': ['legacy', 'bulk_v2'], 'type': 'string', 'description': "Which backing collection to query. 'bulk_v2' (DEFAULT as of 2026-05-24) = SEC quarterly bulk dataset, 2006q1 â\x86\x92 the last PUBLISHED SEC quarter (SEC releases it ~2 weeks after quarter end; the live boundary is stated in coverage_warning). Footnote_refs[] inlined, aff10b5one present, full reporting_owners array, deeper coverage. Rows carry legacy field aliases for backward compat. On simple recency queries (descending, no v2-only filters) filings NEWER than the bulk boundary are automatically merged in from the live daily feed, so the default view stays current. 'legacy' = daily EDGAR scraper output (insider_trades collection, no footnotes, no 10b5-1 flag). Its history runs from 2016 but is NOT continuous: measured 2026-08-10 against SEC's own bulk copy, legacy holds ~2.1% of 2022, ~0.3% of 2023 and ~4.4% of 2025, and is complete for 2016-2021, 2024 and 2026. Those are gaps in the scraper's history, not in SEC's data, and responses covering them carry a coverage_warning. (An earlier version of this description said '2022+ only', which was the inverse of the truth.) Use 'legacy' ONLY when you specifically need the legacy document shape, or to browse post-boundary filings with filters the auto-merge can't map. bulk_v2 (the default) is authoritative for coverage."}, 'trans_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 30, 'minItems': 1, 'description': 'OR-filter on raw SEC trans_code values (P, S, A, M, X, C, F, G, D, I, V, etc.). The v2 spelling of `transaction_codes` â\x80\x94 same semantics, same codes; either spelling is accepted on either data_source and passing both with different values is rejected. Max 30 codes.'}, 'officer_name': {'type': 'string', 'description': 'Full or partial officer name; case-insensitive substring match. Works on BOTH data_sources â\x80\x94 `reporting_owner_name` is the same filter under its v2 name, and either spelling is accepted on either source; passing both with different values is rejected.'}, 'is_derivative': {'type': 'boolean', 'description': "Filter to derivative rows (options, RSUs, warrants, convertibles) when true, or non-derivative common-stock rows when false. Omit to see both. Works on BOTH data_sources â\x80\x94 on bulk_v2 it maps to row_type ('deriv'/'nonderiv'); passing is_derivative and a conflicting row_type is rejected."}, 'include_baseline': {'type': 'boolean', 'description': "When true, the response includes matching Form 3 initial-ownership records under a `baselines` field â\x80\x94 lets you anchor Form 4 deltas to the insider's starting position. Requires ticker or company_cik. Default false. Works on BOTH data_sources (bulk_v2 accepted-but-ignored it until 2026-08-05)."}, 'include_unpriced': {'type': 'boolean', 'description': "Only meaningful alongside min_value. By default a row that states NO price (price_check='no_price_reported') has no derivable total_value, cannot be shown to clear the threshold, and is EXCLUDED â\x80\x94 correct, but it used to be silent, and 'cannot be shown to clear the threshold' is not 'is below the threshold'. Measured 2026-09-09 at roughly 3 rows in 10,000, every one a filing where the insider genuinely stated no price rather than a data defect. Pass true to keep those rows in a min_value-filtered result; their total_value is null, so judge them on shares. Default false, which is exactly today's behaviour. bulk_v2 only: passing it with data_source='legacy' is REJECTED rather than ignored, because a filter flag that silently does nothing is worse than one that is unavailable. Passing it without min_value is also rejected, for the same reason â\x80\x94 nothing would be being excluded for it to re-admit."}, 'merge_co_reports': {'type': 'boolean', 'description': "DEFAULT TRUE â\x80\x94 leave it alone unless you specifically want raw filings. When shares are held through a fund, SEC requires the holding entity, its general partner AND the individual with investment control to each file their own Form 4 for the SAME purchase. By default those filings are merged into one row, so share counts and dollar totals are what actually traded; the row's officer_name names every filer and co_reported_accessions lists every accession. Set false to get one row per filing instead â\x80\x94 useful for filing-level audit, but totals then double-count the transaction once per reporting person."}, 'transaction_type': {'enum': ['buy', 'sell'], 'type': 'string', 'description': "Filter by direction. 'buy' means PURCHASED, not merely acquired: setting this parameter also switches include_non_open_market to false by default, so RSU vests, option exercises and other grants (transaction_nature=EQUITY_COMP) and gifts/transfers/equity swaps (NON_OPEN_MARKET_TRANSFER) are EXCLUDED. Without that default a 'buy' screen is mostly vesting schedules â\x80\x94 measured 2026-08-11 at 83% EQUITY_COMP, with a $6.3bn nano-cap grant topping the dollar-sorted results. â\x9a\xa0 include_non_open_market=true does NOT widen a direction-filtered query, and this description used to say it did ('pass it to get the full ACQUIRED superset, grants included') â\x80\x94 corrected 2026-08-27 after the promise was measured against the behaviour. A direction is only ASSERTED for a genuine market trade: since 2026-08-17 the field is null for anything whose transaction_nature is not OPEN_MARKET, and for derivatives, because equity compensation is not buying (a Kyndryl new-hire grant had been ranking as $5.2M of insider buying at a discount to the market price). A row with no direction cannot match transaction_type=buy whatever include_non_open_market says. To see grants and transfers, OMIT transaction_type and filter on transaction_nature yourself â\x80\x94 include_non_open_market widens exactly as documented there. Rows whose nature cannot be classified (INSUFFICIENT_DATA) always pass through where no direction filter is set, and are counted in unclassifiable_records_retained â\x80\x94 unclassified is not the same as excluded. Works on BOTH data_sources. For legacy, this filters the stored field directly. For bulk_v2 (default), the field is derived per row from trans_code + trans_acquired_disp_cd (Pâ\x86\x92buy, Sâ\x86\x92sell, acqDisp=Aâ\x86\x92buy, acqDisp=Dâ\x86\x92sell, fallback A/M/X/C/Iâ\x86\x92buy else sell â\x80\x94 same algorithm legacy uses); the v2 path pages through Firestore until enough matches are found and reports has_more accurately on the filtered set."}, 'transaction_codes': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 30, 'minItems': 1, 'description': "OR-filter on raw SEC transaction codes. Common picks: ['P'] open-market buys; ['S','F'] sells + tax-withholding; ['M','X'] option exercises; ['A'] grants/RSU vests; ['G'] gifts. Max 30 codes. Works on BOTH data_sources â\x80\x94 `trans_codes` is the same filter under its v2 name, and either spelling is accepted on either source; passing both with different values is rejected."}, 'reporting_owner_cik': {'type': 'string', 'description': 'Reporting owner CIK (10-digit, zero-padded). bulk_v2 only â\x80\x94 legacy uses officer_name substring instead.'}, 'reporting_owner_name': {'type': 'string', 'description': 'Reporting owner name substring (case-insensitive). bulk_v2 only â\x80\x94 legacy uses officer_name instead. IMPORTANT: name is matched client-side over a recent window, so it must be ANCHORED by ticker, company_cik, or reporting_owner_cik to search the full history â\x80\x94 a name on its own only scans the most recent filings and can miss older trades (the response carries a coverage_warning when used unanchored).'}, 'include_non_open_market': {'type': 'boolean', 'description': "Phase A v0.52.0 (2026-05-24): controls whether NON-MARKET events appear in the result. When false (the honest default for direction queries), the result keeps ONLY OPEN_MARKET rows (transaction_nature='OPEN_MARKET') plus INSUFFICIENT_DATA rows (passthrough â\x80\x94 unclassified is not the same as confirmed-non-market, never silently dropped). It excludes BOTH NON_OPEN_MARKET_TRANSFER (gifts G, tax-withhold F, disposition-to-issuer D, will/inheritance W, voting-trust Z, tender U) AND EQUITY_COMP (grants A, exercises M/X/O, 401k/ESPP I, conversions C) â\x80\x94 neither is a true open-market trade. Honest-by-default: when transaction_type='buy'|'sell' is set, defaults to FALSE; pass true to opt back in and see all natures. When transaction_type is NOT set, defaults to TRUE (returns everything, honestly tagged); pass false for a clean OPEN_MARKET+INSUFFICIENT_DATA view. The transaction_type field on each row is never mutated by this filter. The response envelope carries `unclassifiable_records_retained: N` when any INSUFFICIENT_DATA rows passed through, so the caller knows N of the returned rows couldn't be classified."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cusip': {'type': 'string', 'description': 'Alternative to ticker â\x80\x94 9-character SEC CUSIP identifier. Useful when a security has multiple share classes with different tickers.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'cursor': {'type': 'string', 'description': 'Pass the `next_cursor` from the previous response VERBATIM to fetch the next page. Keep every other filter and the sort identical while paging. Omit to start from the top. A quarter of 13F filings runs to far more than 500 rows, so a complete picture requires paging.'}, 'ticker': {'type': 'string', 'description': "Filter to holdings of one stock by US ticker, e.g. 'AAPL'. Case-insensitive."}, 'quarter': {'type': 'string', 'description': "Period ending date in YYYY-MM-DD form (e.g. '2026-03-31'). Defaults to all quarters available in the database."}, 'sort_by': {'enum': ['market_value', 'shares_held', 'shares_change_pct'], 'type': 'string', 'description': 'Field used for ordering. Default: market_value (largest positions first).'}, 'fund_cik': {'type': 'string', 'description': "SEC CIK of the fund (10-digit, padded). Preferred over fund_name when known. Berkshire Hathaway = '0001067983'."}, 'fund_name': {'type': 'string', 'description': "Full or partial fund name; case-insensitive substring match. Examples: 'Berkshire', 'Bridgewater', 'Citadel'."}, 'min_value': {'type': 'number', 'description': 'Filter to positions with market_value >= this amount (USD). Use to focus on large positions.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (largest first).'}, 'position_change': {'enum': ['new', 'increased', 'decreased', 'closed', 'unchanged', 'INSUFFICIENT_DATA'], 'type': 'string', 'description': "Filter to position-change type. Common queries: 'increased' for funds adding to a position, 'closed' for funds that exited."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'required': ['ticker'], 'properties': {'ticker': {'type': 'string', 'description': "Ticker symbol, e.g. 'AAPL', 'SPY', 'BRK-B' (hyphen for share classes)."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': 'Exact EDGAR CIK (any zero-padding) â\x80\x94 the join key to 13F / enforcement data.'}, 'crd': {'type': 'string', 'description': "Direct lookup by firm CRD number (e.g., '38')."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum firms to return. Default 50, max 500.'}, 'state': {'type': 'string', 'description': "Two-letter main-office state code (e.g., 'NY')."}, 'country': {'type': 'string', 'description': "Main-office country, verbatim (e.g., 'United States')."}, 'min_aum': {'type': 'number', 'minimum': 0, 'description': 'Minimum total regulatory AUM in dollars (registered firms only; requires sort_by aum_total).'}, 'sort_by': {'enum': ['aum_total', 'latest_adv_filing_date'], 'type': 'string', 'description': 'Default aum_total (largest first).'}, 'firm_name': {'type': 'string', 'description': 'Case-insensitive substring against primary business or legal name.'}, 'firm_type': {'enum': ['registered', 'exempt_reporting'], 'type': 'string', 'description': "'registered' = SEC-registered RIAs (report AUM); 'exempt_reporting' = ERAs (AUM fields null)."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default desc.'}, 'has_disciplinary_disclosures': {'type': 'boolean', 'description': 'Filter to firms with (true) / without (false) Item 11 disclosures.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'sort_by': {'enum': ['dt_posted', 'filing_year', 'income'], 'type': 'string', 'description': 'Field used for ordering and for since/until filters. Default: dt_posted (when the filing was submitted).'}, 'min_income': {'type': 'number', 'description': 'Filter to filings with income >= this amount (USD). Use to focus on big-dollar lobbying spend.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent / largest first).'}, 'client_name': {'type': 'string', 'description': "Substring match against the paying client's name (case-insensitive). E.g., 'Pfizer', 'Lockheed Martin', 'STATE OF CALIFORNIA'."}, 'filing_year': {'type': 'integer', 'maximum': 2100, 'minimum': 1999, 'description': 'Calendar year of the reporting period (NOT the filing date).'}, 'filing_period': {'enum': ['first_quarter', 'second_quarter', 'third_quarter', 'fourth_quarter', 'mid_year', 'year_end'], 'type': 'string', 'description': 'Reporting period within filing_year. Quarters for LD-2; mid_year/year_end for LD-203 contributions windows.'}, 'registrant_name': {'type': 'string', 'description': "Substring match against the lobbying firm's name (case-insensitive). E.g., 'Akin Gump', 'Brownstein'."}, 'government_entity': {'type': 'string', 'description': "Substring match against any government entity contacted. E.g., 'SENATE', 'Treasury', 'FDA', 'Defense, Dept of'."}, 'general_issue_codes': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': "Array of 3-char issue codes (OR semantics). E.g., ['DEF'] for defense, ['HEA','MMM'] for health+Medicare. Max 30 codes per query."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'dt_posted lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'dt_posted upper bound (YYYY-MM-DD inclusive).'}, 'filer_type': {'enum': ['lobbyist', 'registrant'], 'type': 'string', 'description': 'Who filed: the individual lobbyist or the registrant firm.'}, 'payee_name': {'type': 'string', 'description': "Case-insensitive substring against any item's payee (the committee/entity paid)."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recently posted first).'}, 'filing_uuid': {'type': 'string', 'description': 'Direct lookup by LDA filing UUID. Fastest path.'}, 'filing_year': {'type': 'integer', 'minimum': 2008, 'description': 'Filing year (2008â\x86\x92present).'}, 'honoree_name': {'type': 'string', 'description': "Case-insensitive substring against any item's honoree â\x80\x94 the covered official who benefited (e.g., 'schumer')."}, 'include_empty': {'type': 'boolean', 'description': "Include 'no contributions' certifications (~half of all filings). Default false."}, 'lobbyist_name': {'type': 'string', 'description': "Case-insensitive substring against the individual lobbyist's name."}, 'registrant_name': {'type': 'string', 'description': 'Case-insensitive substring against the lobbying firm / organization name.'}, 'contribution_type': {'type': 'string', 'description': "Exact type: 'feca', 'honorary', 'meeting', 'presidential_library', 'inaugural_committee'."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'ticker': {'type': 'string', 'description': "Stock symbol filter, e.g. 'AAPL'. Case-insensitive."}, 'sort_by': {'enum': ['filing_date', 'period_of_report'], 'type': 'string', 'description': "Field used for ordering and for since/until filters. filing_date = when filed with SEC; period_of_report = when the underlying event occurred. Default: filing_date. NOTE: a small number of 8-Ks (Reg-FD-only filings, item-7.01 disclosures) lack period_of_report at the SEC source â\x80\x94 those rows fall back to filing_date ordering automatically, so sort_by='period_of_report' won't bury them."}, 'item_codes': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': "Array of item codes to filter on (OR semantics). E.g., ['5.02'] for exec changes, ['1.01','2.01'] for any deal activity. Max 30 codes per query."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}, 'company_cik': {'type': 'string', 'description': 'SEC CIK number (10-digit, padded with leading zeros). Alternative to ticker.'}, 'is_amendment': {'type': 'boolean', 'description': 'Filter to only original 8-Ks (false) or only amendments / 8-K/A filings (true). Omit to include both.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 600, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 600 (~current Congress size).'}, 'party': {'type': 'string', 'description': "'Democrat' | 'Republican' | 'Independent' | etc. Exact match â\x80\x94 uses the YAML's spelling."}, 'state': {'type': 'string', 'description': "2-letter state abbreviation (e.g., 'ME', 'CA'). Filters to members from that state â\x80\x94 useful with chamber=senate to get the 2 senators from a state."}, 'chamber': {'enum': ['house', 'senate'], 'type': 'string', 'description': 'Filter to House Representatives or Senators.'}, 'bioguide_id': {'type': 'string', 'description': "Permanent member identifier â\x80\x94 letter + 6 digits (e.g., 'C001035' for Susan Collins, 'P000197' for Nancy Pelosi). Direct doc lookup, fastest path."}, 'member_name': {'type': 'string', 'description': "Case-insensitive substring against full_name. Example: 'Pelosi' returns Nancy Pelosi."}, 'committee_id': {'type': 'string', 'description': "Thomas committee code (full committee like 'HSAS' or subcommittee like 'HSAG15'). Returns all members of that committee."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': 'Registrant CIK (any zero-padding).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'report_date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'report_date upper bound (YYYY-MM-DD inclusive).'}, 'sort_by': {'enum': ['report_date', 'net_assets'], 'type': 'string', 'description': 'Default report_date (newest month first).'}, 'fund_name': {'type': 'string', 'description': 'Case-insensitive substring against registrant or series name.'}, 'series_id': {'type': 'string', 'description': "EDGAR series ID (e.g. 'S000096464') â\x80\x94 one fund's monthly history."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default desc.'}, 'fund_category': {'type': 'string', 'description': "Verbatim N-MFP category: 'Government', 'Prime', 'Single State', 'Other Tax Exempt', â\x80¦"}, 'is_retail_fund': {'type': 'boolean', 'description': 'Filter to retail (true) / institutional (false) funds.'}, 'accession_number': {'type': 'string', 'description': 'Direct lookup by EDGAR accession number.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum cases to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'date_filed lower bound (YYYY-MM-DD inclusive).'}, 'state': {'type': 'string', 'description': "Two-letter state/territory code of the case site (e.g., 'NY', 'CA', 'PR')."}, 'until': {'type': 'string', 'description': 'date_filed upper bound (YYYY-MM-DD inclusive).'}, 'region': {'type': 'string', 'description': "Two-digit NLRB region number from the case-number prefix (e.g., '03' Buffalo, '13' Chicago). Client-side filter."}, 'status': {'enum': ['Open', 'Closed'], 'type': 'string', 'description': 'Case status. Client-side filter.'}, 'sort_by': {'enum': ['date_filed'], 'type': 'string', 'description': 'Sort key. Only date_filed is supported (the default).'}, 'case_type': {'enum': ['ULP', 'representation'], 'type': 'string', 'description': "Case family: 'ULP' = unfair-labor-practice charges (C-cases), 'representation' = election/unit petitions (R-cases)."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recently filed first).'}, 'case_number': {'type': 'string', 'description': "Direct lookup by NLRB case number (e.g., '03-CA-390171'). Fastest path."}, 'case_subtype': {'type': 'string', 'description': "Exact case-number code (e.g., 'CA' charge against employer, 'CB' against union, 'RC' certification petition, 'RD' decertification). Client-side filter."}, 'employer_name': {'type': 'string', 'description': "Case-insensitive substring against the named party (e.g., 'starbucks', 'amazon'). Usually the employer; on CB-type charges the union. Client-side filter."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'ein': {'type': 'string', 'description': 'Employer Identification Number (any format â\x80\x94 digits extracted).'}, 'name': {'type': 'string', 'description': 'Case-insensitive substring against the organization name.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records. Default 50, max 500.'}, 'since': {'type': 'string', 'description': "tax_period lower bound â\x80\x94 'YYYY-MM' or 'YYYYMM' (inclusive)."}, 'until': {'type': 'string', 'description': "tax_period upper bound â\x80\x94 'YYYY-MM' or 'YYYYMM' (inclusive)."}, 'object_id': {'type': 'string', 'description': 'Direct lookup by IRS OBJECT_ID.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort by tax_period. Default desc.'}, 'return_type': {'type': 'string', 'description': "IRS code verbatim: '990', '990EZ', '990PF', '990T' (also '990EO'/'990O' in 2019-era records)."}, 'submission_year': {'type': 'integer', 'minimum': 2017, 'description': 'IRS release/index year (2017â\x86\x92present; financials partial for 2017 â\x80\x94 IRS retired the pre-2017 XML archives).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'file_date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'file_date upper bound (YYYY-MM-DD inclusive).'}, 'sort_by': {'enum': ['file_date', 'period_ending'], 'type': 'string', 'description': 'Default: file_date (most recently filed first). period_ending sorts by the month the report covers.'}, 'filer_cik': {'type': 'string', 'description': "Fund trust's SEC CIK (1-10 digits; we zero-pad internally)."}, 'filing_id': {'type': 'string', 'description': 'EDGAR accession number. Direct doc lookup, fastest.'}, 'filer_name': {'type': 'string', 'description': "Case-insensitive substring against the fund trust name (e.g., 'wisdomtree', 'vanguard', 'fidelity')."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'is_amendment': {'type': 'boolean', 'description': 'When set, restricts to NPORT-P/A amendments (true) or original NPORT-P (false). Default: both.'}, 'period_ending': {'type': 'string', 'description': 'Filter to a specific reporting period â\x80\x94 the month-end the filing covers (YYYY-MM-DD).'}, 'sec_file_number': {'type': 'string', 'description': "SEC Investment Company file number, e.g., '811-21864'. Each fund trust has a stable number."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'name': {'type': 'string', 'description': "Case-insensitive substring against the primary listed name (e.g., 'kim jong un', 'gazprom')."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum entries to return. Default 50, max 500.'}, 'ent_num': {'type': 'string', 'description': 'Direct OFAC entity number lookup. Fastest path.'}, 'program': {'type': 'string', 'description': "Substring against the comma-delimited program field (e.g., 'IRAN', 'RUSSIA', 'SDGT' for terrorism, 'NARCOTICS')."}, 'remarks': {'type': 'string', 'description': 'Substring against free-text remarks (aliases, DOB / passport references, related-party hints).'}, 'sort_by': {'enum': ['ent_num', 'name'], 'type': 'string', 'description': 'Default: ent_num.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: asc.'}, 'entity_type': {'enum': ['individual', 'entity', 'vessel', 'aircraft'], 'type': 'string', 'description': "Filter to one entity type. 'entity' covers companies / orgs; 'individual' for people; 'vessel' / 'aircraft' for transports."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'npi': {'type': 'string', 'description': 'Exact 10-digit National Provider Identifier.'}, 'city': {'type': 'string', 'description': 'Case-insensitive substring against city.'}, 'name': {'type': 'string', 'description': 'Case-insensitive substring against full_name (covers both individuals and businesses).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Applied to sort_by field.'}, 'state': {'type': 'string', 'description': "Two-letter state code (e.g. 'NY', 'CA'). Case-insensitive."}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD).'}, 'sort_by': {'enum': ['exclusion_date'], 'type': 'string', 'description': 'Default exclusion_date.'}, 'specialty': {'type': 'string', 'description': 'Case-insensitive substring against specialty.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default desc.'}, 'is_business': {'type': 'boolean', 'description': 'Filter to businesses only (true) or individuals only (false).'}, 'business_name': {'type': 'string', 'description': 'Case-insensitive substring against business_name only.'}, 'exclusion_type': {'type': 'string', 'description': "Statutory code (e.g. '1128a1', '1128b5')."}, 'general_category': {'type': 'string', 'description': "Exact match (case-sensitive): 'PHARMACY', 'PHYSICIAN', 'OTHER BUSINESS', 'DME COMPANY', 'CLINIC', etc."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'npi': {'type': 'string', 'description': 'Recipient National Provider Identifier (exact, 10 digits). Precise join key to get_oig_exclusions.'}, 'year': {'type': 'integer', 'minimum': 2013, 'description': 'Program year (e.g., 2023). Default: latest published year.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Records per page. Default 25, max 500 (CMS page cap).'}, 'state': {'type': 'string', 'description': "Two-letter recipient state code (e.g., 'TX')."}, 'nature': {'type': 'string', 'description': "Substring against nature of payment (general only; e.g., 'consulting', 'speaker', 'royalty', 'food')."}, 'offset': {'type': 'integer', 'minimum': 0, 'description': 'Pagination offset into the filtered result set.'}, 'company': {'type': 'string', 'description': "Substring against the paying manufacturer / GPO name (e.g., 'pfizer', 'medtronic')."}, 'product': {'type': 'string', 'description': "Substring against the associated drug / device name (general only; e.g., 'eliquis', 'ozempic')."}, 'summarize': {'type': 'boolean', 'description': "true = CMS's pre-aggregated per-(company, nature) yearly totals instead of individual payments."}, 'payment_type': {'enum': ['general', 'research', 'ownership'], 'type': 'string', 'description': 'Dataset: general (default â\x80\x94 meals/consulting/speaker fees), research, or ownership (physician stakes).'}, 'recipient_last_name': {'type': 'string', 'description': 'Recipient physician / practitioner last name (exact, case-insensitive).'}, 'recipient_first_name': {'type': 'string', 'description': 'Recipient first name (exact, case-insensitive).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum inspections to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Inspection open_date lower bound (YYYY-MM-DD inclusive).'}, 'state': {'type': 'string', 'description': "Two-letter site state (e.g., 'TX', 'CA')."}, 'until': {'type': 'string', 'description': 'Inspection open_date upper bound (YYYY-MM-DD inclusive).'}, 'sort_by': {'enum': ['open_date', 'case_mod_date'], 'type': 'string', 'description': 'Sort key. Default: open_date. case_mod_date = most recently UPDATED cases (cannot combine with state/naics_code/since/until).'}, 'insp_type': {'type': 'string', 'description': "One-letter inspection-type code (e.g., 'M' Fat/Cat, 'B' Complaint, 'H' Planned â\x80\x94 full legend in the tool description)."}, 'naics_code': {'type': 'string', 'description': "Exact NAICS industry code of the inspected site (e.g., '238160' roofing contractors). Note: '000000' on many pre-NAICS-era records."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}, 'activity_nr': {'type': 'string', 'description': "Direct lookup by OSHA inspection activity number (e.g., '317465899'). Returns the inspection with its violations attached. Fastest path."}, 'min_penalty': {'type': 'number', 'description': 'Keep only inspections with at least one violation whose initial or current penalty is >= this amount (dollars). Implies include_violations=true.'}, 'establishment_name': {'type': 'string', 'description': "Case-insensitive substring against the inspected establishment's name (e.g., 'amazon', 'dollar general'). Client-side filter."}, 'include_violations': {'type': 'boolean', 'description': "When true, attaches each returned inspection's violation citations under a `violations` array (standard, type, penalties, abatement/contest dates). Default false."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'ticker': {'type': 'string', 'description': "Stock symbol filter, e.g. 'AAPL'. Case-insensitive."}, 'sort_by': {'enum': ['filing_date', 'approximate_sale_date', 'aggregate_market_value'], 'type': 'string', 'description': 'Field used for ordering and for the since/until date filters. Default: filing_date.'}, 'min_value': {'type': 'number', 'description': 'Filter to filings with aggregate_market_value >= this amount (USD). Use to focus on large planned sales.'}, 'filer_name': {'type': 'string', 'description': "Full or partial filer name; case-insensitive substring match. Example: 'Cook' matches Tim Cook's filings. NOTE: plain substring (not word-boundary) match â\x80\x94 a short surname can match mid-word too (e.g. 'Huang' also matches 'CHUANG'). Pass a longer/fuller name to disambiguate a specific person."}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent / largest first).'}, 'company_cik': {'type': 'string', 'description': 'SEC CIK number (10-digit, padded with leading zeros). Alternative to ticker when known.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'date_of_first_sale lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'date_of_first_sale upper bound (YYYY-MM-DD inclusive).'}, 'sort_by': {'enum': ['file_date', 'date_of_first_sale', 'total_amount_sold'], 'type': 'string', 'description': 'Default: file_date (most recently filed first).'}, 'filing_id': {'type': 'string', 'description': "EDGAR accession number (e.g., '0002131143-26-000001'). Direct doc lookup, fastest."}, 'issuer_cik': {'type': 'string', 'description': "Issuer's SEC CIK (1-10 digits; we zero-pad internally)."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'issuer_name': {'type': 'string', 'description': "Case-insensitive substring against the issuer's filed entity name. NOTE: matched over a recent-filing window, so it reliably finds CURRENT filers but can miss an issuer whose Form D filings are older than that window. To pull a specific issuer's full filing history regardless of date, use issuer_cik (most reliable)."}, 'is_amendment': {'type': 'boolean', 'description': 'When set, restricts to D/A amendments (true) or original D filings (false). Default: both.'}, 'issuer_state': {'type': 'string', 'description': "Issuer's state (2-letter code, e.g., 'CA', 'NY', 'DE'). Note many funds incorporate in DE while operating elsewhere."}, 'min_amount_sold': {'type': 'number', 'description': "Minimum total_amount_sold (USD). Filters out trivial offerings â\x80\x94 use 1000000 for 'real raises'."}, 'federal_exemption': {'type': 'string', 'description': "Filter to filings claiming a specific exemption code via array-contains. Common: '06b' (506(b)), '06c' (506(c)), '3C.1', '3C.7'."}, 'industry_group_type': {'type': 'string', 'description': "Substring against the top-level industry classification (e.g., 'technology', 'real estate', 'pooled investment')."}, 'jurisdiction_of_inc': {'type': 'string', 'description': "Substring against state of incorporation (e.g., 'delaware', 'cayman')."}, 'investment_fund_type': {'type': 'string', 'description': "Substring against the fund subtype, populated when industry_group_type is 'Pooled Investment Fund' (e.g., 'venture capital', 'private equity', 'hedge')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only recalls whose recall_initiation_date is on or after this date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only recalls whose recall_initiation_date is on or before this date.'}, 'source': {'enum': ['fda_drug', 'fda_device', 'fda_food', 'nhtsa', 'cpsc'], 'type': 'string', 'description': 'Filter to a single agency / category. Omit to see all sources combined.'}, 'status': {'type': 'string', 'description': "Exact match. Common values: 'Ongoing', 'Completed', 'Terminated', 'Recall Initiated'."}, 'sort_by': {'enum': ['recall_initiation_date', 'posted_date'], 'type': 'string', 'description': 'Default: recall_initiation_date.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default: desc (most recent first).'}, 'vehicle_make': {'type': 'string', 'description': "NHTSA-only filter. Vehicle make, uppercase (e.g., 'TOYOTA', 'FORD'). Ignored for other sources."}, 'recall_number': {'type': 'string', 'description': "Recall identifier as filed (e.g., FDA 'D-1234-2026'). Combine with source for direct doc lookup, fastest path."}, 'vehicle_model': {'type': 'string', 'description': 'NHTSA-only filter. Case-insensitive substring against vehicle model. Ignored for other sources.'}, 'classification': {'enum': ['Class I', 'Class II', 'Class III'], 'type': 'string', 'description': 'FDA severity classification. Class I is most severe (death / serious harm). Ignored for NHTSA / CPSC records.'}, 'recalling_firm': {'type': 'string', 'description': "Case-insensitive substring against the recalling firm name (e.g., 'Pfizer', 'Toyota', 'Whole Foods')."}, 'product_description': {'type': 'string', 'description': "Case-insensitive substring against the product description (e.g., 'lithium', 'romaine', 'airbag')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or after this date.'}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Only records on or before this date.'}, 'ticker': {'type': 'string', 'description': "Stock symbol filter, e.g. 'AAPL'. Case-insensitive."}, 'sort_by': {'enum': ['filing_date', 'period_of_report'], 'type': 'string', 'description': 'Default filing_date.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default desc.'}, 'company_cik': {'type': 'string', 'description': 'SEC CIK number (10-digit, padded). Alternative to ticker.'}, 'filing_type': {'enum': ['DEF 14A', 'DEFA14A', 'DEFM14A', 'DEFR14A'], 'type': 'string', 'description': "Exact filing-type filter. Use 'DEFM14A' for M&A-vote proxies only, 'DEF 14A' for annual proxies only."}, 'is_amendment': {'type': 'boolean', 'description': 'Convenience flag: filter to DEFR14A (revised) only.'}, 'is_merger_related': {'type': 'boolean', 'description': 'Convenience flag: filter to DEFM14A only.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': 'Issuer CIK (any zero-padding).'}, 'tier': {'enum': ['Tier1', 'Tier2'], 'type': 'string', 'description': 'Tier election: Tier1 (â\x89¤$20M, state review) or Tier2 (â\x89¤$75M, preempts state review).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Filing date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Filing date upper bound (YYYY-MM-DD inclusive).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Sort by filing date. Default desc.'}, 'issuer_name': {'type': 'string', 'description': 'Case-insensitive substring against issuer name.'}, 'jurisdiction': {'type': 'string', 'description': "Issuer's jurisdiction of organization (two-letter, e.g. 'DE')."}, 'accession_number': {'type': 'string', 'description': 'Direct lookup by EDGAR accession number.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'file_date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'file_date upper bound (YYYY-MM-DD inclusive).'}, 's1_only': {'type': 'boolean', 'description': 'When true, restricts to S-1 family (S-1 + S-1/A) â\x80\x94 the IPO / first-time pool.'}, 's3_only': {'type': 'boolean', 'description': 'When true, restricts to S-3 family (S-3 + S-3/A + S-3ASR) â\x80\x94 the shelf pool, including automatic shelf registrations filed by Well-Known Seasoned Issuers.'}, 'filer_cik': {'type': 'string', 'description': "Filer's SEC CIK (1-10 digits)."}, 'filing_id': {'type': 'string', 'description': 'EDGAR accession number. Direct doc lookup.'}, 'filer_name': {'type': 'string', 'description': "Case-insensitive substring against the filer's entity name (e.g., 'kraneshares', 'karyopharm'). NOTE: matched over a recent-filing window, so it reliably finds CURRENT filers but can miss an issuer whose registrations are older than that window. To pull a specific issuer's full registration history regardless of date, use filer_cik (most reliable) â\x80\x94 e.g. Circle Internet Group is filer_cik 0001876042."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recently filed first).'}, 'filing_type': {'enum': ['S-1', 'S-1/A', 'S-3', 'S-3/A', 'S-3ASR'], 'type': 'string', 'description': 'Exact filing-type match.'}, 'filer_ticker': {'type': 'string', 'description': "Ticker symbol (e.g., 'KPTI'). Often empty for IPO-stage S-1 filers (they don't have a ticker yet)."}, 'sec_file_number': {'type': 'string', 'description': "SEC-assigned registration file number ('333-XXXXXX'). Stable across amendments â\x80\x94 use to fetch a full amendment chain."}, 'exclude_amendments': {'type': 'boolean', 'description': 'When true, drops /A amendments. Default false.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum votes to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Vote-start date lower bound (ISO YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Vote-start date upper bound (ISO YYYY-MM-DD inclusive).'}, 'result': {'type': 'string', 'description': "Substring match against result text (e.g., 'passed', 'failed', 'agreed')."}, 'bill_id': {'type': 'string', 'description': "Filter to votes on a specific bill (composite key like '119-HR-134'). Use to chain a bill lookup â\x86\x92 votes on that bill."}, 'chamber': {'enum': ['house', 'senate'], 'type': 'string', 'description': 'Filter to House or Senate roll calls.'}, 'sort_by': {'enum': ['start_date', 'update_date'], 'type': 'string', 'description': 'Default: start_date (most recent votes first).'}, 'vote_id': {'type': 'string', 'description': "Composite vote identifier ('{chamber}-{congress}-{session}-{rcNumber}', e.g., 'house-119-1-240'). Direct doc lookup, fastest path."}, 'congress': {'type': 'integer', 'description': 'Congress number (e.g., 119).'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'session_number': {'enum': [1, 2], 'type': 'integer', 'description': 'Session within the Congress. Session 1 = first calendar year of the Congress; Session 2 = second year.'}, 'legislation_type': {'enum': ['HR', 'S', 'HRES', 'SRES', 'HJRES', 'SJRES', 'HCONRES', 'SCONRES'], 'type': 'string', 'description': 'Filter to votes on a specific legislation type.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Case-insensitive substring matched against the entry name AND its alternate names / aliases.'}, 'type': {'enum': ['Entity', 'Individual', 'Vessel', 'Aircraft'], 'type': 'string', 'description': 'Filter by entry type.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum records to return. Default 50, max 500.'}, 'country': {'type': 'string', 'description': "ISO-2 country code (e.g. 'CN', 'RU', 'IR'). Matches entries with an address in that country, or where the source list assigns the entry itself to that country. Common spellings are accepted ('UK', 'Turkiye', 'PRC', 'DPRK'); an unrecognised code is rejected rather than returning an empty result."}, 'program': {'type': 'string', 'description': "Case-insensitive substring against the entry's sanctions / control programs."}, 'sort_by': {'enum': ['name'], 'type': 'string', 'description': 'Default: name.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: asc (alphabetical by name).'}, 'source_short': {'type': 'string', 'description': 'Filter to one source list by short code: SDN, EL, DPL, MEU, UVL, CMIC, CAP, DTC, ISN, MBS, PLC, SSI.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cik': {'type': 'string', 'description': 'SEC CIK (any zero-padding).'}, 'form': {'enum': ['UPLOAD', 'CORRESP'], 'type': 'string', 'description': "UPLOAD = SEC's letter to the company; CORRESP = the company's response."}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum letters to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Letter date lower bound (YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Letter date upper bound (YYYY-MM-DD inclusive).'}, 'ticker': {'type': 'string', 'description': "Exact ticker (resolved from CIK; '' for unlisted filers)."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default desc. Use asc with a ticker filter to read a review thread in order.'}, 'company_name': {'type': 'string', 'description': 'Case-insensitive substring against the company name as indexed.'}, 'accession_number': {'type': 'string', 'description': "Direct lookup by EDGAR accession number (e.g., '0000000000-26-004788')."}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'Direct doc lookup ({YYYY-MM-DD}-{cusip}). Fastest path.'}, 'cusip': {'type': 'string', 'description': 'Exact CUSIP (preferred for foreign issuers / class shares).'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Max records. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Inclusive lower bound on settlement_date (YYYY-MM-DD).'}, 'until': {'type': 'string', 'description': 'Inclusive upper bound on settlement_date (YYYY-MM-DD).'}, 'ticker': {'type': 'string', 'description': 'Ticker symbol (uppercased automatically).'}, 'sort_by': {'enum': ['settlement_date', 'quantity_fails', 'fail_value'], 'type': 'string', 'description': 'Sort key. Default: settlement_date.'}, 'min_value': {'type': 'number', 'description': 'Inclusive lower bound on fail_value (dollars). E.g., 1000000 surfaces only $1M+ failures.'}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc.'}, 'min_quantity': {'type': 'number', 'description': 'Inclusive lower bound on quantity_fails (shares). E.g., 100000 surfaces only large failures.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Maximum filings to return. Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'Filing date lower bound (ISO YYYY-MM-DD inclusive).'}, 'until': {'type': 'string', 'description': 'Filing date upper bound (ISO YYYY-MM-DD inclusive).'}, 'form_type': {'enum': ['SC TO-T', 'SC TO-T/A', 'SC TO-I', 'SC TO-I/A'], 'type': 'string', 'description': "Exact form match. Useful for narrowing to amendments only ('SC TO-T/A') or original offers only ('SC TO-T')."}, 'bidder_cik': {'type': 'string', 'description': "Bidder's SEC CIK. Find all tender offers by a particular acquirer."}, 'sort_order': {'enum': ['asc', 'desc'], 'type': 'string', 'description': 'Default: desc (most recent filings first).'}, 'target_cik': {'type': 'string', 'description': "Target's SEC CIK (10-digit zero-padded). Use when ticker is ambiguous (multiple share classes)."}, 'bidder_name': {'type': 'string', 'description': "Case-insensitive substring against bidder_name. Bidders in SC TO-T are often private SPVs ('2025 Acquisition Company, LLC') â\x80\x94 use this to find them by issuer / parent name."}, 'issuer_only': {'type': 'boolean', 'description': 'When true, restricts to SC TO-I family (issuer buybacks). Default false.'}, 'target_name': {'type': 'string', 'description': "Case-insensitive substring against target_name. Useful when ticker isn't known (e.g., private companies in TO-T filings)."}, 'target_ticker': {'type': 'string', 'description': "Target company ticker (e.g., 'KZR'). For SC TO-T this is the company being bid for; for SC TO-I this is the company buying back its own shares (target == bidder)."}, 'accession_number': {'type': 'string', 'description': "EDGAR accession number (e.g., '0001140361-26-020397'). Direct doc lookup, fastest path."}, 'third_party_only': {'type': 'boolean', 'description': 'When true, restricts to SC TO-T family (third-party offers). Default false.'}, 'exclude_amendments': {'type': 'boolean', 'description': 'When true, drops /A amendment filings. Default false (amendments included).'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cusip': {'type': 'string', 'description': 'Filter to one specific CUSIP issuance.'}, 'limit': {'type': 'integer', 'maximum': 500, 'minimum': 1, 'description': 'Default 50, max 500.'}, 'since': {'type': 'string', 'description': 'ISO date YYYY-MM-DD. Applied to sort_by field.'}, 'until': {'type': 'string', 'description': 'ISO date YYYY-MM-DD.'}, 'sort_by': {'enum': ['auction_date', 'issue_date', 'maturity_date', 'offering_amount', 'bid_to_cover_ratio'], 'type': 'string', 'description': 'Default auction_date.'}, 'reopening': {'type': 'boolean', 'description': 'Filter to reopenings (new tranches of an existing CUSIP) only when true.'}, 'sort_order': {'enum': ['desc', 'asc'], 'type': 'string', 'description': 'Default desc.'}, 'security_type': {'type': 'string', 'description': "e.g. 'Bill', 'Note', 'Bond', 'TIPS', 'FRN', 'CMB'."}, 'min_bid_to_cover': {'type': 'number', 'description': 'Filter to auctions with bid_to_cover_ratio >= this value (e.g. 2.5 for strong-demand auctions only).'}, 'min_offering_amount': {'type': 'number', 'description': 'Filter to auctions with offering_amount >= this dollar amount.'}}, 'additionalProperties': False}
Input schema
{'type': 'object', 'properties': {'cusip': {'type': 'string', 'description': '9-character CUSIP security identifier. Fans out to institutional_holdings, activist_ownership, nport_holdings, treasury_auctions.'}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Alias for per_source_limit (this is a fan-out, so the cap is per source). Default 5, max 50.'}, 'since': {'type': 'string', 'description': "ISO date (YYYY-MM-DD). Applied to each collection's primary date field."}, 'until': {'type': 'string', 'description': 'ISO date (YYYY-MM-DD). Inclusive upper bound.'}, 'ticker': {'type': 'string', 'description': 'Stock symbol. Case-insensitive. Fans out to 13 collections.'}, 'sources': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional whitelist of source names. Default: all collections that index the provided identifier(s).'}, 'bioguide_id': {'type': 'string', 'description': 'Congressional bioguide ID (e.g. P000197 for Pelosi). Fans out to 2 collections.'}, 'company_cik': {'type': 'string', 'description': 'SEC CIK number for an issuer (10-digit, leading zeros). Fans out to 8 SEC collections.'}, 'company_name': {'type': 'string', 'description': "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 â\x80\x94 it is excluded here for fan-out latency."}, 'recipient_uei': {'type': 'string', 'description': 'USAspending recipient UEI. Fans out to federal_contracts only.'}, 'per_source_limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max records per source. Default 5, max 50.'}}, 'additionalProperties': False}
Recent tool changes
Similar MCP servers
Edgar
Accesses SEC EDGAR filings, XBRL financial facts, filing text, ownership, insider transactions, fund holdings, and company classi…
Sec Xbrl
Retrieves and analyzes SEC EDGAR XBRL company facts, financial statements, capital-market filings, dilution, liquidity, and R&D m…
Fintel Discovery — Financial Intelligence for AI Agents
Provides financial market, regulatory, economic, fund, company, advisor, broker, holdings, filings, and instrument-identification…
Signal Nodus SEC Filings
Analyzes SEC filings with amendment-safe section diffs, XBRL claim checks, and 8-K event tracking.
Data APIs SEC Event Intelligence API
Searches and analyzes SEC company filings, issuer profiles, filing events, insider filings, summaries, and watchlist changes.
Cotribute MCP
Connects agents to financial institution origination, analytics, and compliance workflows.
AlpineDataWorks Intelligence Server
Provides economic, market, supply-chain, real-estate, energy, consumer, labor, and other scored intelligence indices with histori…
Stratalize Finance
Provides financial, macroeconomic, banking, credit, commodities, M&A, ESG, labor, and regulatory benchmarks for analysis and plan…