/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 |
|---|---|---|---|
| status | string | no | — |
| request_id | string | yes | — |
| timestamp | string | no | — |
| data | array | no | — |
| data[].accessionNo | string | yes | — |
| data[].formType | string | yes | — |
| data[].filedAt | string | yes | — |
| data[].dateOfEvent | string | yes | Optional; omitted when not applicable. |
| data[].priorAccessionNo | string | yes | Optional; omitted when not applicable. |
| data[].secReferenceAccessionNo | string | yes | Optional; omitted when not applicable. |
| data[].periodEndDate | string | yes | Optional; omitted when not applicable. |
| data[].nameOfIssuer | string | yes | Optional; omitted when not applicable. |
| data[].titleOfSecurities | string | yes | Optional; omitted when not applicable. |
| data[].eventDate | string | yes | Optional; omitted when not applicable. |
| data[].filerCategory | string | yes | Optional; omitted when not applicable. |
| data[].latencyClass | string | yes | Optional; omitted when not applicable. |
| data[].dateCrossed5pct | string | yes | Optional; omitted when not applicable. |
| data[].convertedFromType | string | yes | Optional; omitted when not applicable. |
| data[].secFilingUrl | string | yes | Optional; omitted when not applicable. |
| data[].secIndexUrl | string | yes | Optional; omitted when not applicable. |
| data[].primaryDocumentUrl | string | yes | Optional; omitted when not applicable. |
| data[].applicableRule | string | yes | Optional; omitted when not applicable. |
| data[].createdAt | string | yes | Optional; omitted when not applicable. |
| data[].isAmendment | boolean | yes | Optional; omitted when not applicable. |
| data[].amendmentNumber | integer | yes | Optional; omitted when not applicable. |
| data[].isConversion | boolean | yes | Optional; omitted when not applicable. |
| data[].schedule13gFiledPreviously | boolean | yes | Optional; omitted when not applicable. |
| data[].cusip | array | no | Optional; omitted when not applicable. |
| data[].cusip[] | string | no | — |
| data[].issuer | object | no | — |
| data[].issuer.name | string | yes | — |
| data[].issuer.cik | string | yes | — |
| data[].issuer.ticker | string | yes | — |
| data[].issuer.cusip | string | yes | — |
| data[].issuer.classOfSecurities | string | yes | — |
| data[].issuer.sector | string | yes | — |
| data[].issuer.industry | string | yes | — |
| data[].aggregatePercent | number | yes | — |
| data[].aggregateShares | number | yes | — |
| data[].filers | array | no | — |
| data[].filers[].filerName | string | yes | — |
| data[].filers[].filerCik | string | yes | — |
| data[].positions | array | no | — |
| data[].positions[].percentOfClass | number | yes | — |
| data[].positions[].sharesBeneficiallyOwned | number | yes | — |
| data[].purpose | object | no | Optional; omitted when not applicable. |
| data[].items | object | no | Optional; omitted when not applicable. |
| data[].exhibits | array | no | Optional; omitted when not applicable. |
| data[].priorPercent | number | yes | — |
| data[].priorShares | number | yes | — |
| data[].priorSharesAdjusted | number | yes | — |
| data[].percentChange | number | yes | — |
| data[].sharesChange | number | yes | — |
| data[].sharesChangePct | number | yes | — |
| data[].daysSincePriorFiling | number | yes | — |
| meta | object | no | — |
| meta.total | integer | no | — |
| meta.page | integer | no | — |
| meta.size | integer | no | — |
| meta.totalPages | integer | no | — |
Sample response
·
- "status": "success"
- "request_id": null
- "timestamp": "2026-09-25T12:00:00Z"
- "data":
- "meta":
- "total": 1
- "page": 1
- "size": 50
- "totalPages": 1
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?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 "X-API-Key: YOUR_API_KEY"Generate an API key in /account/credentials to run live queries (literal YOUR_API_KEY placeholder shown until then).