13F Filers

13F filer top holdings

Top-N holdings at the filer's latest teo — or, with as_of, at the latest quarter known by that date (knowledge mode: selection on filing_date <= as_of; falls back to report_date <= as_of on panels without per-quarter filing dates, with the basis echoed as as_of_basis). Reads per-filer ds_ph.zarr from GCS. Each holding carries security_id (post-D.8.1 = bw_sym_id; pre-migration = a raw 9-char security identifier), adj_mv, and weight (fraction of total in-portfolio AUM). Bi-temporal stamps are body fields — report_date (valid time, = teo) and filing_date (knowledge time, EDGAR date_filed of the surviving submission; null until the per-quarter data fill lands) — mirrored on the X-Data-As-Of / X-Data-Filing-Date headers.

The surviving submission's filing identity is reported alongside them, at the response root (one accession state per selected quarter, not per holding): accession_number, filing_type (the SEC form type — 13F-HR, 13F-HR/A, 13F-NT — not the report quarter) and amendment_type (cover-page semantics: ORIGINAL, RESTATEMENT, NEW_HOLDINGS, UNKNOWN). Use them to tell an original filing from an amendment, and a restatement of previously reported positions from an amendment that only adds new ones. All three are null on panels published before the accession-vintage stores; amendment_type is never inferred from a /A suffix, so a null means "not classified upstream", which is distinct from the UNKNOWN value.

get/13f/filers/{bw_filer_id}/holdings

Request

  • Base URL: https://riskmodels.app/api
  • URL: https://riskmodels.app/api/13f/filers/{bw_filer_id}/holdings
  • Auth: HTTP bearer

Path parameters

bw_filer_idstring required

Canonical filer id (BW-FILER-CIK{cik}). A bare or unpadded CIK (1067983, 0001067983, CIK1067983, BW-FILER-CIK1067983) resolves to the same filer. Composite entities (BW-SYNTH-*) are served by the same route; registry-only fields (cik, filer_type, aum_tier) return null.

Query parameters

limitinteger

Rows per page (at most 1000).

offsetinteger

Page past the first limit rows. Rows are ranked by adj_mv descending and a page is a slice of that ranking; follow next_offset until it is null to read the whole book (served to a depth of 50,000 rows; truncated_at_max_depth says when a book is deeper). Ties in adj_mv are ordered by security_id.

as_ofstring date

Knowledge-mode date: serve the latest quarter whose filing was public on or before this date. 404 when nothing was known yet.

Response

Top-N holdings at the selected teo, with report_date, filing_date, the selected accession's filing identity (accession_number, filing_type, amendment_type), and (under as_of) as_of_basis.

report_datestring date

Valid time — the 13F reporting period end (= teo) the holdings describe.

filing_datestring date nullable

Knowledge time — EDGAR date_filed of the surviving submission for this quarter. Null on panels without per-quarter filing dates.

as_of_basis'filing_date' | 'report_date'

Which axis resolved an as_of selection.

accession_numberstring nullable

EDGAR accession number of the surviving submission for the selected quarter — the filing whose positions this panel reports. Null on panels published before the accession-vintage stores.

filing_typestring nullable

SEC submission/form type of that accession — not the report quarter. 13F-HR is an original holdings report, 13F-HR/A an amendment to one, 13F-NT a notice filing. Null when the form type is not published for this panel.

amendment_type'ORIGINAL' | 'RESTATEMENT' | 'NEW_HOLDINGS' | 'UNKNOWN' nullable

Cover-page amendment semantics of that accession, as classified upstream. ORIGINAL — not an amendment. RESTATEMENT — the amendment replaces the previously reported holdings in full. NEW_HOLDINGS — it adds holdings on top of the prior filing. UNKNOWN — an amendment whose cover page did not declare which. Null means no upstream classification is published for this panel, which is not the same as UNKNOWN; it is never inferred from a /A suffix.

offsetinteger

First row of this page in the adj_mv ranking.

next_offsetinteger nullable

Offset of the next page; null on the last page.

truncated_at_max_depthboolean

The book has more than 50,000 rows; pages stop at that depth and next_offset is null there.

holdingsobject[]

Example response

{
  "accession_number": "0000950123-24-008496",
  "filing_type": "13F-HR/A",
  "amendment_type": "RESTATEMENT"
}

Changes

No recorded changes to this operation across all 1 revision of this API.