---
title: "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"
method: GET
path: "/v1/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

`GET /v1/material-events`

## Request

- Base URL: `https://api.keyvex.com`
- URL: `https://api.keyvex.com/v1/material-events`
- Auth: API key in header `x-api-key`

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.

## Query parameters

- `ticker` string
- `company_cik` string
- `item_codes` string
- `is_amendment` boolean
- `since` string
- `until` string
- `sort_by` 'filing_date' | 'period_of_report'
- `sort_order` 'desc' | 'asc'
- `limit` integer

## Response `200`

JSON envelope: { results: [...], count, has_more }.

## Other responses

- `400`: Invalid parameter.
- `401`: Missing or invalid API key.
- `402`: This tool requires a higher plan (upgrade_required). Retrying will not help.
- `429`: Tier rate/quota limit reached (rate_limited). Retry-After points at the reset.

---

[API](https://skmtc.dev/keyvex/apis/keyvex-api.md) · [All operations](https://skmtc.dev/keyvex/apis/keyvex-api/llms.txt) · [OpenAPI document](https://skmtc.dev/keyvex/apis/keyvex-api/revisions/01c0210c19cd?raw)
