---
title: "Returns Schedule 13D / 13G beneficial-ownership disclosures — filings made by anyone holding ≥5% of a class of registered equity securities"
method: GET
path: "/v1/activist-stakes"
---

# Returns Schedule 13D / 13G beneficial-ownership disclosures — filings made by anyone holding ≥5% of a class of registered equity securities

`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`

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.

## Query parameters

- `ticker` string
- `include_filing_narrative` boolean
- `company_cik` string
- `cusip` string
- `filer_name` string
- `filer_cik` string
- `is_activist` boolean
- `filing_type` 'SCHEDULE 13D' | 'SCHEDULE 13D/A' | 'SCHEDULE 13G' | 'SCHEDULE 13G/A'
- `min_percent_of_class` number
- `since` string
- `until` string
- `sort_by` 'filing_date' | 'event_date' | 'percent_of_class' | 'shares_owned'
- `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)
