/api/v1/ownership/beneficial-ownership/filingsList 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
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| issuerCik | query | optional | — | — | Filter 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 |
| issuerTicker | query | optional | — | — | Filter 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 |
| filerCik | query | optional | — | — | Filter 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 |
| filerName | query | optional | — | — | Partial-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 |
| formType | query | optional | — | — | Form 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 |
| minOwnership | query | optional | — | — | Minimum 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 |
| dateFrom | query | optional | — | — | Inclusive 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 |
| dateTo | query | optional | — | — | Inclusive upper bound on `filedAt`. Format ISO `YYYY-MM-DD`. Combine with `dateFrom` for closed ranges (e.g. one quarter). | 2026-04-01 |
| isAmendment | query | optional | — | — | When `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 |
| isConversion | query | optional | — | — | When `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 |
| sort | query | optional | filedAt | — | Sort field — one of `filedAt` (default; chronological), `aggregatePercent` (largest position first), `aggregateShares` (largest share count). Combine with `order=desc/asc`. | aggregatePercent |
| order | query | optional | desc | — | Sort direction — `asc` (oldest/smallest first) or `desc` (newest/largest first; default). | desc |
| page | query | optional | 1 | — | 1-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 |
| size | query | optional | 50 | — | Page 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 |
| include | query | optional | — | — | Comma-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
| Field | Type | Nullable | Description |
|---|---|---|---|
| filings | array | no | Array 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[].accessionNumber | string | no | SEC 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[].formType | string | no | Schedule 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[].filedAt | string | no | ISO-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[].issuerCik | string | no | Issuer 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[].issuerTicker | string | yes | Issuer 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[].nameOfIssuer | string | no | Official 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[].filerCik | string | no | Filer 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[].filerName | string | no | Official 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[].percentOfClass | number | yes | Aggregate 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[].sharesOwned | number | yes | Aggregate 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[].priorPercent | number | yes | Ownership percent from the immediately prior provably comparable filing. Null when no predecessor is provable. |
| filings[].amendmentNumber | number | yes | Filer-stated amendment sequence number. Distinct from `amendment.amendmentNumber`, the linker's in-corpus chain count. |
| filings[].priorAccessionNo | string | yes | Resolved immediate economic predecessor accession. Null when no predecessor is provable. |
| filings[].secReferenceAccessionNo | string | yes | Raw SEC `previousAccessionNumber` exactly as filed. Provenance only; modern amendments may repeat the original accession. |
| filings[].priorShares | number | yes | Raw as-filed shares from the immediately prior comparable filing. |
| filings[].priorSharesAdjusted | number | yes | Prior shares adjusted through the current filing's event date for verified splits. This is the `sharesChangePct` denominator. |
| filings[].percentChange | number | yes | Percentage-point movement vs the immediate predecessor (`currentPercent - priorPercent`), not relative percent growth. |
| filings[].sharesChange | number | yes | Exact economic share delta (`currentShares - priorSharesAdjusted`). Null when predecessor or split evidence is unprovable. |
| filings[].sharesChangePct | number | yes | `sharesChange / priorSharesAdjusted * 100`. Null when split evidence or the adjusted denominator is unavailable. |
| filings[].daysSincePriorFiling | number | yes | Calendar days between the current filing and its resolved immediate predecessor. |
| filings[].purpose | string | yes | Classified 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. |
| meta | object | no | Pagination + 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
| Status | Label | Description |
|---|---|---|
| 200 | OK | Request succeeded. |
| 400 | Bad Request | Invalid query, body, or path parameter. |
| 401 | Unauthorized | Missing or invalid Authorization header / api_Token. |
| 402 | Payment Required | Insufficient token balance for this call. Top up |
| 429 | Too Many Requests | Rate limit exceeded for your tier (see /pricing for tier limits). Tier limits |
| 500 | Server Error | Unexpected 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).