/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 |
| offset | query | optional | 0 | — | Pagination offset into the filing_date-descending list (alias `from`). Previously accepted-and-ignored; pages now advance correctly. | 20 |
| cik | query | optional | — | Restrict the feed to a single filer CIK. Matched leading-zero-insensitively, so `1512397` and `0001512397` both resolve. | 1512397 | |
| since | query | optional | — | Only filings with `filing_date >=` this ISO date (`YYYY-MM-DD`, inclusive). Invalid input is ignored (no 400). | 2025-08-01 |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| status | string | no | — |
| request_id | string | yes | — |
| timestamp | string | no | — |
| data | array | no | — |
| data[].accession_no | string | yes | — |
| data[].fund_name | string | no | — |
| data[].cik | string | no | — |
| data[].period_of_report | string | yes | — |
| data[].filed_at | string | yes | — |
| data[].table_value_total | number | yes | — |
| data[].holdings_count | integer | yes | — |
| data[].form_type | string | no | — |
| data[].is_amendment | boolean | yes | — |
| data[].analysis | object | no | — |
| data[].analysis.new | integer | no | — |
| data[].analysis.closed | integer | no | — |
| data[].analysis.increased | integer | no | — |
| data[].analysis.decreased | integer | no | — |
| data[].analysis.unchanged | integer | no | — |
| data[].statistics | object | no | — |
| data[].statistics.new_positions | integer | no | — |
| data[].statistics.increased | integer | no | — |
| data[].statistics.increased_positions | integer | no | — |
| data[].statistics.decreased | integer | no | — |
| data[].statistics.decreased_positions | integer | no | — |
| data[].statistics.closed | integer | no | — |
| data[].statistics.unchanged | integer | no | — |
| data[].statistics.prior_quarter_available | boolean | no | — |
| data[].parsed_at | string | yes | — |
| meta | object | no | — |
| meta.total | integer | no | — |
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?limit=20&offset=20&cik=1512397&since=2025-08-01" \
-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).