Skip to main content
Every institutional investment manager with at least $100 million in US public equities reports what it holds to the Securities and Exchange Commission within 45 days of each quarter’s end, on Form 13F: the manager, the quarter, and one line per position with the issuer, its CUSIP, the value in dollars, the shares held, whether it is an option, and who votes the shares. Berkshire Hathaway’s book, every pension fund and every hedge fund large enough to file are all here, signed by the manager. Every filing since 2013 and the positions of recent quarters, organized and ready to query. That is what makes a list of every manager that holds one CUSIP, or one manager’s whole book for a quarter, a single fast call. The manager’s CRD number ties a filing to the same firm in the investment adviser registry, so a manager’s public book and the private funds it runs read together.
The whole source, organized and ready to query: every endpoint on this page answers in milliseconds. Every response carries as_of: how current the data is. How datasets work.

Search filings

POST /us/sec-13f/filings-search/v1 Dataset Searches the filings by any combination of manager name, CIK, CRD, state, quarter and total value. Newest quarter first.
Returns as_of (how current the data is), the applied filters, total (matches across every page), page, per_page, total_pages, count and filings[], newest quarter first and largest first within it. Every filing carries accession_number (the key), filed_on, period (the quarter end reported), submission_type (13F-HR a holdings report, 13F-NT a notice that another manager reports the positions, and their /A amendments), is_amendment, amendment_number, amendment_type, report_type, manager ({ cik, name, crd, sec_file_number, form_13f_file_number, address }), holdings_count, holdings_value (US dollars), other_managers_count, confidential_omitted, additional_information and filing_url. Amounts are numbers in US dollars. Form 13F reported values in thousands until the rules that took effect in January 2023; the amounts here are normalized to dollars throughout, so a 2019 filing and a 2026 one compare directly. The SEC’s own rule is applied by filing date; a minority of managers reported whole dollars before 2023 anyway, and their older amounts read a thousand times high. Dates are yyyy-mm-dd. Empty fields are null.
The SEC publishes Form 13F as quarterly data sets a few weeks after each filing window closes, so the copy is as current as the newest data set: as_of says exactly how current.

One filing and its positions

POST /us/sec-13f/filing/v1 Dataset Resolves one Form 13F by its accession number and returns it with the positions it reported, largest first.
Returns found, accession_number, as_of, filing (null when not found) and holdings[]: the filing’s positions, largest first, up to 200. Every filing carries accession_number (the key), filed_on, period (the quarter end reported), submission_type (13F-HR a holdings report, 13F-NT a notice that another manager reports the positions, and their /A amendments), is_amendment, amendment_number, amendment_type, report_type, manager ({ cik, name, crd, sec_file_number, form_13f_file_number, address }), holdings_count, holdings_value (US dollars), other_managers_count, confidential_omitted, additional_information and filing_url. Amounts are numbers in US dollars. Form 13F reported values in thousands until the rules that took effect in January 2023; the amounts here are normalized to dollars throughout, so a 2019 filing and a 2026 one compare directly. The SEC’s own rule is applied by filing date; a minority of managers reported whole dollars before 2023 anyway, and their older amounts read a thousand times high. Dates are yyyy-mm-dd. Empty fields are null. Every position carries id (the key: the filing’s accession number and the position’s sequence), accession_number, filed_on, period, manager_cik, manager_name, manager_crd, issuer_name, cusip, figi, class_title, value (US dollars), shares, share_type (SH shares or PRN principal amount), put_call (PUT, CALL or null when the position is the security itself), discretion, other_managers, and the voting authority split into voting_sole, voting_shared and voting_none. Values are normalized to US dollars across the whole series. Dates are yyyy-mm-dd. Empty fields are null.
An accession number no Form 13F carries returns found: false with HTTP 200, not an error. holdings is empty for a notice, which reports no positions of its own, and for quarters older than the ones the copy keeps positions for.

Search positions

POST /us/sec-13f/holdings-search/v1 Dataset Searches the positions by any combination of issuer, manager, CUSIP, options, quarter and value. Largest first.
Returns as_of (how current the data is), the applied filters, total (matches across every page), page, per_page, total_pages, count and holdings[], largest first. Every position carries id (the key: the filing’s accession number and the position’s sequence), accession_number, filed_on, period, manager_cik, manager_name, manager_crd, issuer_name, cusip, figi, class_title, value (US dollars), shares, share_type (SH shares or PRN principal amount), put_call (PUT, CALL or null when the position is the security itself), discretion, other_managers, and the voting authority split into voting_sole, voting_shared and voting_none. Values are normalized to US dollars across the whole series. Dates are yyyy-mm-dd. Empty fields are null.
Pass a cusip to see every manager holding one security, or a manager_cik to see one manager’s book. The copy keeps recent quarters; as_of says how current it is, and the filings search covers every quarter since 2013.

Full reference

Schemas, all response fields, and an interactive playground.