get_material_events
Returns Form 8-K filings — the SEC's 'current report' form, filed within 4 business days of any material event at a publicly-traded company. Each record is one filing, with item_codes declaring WHAT kind of event(s) it covers. Use this when the user asks about: recent CEO/CFO departures or appointments, M&A announcements, earnings releases, big contract wins, restructurings, going-concern warnings, exec compensation changes, or any 'what just happened at this company' question. Item codes (most-used; many more exist): 1.01 Entry into a Material Definitive Agreement 1.02 Termination of a Material Definitive Agreement 2.01 Completion of Acquisition or Disposition of Assets 2.02 Results of Operations (earnings releases live here) 2.03 Creation of a Material Direct Financial Obligation 3.01 Notice of Delisting / Failure to Satisfy Listing Rule 3.02 Unregistered Sales of Equity Securities 4.01 Changes in Registrant's Certifying Accountant 5.02 Departure / Election / Appointment of Officers + Directors 5.07 Submission of Matters to a Vote of Security Holders 7.01 Regulation FD Disclosure 8.01 Other Events (catch-all) 9.01 Financial Statements and Exhibits — NOTE: nearly every 8-K ticks this 'paperwork box.' Searching JUST for 9.01 returns the firehose; combine it with another item_code to focus. item_codes filter is OR-semantic: pass an array, match any filing containing AT LEAST ONE of those codes. Capped at 30 codes per query (Firestore array-contains-any limit). Examples: ['5.02'] for exec changes; ['1.01','2.01'] for any deal activity (LOI or close); ['2.02'] for earnings. Amendments (8-K/A) get their own row with is_amendment: true. The original 8-K stays in place. v1 does NOT populate original_accession_number; agents can find candidates by matching (ticker, period_of_report) across rows. Filter is_amendment: false for clean original-only views. v1 does not extract the prose body — primary_document_url points agents at the source HTML for direct fetch. The structured items are what's queryable here.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return. Default 50, max 500. | |
| since | No | ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field. | |
| until | No | ISO date (YYYY-MM-DD). Only records on or before this date. | |
| ticker | No | Stock symbol filter, e.g. 'AAPL'. Case-insensitive. | |
| sort_by | No | 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 — those rows fall back to filing_date ordering automatically, so sort_by='period_of_report' won't bury them. | |
| item_codes | No | 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 | No | Default: desc (most recent first). | |
| company_cik | No | SEC CIK number (10-digit, padded with leading zeros). Alternative to ticker. | |
| is_amendment | No | Filter to only original 8-Ks (false) or only amendments / 8-K/A filings (true). Omit to include both. |