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.

get/v1/activist-stakes

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

tickerstring

Issuer stock symbol filter, e.g. 'AAPL'. Case-insensitive.

include_filing_narrativeboolean

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.

company_cikstring

Issuer SEC CIK (10-digit, padded with leading zeros). Alternative to ticker.

cusipstring

9-character CUSIP of the security being reported on. Useful for cross-class filings (preferred vs common).

filer_namestring

Full or partial filer name; case-insensitive substring match. Example: 'BlackRock' matches all BlackRock entities.

filer_cikstring

Filer (reporting person) CIK. Exact match.

is_activistboolean

Filter to 13D filings only (true) or 13G only (false). Omit to include both. Use is_activist=true to surface takeover/activist signal.

filing_type'SCHEDULE 13D' | 'SCHEDULE 13D/A' | 'SCHEDULE 13G' | 'SCHEDULE 13G/A'

Exact filing type. /A variants are amendments. Original 13D/G filings (no /A) signal a fresh crossing of the 5% threshold.

min_percent_of_classnumber

Filter to filings where percent_of_class >= this value. Use to focus on large/concentrated stakes.

sincestring

ISO date (YYYY-MM-DD). Only records on or after this date, using sort_by as the date field.

untilstring

ISO date (YYYY-MM-DD). Only records on or before this date.

sort_by'filing_date' | 'event_date' | 'percent_of_class' | 'shares_owned'

Field used for ordering and for the since/until date filters. Default: filing_date.

sort_order'desc' | 'asc'

Default: desc (most recent / largest first).

limitinteger

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.