Events · US only
Stake changes
- Coverage
- US
- Billing
- 20 cr / thousand calls
Returns major shareholder positions disclosed in SEC Schedule 13D/G filings. Each row represents one reporting person and security position in a filing, with the currently reported ownership, its change from the preceding filing when calculable, and a link to the official document; a joint filing can return multiple rows. Only the latest row for each company + shareholder + security sequence is returned. event_class is fixed at ownership and event_type at stake_change. For routine insider trades, use /insider-trades.
Response enums list only values allowed by this endpoint; each row returns one string for event_class and one for event_type. Nullable fields return null when undisclosed or inapplicable; empty arrays return [].
- Ownership percentages are response fields only; there is no range filter.
- The endpoint does not offer cross-company queries by shareholder name (there is no
holder=parameter), preventing cross-company shareholder profiling. intentis normalized from the 13D / 13G form type toactive/passive;directionis calculated from the change in shares or ownership percentage between two filings in the same position sequence. Both values appear inaxisand as top-level fields.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| ticker | string | optional | Up to 10 values, comma-separated; when omitted, the endpoint scans across companies; use it with from / to. The market is carried by the canonical ticker itself, so there is no market parameter. Default: all companies. |
| from | date | optional | Start of the event date (event_date) range, inclusive; for a single day, set from = to. |
| to | date | optional | End of the event date range, inclusive. |
| limit | int | optional | Maximum 500. Default: 50. |
| page | int | optional | Starts at 1. Default: 1. |
Sort order: event_date desc, accession_number desc, event_id asc. Paged with limit and page (pages start at 1); fewer rows than limit means the last page.
Response fields
| Field | Type | Description |
|---|---|---|
| event_id | string | Id of a single event; the same value on the typed endpoints and on the timeline |
| ticker | string | Canonical ticker |
| market | stringenum | Fixed value: US |
| event_class | stringenum | Fixed value: ownership |
| event_type | stringenum | Fixed value: stake_change |
| axis | object | Secondary classifications: intent is active / passive, and direction is increase / decrease. Returns {} when no secondary classification is available. The same values are also returned as top-level fields |
| source_category | string | SEC form name preserved as filed: SC 13D / SC 13D/A / SC 13G / SC 13G/A, or the corresponding SCHEDULE spelling |
| event_date | date | Date of the event that triggered the 13D/G filing requirement; falls back to filing_date when the source does not provide it |
| title | string | One-sentence title |
| stage | stringenum | An initial filing is completed; an /A amendment is amended |
| event_group_id | string | Successive filings for the same company + shareholder + security position share one id |
| is_current | bool | Always true; historical filing versions are not returned by this endpoint |
| accession_number | string | SEC accession number |
| form_type | string | SEC Schedule 13D/G form type, preserving the /A amendment suffix |
| filing_url | string | Deep link to the official SEC document |
| filing_date | date | Filing date |
| holder_name | string | Shareholder name (as filed) |
| pct_before | number | null | Ownership percentage before the change (%) |
| pct_after | number | null | Ownership percentage after the change (%) |
| threshold_pct | number | Statutory threshold that triggers the filing (US 5.0) |
| shares_after | number | null | Shares held after the change |
| shares_changed | number | null | Shares changed in this event |
| direction | string | nullenum | stake_change secondary axis: increase | decrease |
| intent | stringenum | stake_change secondary axis: active (13D) | passive (13G) |
No key yet? Create one under API Keys — it is shown once, so store it where your shell can read it. Connecting an agent over MCP instead? That signs in through the browser and needs no key at all.
Authentication, conventions, rate limits and error shapes are the same for every endpoint — they live on REST API.