Returns Schedule 13D / 13G beneficial-ownership disclosures — filings made by anyone holding ≥5% of a class of registered equity securities
Returns Schedule 13D / 13G beneficial-ownership disclosures — filings made by anyone holding ≥5% of a class of registered equity securities. Each record is one reporting person on one filing (joint filings emit multiple rows under the same accession_number). Use this when the user asks about: who's accumulating large stakes, activist campaigns, takeover targets, hostile bids, or institutional concentration in a name. Also for 'who owns this company at the 5%+ level?' questions. Two flavors, distinguished by is_activist: - 13D (is_activist=true): filer signals INTENT TO INFLUENCE control. Activist campaigns, takeover stakes, hostile bidders. - 13G (is_activist=false): filer is PASSIVE. Mutual funds, advisers, banks, insurers, qualified institutional holders. Filter is_activist: true to see only the takeover-style filings — much higher signal-to-noise than the 13G firehose, which is dominated by routine quarterly disclosures from Vanguard, BlackRock, etc. COVERAGE FLOOR: KeyVex's ingestion of Schedule 13D/G filings begins January 2024. Filings before 2024 are not in the collection. A 13D/G query for activity in 2023 or earlier returns zero records — this is the collection's coverage boundary, not a per-entity gap. 13D/A and 13G/A AMENDMENT EXIT FILINGS: when a filer reports they have divested below the 5% threshold, the resulting row carries shares_owned: 0 and percent_of_class: 0. These rows are CORRECT — an exit IS zero — not missing data. To distinguish active stakes from exit filings, filter by shares_owned > 0 or by min_percent_of_class. ⚠ THIS TEXT USED TO SAY Item 4 WAS NOT AVAILABLE HERE. It is, as of 2026-08-28. Pass include_filing_narrative:true for the filer's own 'Item 4: Purpose of Transaction' — where board seats, consent rights and control intentions are actually declared — plus Item 2 (the ownership chain behind the filer), Item 2(d)-(e) (criminal and civil proceedings, as prose), Item 3 (source of funds) and Item 6 (the contracts with the issuer that implement Item 4). It is off by default only because it is long, not because it is missing: measured at 58.5% of a row. Rows holding withheld narrative say so via filing_narrative_available. 13D only.
Request
- Base URL: https://api.keyvex.com
- URL: https://api.keyvex.com/v1/activist-stakes
- Auth: API key in header x-api-key
Query parameters
Issuer stock symbol filter, e.g. 'AAPL'. Case-insensitive.
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 — usually a denial, never reduced to a flag), Item 3 (source of funds: own money vs borrowings), Item 4 (PURPOSE OF TRANSACTION — 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 — 13G filings carry no narrative items.
Issuer SEC CIK (10-digit, padded with leading zeros). Alternative to ticker.
9-character CUSIP of the security being reported on. Useful for cross-class filings (preferred vs common).
Full or partial filer name; case-insensitive substring match. Example: 'BlackRock' matches all BlackRock entities.
Filer (reporting person) CIK. Exact match.
Filter to 13D filings only (true) or 13G only (false). Omit to include both. Use is_activist=true to surface takeover/activist signal.
Exact filing type. /A variants are amendments. Original 13D/G filings (no /A) signal a fresh crossing of the 5% threshold.
Filter to filings where percent_of_class >= this value. Use to focus on large/concentrated stakes.
ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.
ISO date (YYYY-MM-DD). Only records on or before this date.
Field used for ordering and for the since/until date filters. Default: filing_date.
Default: desc (most recent / largest first).
Maximum records to return. Default 50, max 500.
Response
JSON envelope: { results: [...], count, has_more }.
Changes
No recorded changes to this operation across all 1 revision of this API.