/api/v1/form-13f/cover-pagesSearch 13F filing cover pages (metadata only, no holdings).
Search 13F filing cover pages (metadata only, no holdings).
10 tokensSince v1.0.0
Why use this
Lightweight filing-history listing — returns just the cover-page metadata for 13F filings (manager name + address, signature info, amendment status, total filing value, holdings count). NO holdings JOIN, so this is 10-50× faster than `/holdings` when you only need 'show me which quarters this fund has filed'. The right endpoint for: fund-detail-page filing-history tabs, amendment-vs-original sleuthing, regulatory due-diligence on signing officers, and bulk-list workflows where you'd otherwise drown in holdings rows. After you've identified the right `(cik, period)` from this endpoint, drill into `POST /api/v1/form-13f/holdings` for the position-level detail.
Common use case
List all filings for a fund, check which quarters are available, identify amendments vs originals, and access filing manager address and signature data.
Returns the cover-page metadata for a 13F filing (filer name, address, signing officer, total AUM reported, period of report) — the lightweight counterpart to POST /api/v1/form-13f/holdings. Useful when you only need to confirm a filer's presence in a quarter without paying for the full holdings list.
Parameters
| Name | In | Required | Default | Allowed | Description | Example |
|---|---|---|---|---|---|---|
| query | body | required | — | — | Lucene-like query. Same field-scoped syntax as `/holdings` but WITHOUT the holdings-row filters (`holdings.ticker`, `holdings.cusip` not supported here — use `/holdings` for those). Common: `cik:1067983` (single fund), `formType:"13F-HR/A"` (amendments only), `filedAt:[2025-01-01 TO 2025-12-31]` (year range), `accessionNo:0001067983-24-000123` (one specific filing). Combine with `AND`/`OR`/`NOT`. | cik:1067983 |
| from | body | optional | 0 | — | Zero-based pagination offset (NUMBER of filings to skip). Increment by `size` to walk pages. Capped at 10000 server-side. | 0 |
| size | body | optional | 50 | — | Number of filings to return per page, capped at 50 server-side. Each row is small (cover-page metadata only) so payload size stays bounded — listing 50 filings here is ~10KB; the same 50 in `/holdings` could be 5-50MB. | 50 |
| sort | body | optional | — | — | Sort specification array (sec-api.io shape). Each element is `{ <field>: { order: 'asc' | 'desc' } }`. Common: `[{"filedAt": {"order": "desc"}}]` (most recent first; default), `[{"periodOfReport": {"order": "asc"}}]` (chronological for filing-history tabs). | [{"filedAt": {"order": "desc"}}] |
Response schema
| Field | Type | Nullable | Description |
|---|---|---|---|
| filings | array | no | Array of cover-page rows, sorted per the `sort` parameter (default: `filedAt DESC`). Each row is one 13F filing's metadata — original and amendment filings appear as separate rows (NOT collapsed). Empty array on no match. |
| filings[].cik | string | no | Filer CIK as a 10-character zero-padded string. Stable join key against the rest of the 13F surface. |
| filings[].accession_number | string | no | SEC accession number in canonical `XXXXXXXXXX-YY-NNNNNN` format. Pass to `POST /api/v1/form-13f/holdings` (via `accessionNo:...` query) to drill into this filing's position rows. |
| filings[].period_of_report | string | no | ISO `YYYY-MM-DD` reporting period end (always a calendar quarter end). Together with `cik` forms the natural key for QoQ comparisons. |
| filings[].filed_date | string | no | ISO `YYYY-MM-DD` filing acceptance date (typically 30-45 days after `period_of_report`, bumping up against the 45-day SEC deadline). Use for filing-cadence analysis (which managers file early vs late). |
| filings[].filer_name | string | no | Registrant name AS FILED on the cover page (typically all-caps in EDGAR convention). Casing preserved verbatim. NOT alias-normalized — for the user-friendly alias use the `filer_aliases` admin table. |
| filings[].address | string | yes | Filer business address as filed on the cover page (street + city + state + ZIP, single string, comma-delimited). Null for pre-2018 filings (pre-XBRL cover-page parsing) and amendments that omit the address. Useful for compliance / KYC / geographic-concentration audits. |
| filings[].signing_officer | string | yes | Name of the officer who signed the 13F cover page. Null for some amendment filings. Useful for tracking 'who manages this fund' — signing officer changes are a leading indicator of management transitions. |
| filings[].total_value_usd | number | yes | Total reported portfolio value across all positions in the filing, in USD. Post-Plan 51 holdings-quality correction (handles the thousands-vs-actual-dollars reporting issue). Null for filings whose holdings have not yet been re-aggregated by the `sec_13f_summary` matview (~6h refresh cadence post-filing). |
| filings[].holdings_count | integer | yes | Number of position rows in the filing's information table. Null for 13F-NT filings (notice-of-no-information-table — these always have 0 holdings and are skipped by our parser). Berkshire-shaped books: ~50; mid-tier hedge funds: 50-500; index-fund books (Vanguard, BlackRock): 3000-9000+. |
Sample response
·
- "filings":
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 -X POST "https://api.finradar.ai/api/v1/form-13f/cover-pages?api_Token=YOUR_API_KEY" \
-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).