Ownership and holdings
Institutional Portfolio Holdings - Form 13F
https://api.sec-api.io/form-13f/holdingsSearch the portfolio holdings that institutional investment managers disclose in Form 13F filings, from 1994 to present, and get the complete information table of each filing as JSON. Every CUSIP is mapped to its ticker and CIK, and new holdings are searchable 300 milliseconds after EDGAR publishes the filing.
Authentication
Send the API key either as a header or as a query parameter. The header is preferred; the query parameter exists for cases where a header cannot be set, such as opening a URL directly in a browser.
Authorization: required header
The API key on its own. Do not prefix it with Bearer or any other word.
Example Authorization: YOUR_API_KEY
token: optional query parameter
The API key, appended to the URL. Use this only when a header is not possible.
A JSON object. Content-Type must be application/json.
query: required string
The search expression in Lucene syntax. Every field listed under Searchable fields can be used, combined with AND, OR, NOT, ranges and wildcards.
Example cik:1067983 AND formType:"13F-HR"
from: string, Maximum 10000
Index of the first result to return, used for pagination. Increment by the value of size to page through results. Narrow the query with a date range when more than 10000 filings match.
Default "0"
size: string, Maximum 50
Number of filings to return in one response.
Default "50"
sort: array of object
Sort order. Each item maps one field to an order object, for example [{ "periodOfReport": { "order": "asc" } }]. Sortable fields are filedAt, periodOfReport, holdings.value and holdings.shrsOrPrnAmt.sshPrnamt.
Default [{ "filedAt": { "order": "desc" } }]
order: string
Either asc or desc.
Searchable fields
Every field below can be used inside query. 49 fields are searchable, and they match the structure of the objects returned in the response.
| Field | Description |
|---|---|
accessionNo | Filing accession number |
cik | CIK of the institutional manager |
ticker | Ticker of the manager (if any) |
companyName | Manager / fund legal name |
formType | Form type — "13F-HR" or "13F-HR/A" |
filedAt | Filing acceptance timestamp (ISO 8601) |
periodOfReport | Quarter-end the filing covers (YYYY-MM-DD) |
holdings.nameOfIssuer | Name of the security issuer |
A JSON object. Nested attributes are collapsed; expand one to see its fields.
total: object
How many filings matched the query.
value: integer
Number of matching filings, capped at 10000. A value of 10000 with relation gte means more than 10000 filings matched.
relation: string
Either eq, meaning value is exact, or gte, meaning value is a floor.
data: array of object
The matching 13F filings, at most size per response. Each item carries the filing metadata and the complete information table under holdings.
id: string
Internal unique id of the filing record.
accessionNo: string
Accession number of the filing, for example 0001193125-26-054580.
cik: string
CIK of the institutional manager that filed the report, leading zeros removed.
ticker: optional string
Ticker of the filing manager. Present only when the manager itself is listed, for example BRK.B.
companyName: string
Name of the filing manager.
companyNameLong: string
Name of the filing manager including its filer type, for example BERKSHIRE HATHAWAY INC (Filer).
formType: string
Form type of the filing: 13F-HR or 13F-HR/A.
description: string
Form description, for example Form 13F-HR - Quarterly report filed by institutional managers, Holdings.
filedAt: string
Timestamp EDGAR accepted the filing, ISO 8601 in Eastern Time. The offset is -04:00 during daylight saving and -05:00 otherwise.
periodOfReport: string
Quarter end the filing reports on, YYYY-MM-DD, for example 2025-12-31 for the fourth quarter of 2025.
effectivenessDate: optional string
Effectiveness date of the filing, YYYY-MM-DD.
linkToFilingDetails: string
URL of the cover page document on sec.gov. The holdings table itself is the information table entry inside documentFormatFiles.
linkToHtml: string
URL of the filing index page on sec.gov.
linkToTxt: string
URL of the complete submission text file, which holds the filing and every document attached to it.
linkToXbrl: string
URL of the XBRL instance document. Empty on 13F filings, which carry no XBRL.
entities: array of object
Every entity the filing refers to. The first item is always the filing manager.
documentFormatFiles: array of object
Documents of the filing: the cover page, the information table and the complete submission text file.
dataFiles: array of object
Data files attached to the filing. Empty on 13F filings.
seriesAndClassesContractsInformation: array of object
Series and class or contract information. Empty on 13F filings.
holdings: array of object
The information table of the filing. Each item is one reported position. A manager that splits a position across other managers reports the same issuer several times, once per otherManager combination.
Status codes
200 | Success. The response holds total and data. |
400 | The request body could not be parsed, or the Lucene expression in query is malformed. |
403 | The API key is missing, or it is not valid. |
429 | Too many requests. Slow the request rate and retry. |
500 | Server error. Retry, and report it if it persists. |