/api/v1/form-13f/latestGet the most recently parsed 13F filings across all funds, sorted by filing date descending.
Get the most recently parsed 13F filings across all funds, sorted by filing date descending.
Why use this
Common use case
Returns the most-recently parsed 13F filings as a live activity feed — sorted by parsed_at DESC (NOT filed_at, since SEC EDGAR occasionally accepts filings out of order). Each entry carries the fund identity, portfolio value, holdings count, AND QoQ position-change statistics — so a single GET call surfaces enough information to render an 'institutional activity feed' tile WITHOUT additional drill-downs.
Both analysis (legacy raw count names) AND statistics (frontend-friendly names + prior_quarter_available flag) are returned for backwards compatibility. The statistics field's schema is INTENTIONALLY identical to the WebSocket new_13f_filing event payload — so frontends can render REST and WebSocket events with the same component code (Phase 47-era WebSocket normalization).
Live updates: for true real-time consumption (filings as they're parsed), prefer the WebSocket /13f namespace — subscribe to new_13f_filing for push-based updates. This REST endpoint is the polling fallback (typical poll cadence: 30s during filing season, 5min between seasons).
For full-portfolio drill-down on any row, pass cik + period_of_report to GET /api/v1/form-13f/fund/{cik}. For the raw filing artifact, pass accession_no to GET /api/v1/sec/filings/{accession_number}. All monetary values in USD (post-Plan-51 thousands correction — note utility text is legacy and pre-dates the correction).
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| limit | query | optional | 20 | — | Number of filings to return (max 100) | 20 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| data | array | no | Array of the N most-recently parsed 13F filings, sorted by `parsed_at DESC` (most-recently ingested first — NOT filed-at-DESC, since SEC EDGAR sometimes accepts filings out of order). Page size capped by `limit` (default 20, max 100). The 'live activity feed' shape. |
| data[].accession_no | string | no | SEC accession number in canonical 18-char dashed format `XXXXXXXXXX-YY-NNNNNN` (e.g. `0001012975-25-000452`). Pass to `POST /api/v1/form-13f/holdings` (via `accessionNo:...` query) or [GET /api/v1/sec/filings/{accession_number}](/docs/sec-filings/sec-filings-api/get-sec-filings-accession-number) for the raw filing artifact. |
| data[].fund_name | string | no | Registrant name AS FILED on the 13F-HR cover page. Casing preserved verbatim (sometimes Title Case, sometimes ALL CAPS depending on the filer's submission style). |
| data[].cik | string | no | Filer CIK as a 10-character zero-padded string. Stable join key against the rest of the 13F surface. |
| data[].period_of_report | string | no | ISO `YYYY-MM-DD` reporting quarter end (always a calendar quarter end: 03-31, 06-30, 09-30, 12-31). 13F-HR is filed within 45 days of this date. |
| data[].filed_at | string | no | ISO `YYYY-MM-DD` filing acceptance date — the date the SEC stamped the filing as accepted. Use for filing-cadence analysis (which managers file early vs late). |
| data[].table_value_total | number | no | Total reported portfolio value across all positions in the filing, in USD (post-Plan-51 thousands-vs-actual-dollars normalization). NOTE: pre-Plan-51 the field was in SEC thousands (multiply by 1000 for actual dollars); the older `utility` text on this endpoint reflects that legacy semantics. Current values are USD direct — Knighthead Capital's $2.05B portfolio is `2053758064` USD, NOT `2.05M × 1000`. |
| data[].holdings_count | integer | no | Number of position rows in the filing's information table. Knighthead-shaped boutique funds: 5-50; mid-tier hedge funds: 50-500; index-fund books (Vanguard, BlackRock): 3000-9000+. 13F-NT filings have 0 holdings (and are skipped by the parser, so they don't surface here). |
| data[].form_type | string | no | SEC form type — `13F-HR` (original) or `13F-HR/A` (amendment). 13F-NT (notice-of-no-information) filings are skipped by the parser. Reference [SEC EDGAR form types](https://www.sec.gov/forms). |
| data[].is_amendment | boolean | no | True when `form_type` ends with `/A`. Amendments often arrive months after the original — useful for surfacing 'late corrections' in the activity feed (e.g. a fund discovered they had under-reported a position). |
| data[].analysis | object | no | QoQ position-change counts (raw): `{ new, closed, increased, decreased, unchanged }`. Computed against the prior-quarter `(cik, period - 3M)` baseline. All zero when no prior-quarter row exists (initial filing). Preserved for backwards compatibility — prefer `statistics` for new code. |
| data[].statistics | object | no | QoQ position-change counts (frontend-friendly names): `{ new_positions, increased, decreased, closed, unchanged, prior_quarter_available }`. Same data as `analysis` with renamed fields PLUS the `prior_quarter_available` flag (false → all counts are zero, render the row as 'Initial filing'). Schema matches the WebSocket `new_13f_filing` event so frontends can render REST + WS payloads identically. |
| data[].parsed_at | string | no | ISO-8601 UTC timestamp of when FinRadar's parser ingested the filing. May be 5min-2hours after `filed_at` depending on parser queue depth. Use as the sort key for 'most-recently ingested' feeds (not `filed_at`, which can be backdated by SEC EDGAR). |
| meta.total | integer | no | Total number of filings returned (echoes back `data.length`). Capped by `limit`. |
Sample response
- "data":
- "meta":
- "total": 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/form-13f/latest" \
-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).