drillr.ai
API keys →

Events · US only

Stake changes

GET/api/v2/events-ownershipUS only
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.
  • intent is normalized from the 13D / 13G form type to active / passive; direction is calculated from the change in shares or ownership percentage between two filings in the same position sequence. Both values appear in axis and as top-level fields.

Query parameters

ParameterTypeRequiredDescription
tickerstringoptionalUp 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.
fromdateoptionalStart of the event date (event_date) range, inclusive; for a single day, set from = to.
todateoptionalEnd of the event date range, inclusive.
limitintoptionalMaximum 500. Default: 50.
pageintoptionalStarts 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

FieldTypeDescription
event_idstringId of a single event; the same value on the typed endpoints and on the timeline
tickerstringCanonical ticker
marketstringenumFixed value: US
event_classstringenumFixed value: ownership
event_typestringenumFixed value: stake_change
axisobjectSecondary 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_categorystringSEC form name preserved as filed: SC 13D / SC 13D/A / SC 13G / SC 13G/A, or the corresponding SCHEDULE spelling
event_datedateDate of the event that triggered the 13D/G filing requirement; falls back to filing_date when the source does not provide it
titlestringOne-sentence title
stagestringenumAn initial filing is completed; an /A amendment is amended
event_group_idstringSuccessive filings for the same company + shareholder + security position share one id
is_currentboolAlways true; historical filing versions are not returned by this endpoint
accession_numberstringSEC accession number
form_typestringSEC Schedule 13D/G form type, preserving the /A amendment suffix
filing_urlstringDeep link to the official SEC document
filing_datedateFiling date
holder_namestringShareholder name (as filed)
pct_beforenumber | nullOwnership percentage before the change (%)
pct_afternumber | nullOwnership percentage after the change (%)
threshold_pctnumberStatutory threshold that triggers the filing (US 5.0)
shares_afternumber | nullShares held after the change
shares_changednumber | nullShares changed in this event
directionstring | nullenumstake_change secondary axis: increase | decrease
intentstringenumstake_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.