Skip to content
/api/v1/ownership/beneficial-ownership/filings

List and filter beneficial ownership filings with full structured data.

List and filter beneficial ownership filings with full structured data.

10 tokensSince v3.0.0

Why use this

The screening workhorse for Schedule 13D/13G beneficial-ownership filings — the SEC disclosure regime that requires anyone owning >5% of a public company's voting class to file within 10 days (13D) or annually (13G). Filter by issuer (ticker/CIK), filer (name/CIK), form type (`SC_13D` for active intent, `SC_13G` for passive), minimum ownership %, date range, amendment-only, and 13G→13D conversion-only. The right entry point for activist-investor surveillance ('every 13D filed against a healthcare name this quarter'), passive-fund tracking, and ownership-threshold crossings. Each row carries immediate-predecessor change deltas (`priorPercent`, `priorShares`, `percentChange`, `sharesChange`, `sharesChangePct`, `daysSincePriorFiling`) so amendment chains are first-class. Pair with `/ownership/beneficial-ownership/filings/{accession}` to drill into a single filing's structured payload.

Common use case

Screen for activist positions, track ownership changes over time, find all 13D filings for a specific issuer, filter by purpose category.

Lists Schedule 13D / 13G / 13D-A / 13G-A filings with per-filer position data, immediate-predecessor change deltas, and intent classification. percentChange is percentage-point movement; sharesChangePct uses the verified split-adjusted prior-share denominator. Pair with GET /api/v1/ownership/beneficial-ownership/filings/{accession} to drill into a single filing.

Parameters

NameInRequiredDefaultAllowedDescriptionExample
issuerCikqueryoptionalFilter by issuer CIK (the company being reported on). Leading zeros stripped server-side — `0000320193`, `320193`, and `00320193` all match Apple. Combine with `formType` for issuer-specific scans (e.g. all `SC_13D`s filed against AAPL).0000320193
issuerTickerqueryoptionalFilter by issuer ticker (case-insensitive). Server normalizes to canonical hyphen form (`BRK.A` → `BRK-A`). Multi-class issuers preserve the share class actually filed.AAPL
filerCikqueryoptionalFilter by filer CIK (the entity DOING the reporting — typically a fund or family office). Leading zeros stripped. Use to track one filer's activity across all issuers.0001067983
filerNamequeryoptionalPartial-match search on filer name (case-insensitive `ILIKE '%name%'`). Less precise than `filerCik` but useful when you don't yet know the CIK. Example: `filerName=ICAHN` finds all Carl-Icahn-affiliated filings (Icahn Enterprises LP, Icahn Partners, etc.).BERKSHIRE HATHAWAY
formTypequeryoptionalForm type filter — exactly one of `SC_13D` (active intent — 5-business-day filing window after crossing 5%, 17 CFR 240.13d-1(a)), `SC_13D_A` (13D amendment), `SC_13G` (passive/institutional intent — quarterly, month-end, or 5-business-day clock per filer category), `SC_13G_A` (13G amendment). Note: SEC's published form names use slashes (`SC 13D/A`); FinRadar normalizes to underscores for URL safety.SC_13D
minOwnershipqueryoptionalMinimum aggregate `percent_of_class` threshold. Default behaviour returns ALL filings (including <5% amendments that filed for cessation of beneficial ownership). Set to `5.0` to filter to >5% positions only; set to `10.0` for the 'real material activist' subset; set to `0.01` to also surface near-zero amendments documenting position exits.5
dateFromqueryoptionalInclusive lower bound on `filedAt` (acceptance date — not the trade date). Format ISO `YYYY-MM-DD`. Useful for incremental-pull workflows: query `dateFrom = last_run_timestamp` to catch only new filings.2026-01-01
dateToqueryoptionalInclusive upper bound on `filedAt`. Format ISO `YYYY-MM-DD`. Combine with `dateFrom` for closed ranges (e.g. one quarter).2026-04-01
isAmendmentqueryoptionalWhen `true`, filter to amendment filings only (`SC_13D_A` + `SC_13G_A`). When `false`, filter to original filings only. Omit for both. Most-frequent amendments document position-size changes and ownership-purpose updates.true
isConversionqueryoptionalWhen `true`, filter to 13G→13D conversions only — i.e. filings where a passive holder upgraded to active intent (often a leading indicator of activist campaigns or going-hostile-on-board signals). When `false`, exclude conversions. Omit for both. Conversions are a small minority of filings (<5%).true
sortqueryoptionalfiledAtSort field — one of `filedAt` (default; chronological), `aggregatePercent` (largest position first), `aggregateShares` (largest share count). Combine with `order=desc/asc`.aggregatePercent
orderqueryoptionaldescSort direction — `asc` (oldest/smallest first) or `desc` (newest/largest first; default).desc
pagequeryoptional11-based page number for pagination. `page=1` returns the first page; `page=2` returns the next, etc. Combined with `size` to compute offset (`offset = (page - 1) * size`).1
sizequeryoptional50Page size, capped at 200 server-side. Larger pages reduce round-trips for bulk-export workflows but increase per-request latency. For full corpus enumeration use date-range chunking + `size=200`.50
includequeryoptionalComma-list of optional payload expansions on LIST rows (added v3.131.0): `items` — the filing's structured per-item values keyed `item1`..`item10` (third-party-parity field names, exactly as the filer stated them); `exhibits` — exhibit metadata (number, type, description, URL; the fetched trading-exhibit text stays detail-endpoint-only for size). An unknown member returns HTTP 400 listing the valid values — a typo can never silently serve less than you asked for. Batched server-side: one extra query per include for the whole page, regardless of page size.items,exhibits

Response schema

FieldTypeNullableDescription
filingsarraynoArray of filing rows — one row per `(accession_number, filer_cik)` pair (so a 13D filed jointly by 3 group members produces 3 rows). Sorted per the `sort` + `order` parameters. Empty array on no match.
filings[].accessionNumberstringnoSEC accession number in canonical `XXXXXXXXXX-YY-NNNNNN` format. Pass to `/ownership/beneficial-ownership/filings/{accession}` to retrieve the full structured payload (all filers + positions + exhibits + amendment chain).
filings[].formTypestringnoSchedule 13D/13G form type — one of `13D` (active intent — 10-day filing window after crossing 5%), `13G` (passive intent — annual filing), `13D/A` (13D amendment), `13G/A` (13G amendment). The `/A` suffix is preserved verbatim. 13D filings carry materially higher signal than 13G — they require disclosing INTENT, not just OWNERSHIP.
filings[].filedAtstringnoISO-8601 UTC timestamp of SEC EDGAR acceptance. Distinct from `eventDate` (the date that triggered the filing obligation — typically the date the position crossed 5%). For activist surveillance, the `filedAt` lag from `eventDate` is itself a signal (close-to-deadline filings indicate compliance-heavy intent vs proactive disclosure).
filings[].issuerCikstringnoIssuer CIK (the company being reported on, NOT the filer). 10-character zero-padded string. The natural join key against `/api/v1/sec/filings`, `/financials/metrics`, and `/insider-module/api/insiders/transactions/by-ticker/{ticker}`.
filings[].issuerTickerstringyesIssuer ticker resolved from the issuer CIK via `ticker_norm_aliases`. Null when the issuer has no public-equity ticker (private-company 13D filings against pending mergers, foreign issuers without ADRs). Multi-class issuers return the canonical class (typically the most-traded one).
filings[].nameOfIssuerstringnoOfficial EDGAR-registered name of the issuer — canonical, one consistent name per CIK (the same name is returned for every filing of the same company, latest registration wins across renames).
filings[].filerCikstringnoFiler CIK (the entity DOING the reporting — fund, family office, individual, or activist). 10-character zero-padded string. Join key for filer-portfolio queries via `/ownership/beneficial-ownership/filers/{cik}/portfolio`.
filings[].filerNamestringnoOfficial EDGAR-registered name of the filer where the filer has a CIK — canonical, one consistent name per CIK. Individuals without a CIK show their name as filed. For activists this often surfaces multi-entity structures (e.g. `Icahn Enterprises L.P.`, `Icahn Partners L.P.` — all Carl Icahn affiliates). Use `filerCik` as the stable identifier.
filings[].percentOfClassnumberyesAggregate beneficial-ownership percent of the issuer's voting class, as reported by the filer (Item 13 on the cover page). Above 5.00 is the regulatory trigger threshold. Null only when the filing was malformed or the cover page omitted the field (rare; mostly pre-2010 archival filings).
filings[].sharesOwnednumberyesAggregate shares beneficially owned across all positions in the filing. Includes shared voting + dispositive power. Always positive. Null only on malformed legacy filings. NOT split-adjusted — preserves the as-filed view.
filings[].priorPercentnumberyesOwnership percent from the immediately prior provably comparable filing. Null when no predecessor is provable.
filings[].amendmentNumbernumberyesFiler-stated amendment sequence number. Distinct from `amendment.amendmentNumber`, the linker's in-corpus chain count.
filings[].priorAccessionNostringyesResolved immediate economic predecessor accession. Null when no predecessor is provable.
filings[].secReferenceAccessionNostringyesRaw SEC `previousAccessionNumber` exactly as filed. Provenance only; modern amendments may repeat the original accession.
filings[].priorSharesnumberyesRaw as-filed shares from the immediately prior comparable filing.
filings[].priorSharesAdjustednumberyesPrior shares adjusted through the current filing's event date for verified splits. This is the `sharesChangePct` denominator.
filings[].percentChangenumberyesPercentage-point movement vs the immediate predecessor (`currentPercent - priorPercent`), not relative percent growth.
filings[].sharesChangenumberyesExact economic share delta (`currentShares - priorSharesAdjusted`). Null when predecessor or split evidence is unprovable.
filings[].sharesChangePctnumberyes`sharesChange / priorSharesAdjusted * 100`. Null when split evidence or the adjusted denominator is unavailable.
filings[].daysSincePriorFilingnumberyesCalendar days between the current filing and its resolved immediate predecessor.
filings[].purposestringyesClassified filer intent — one of `passive`, `activist`, `m&a`, `going-private`, `proxy-fight`, `recapitalization`, `block-trade`, `unspecified`, etc. Derived from rule-based NLP classification of the filing's Item 4 (Purpose of Transaction). Null on legacy pre-classification filings. The single most-watched signal for activist-detection workflows.
metaobjectnoPagination + filter echo block: `{ total: integer, page: integer, size: integer, applied_filters: object }`. `total` is the cap-aware match count (full-corpus when below 10000).

Sample response

·
  • "filings":
    ]
  • "meta":
    • "total": 1
    • "limit": 100
    }
}

Errors

StatusLabelDescription
200OKRequest succeeded.
400Bad RequestInvalid query, body, or path parameter.
401UnauthorizedMissing or invalid Authorization header / api_Token.
402Payment RequiredInsufficient token balance for this call. Top up
429Too Many RequestsRate limit exceeded for your tier (see /pricing for tier limits). Tier limits
500Server ErrorUnexpected server-side failure. Retry with backoff; report if persistent.

Code samples

curl "https://api.finradar.ai/api/v1/ownership/beneficial-ownership/filings?api_Token=YOUR_API_KEY&issuerCik=0000320193&issuerTicker=AAPL&filerCik=0001067983&filerName=BERKSHIRE+HATHAWAY&formType=SC_13D&minOwnership=5&dateFrom=2026-01-01&dateTo=2026-04-01&isAmendment=true&isConversion=true&sort=aggregatePercent&order=desc&page=1&size=50&include=items%2Cexhibits" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).

Try it

Related endpoints