# Institutional Portfolio Holdings - Form 13F API Reference | SEC API > Complete API reference for the SEC Form 13F Institutional Holdings API. Every request parameter, every searchable field and every response attribute, with types, constraints and a live example response. Source: https://sec-api.io/api-reference/form-13f-holdings Ownership and holdings POST`https://api.sec-api.io/form-13f/holdings` Search 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. [Read the guide for this API →](https://sec-api.io/docs/form-13-f-filings-institutional-holdings-api) ## 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. ## Request body 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 | | `holdings.ticker` | Ticker of the held security | | `holdings.cik` | CIK of the issuer | | `holdings.cusip` | 9-digit CUSIP of the holding | | `holdings.titleOfClass` | Security class (e.g. "COM", "CL A") | | `holdings.value` | Position market value in USD | | `holdings.shrsOrPrnAmt.sshPrnamt` | Number of shares or principal amount | | `holdings.shrsOrPrnAmt.sshPrnamtType` | "SH" (shares) or "PRN" (principal) | | `holdings.investmentDiscretion` | Discretion — "SOLE", "DEFINED", "OTHER" | | `holdings.putCall` | Option type if a derivative — "Call" or "Put" | | `holdings.votingAuthority.Sole` | Shares with sole voting authority | | `holdings.votingAuthority.Shared` | Shares with shared voting authority | | `holdings.votingAuthority.None` | Shares with no voting authority | | `holdings.otherManager` | Other-manager identifier | | `entities.cik` | Entity CIK appearing on the filing cover | | `entities.companyName` | Entity name appearing on the filing cover | | `entities.sic` | SIC industry code on the filing entity | | `entities.stateOfIncorporation` | State of incorporation | | `id` | Internal unique id of the filing record. | | `companyNameLong` | Name of the filing manager including its filer type, for example BERKSHIRE HATHAWAY INC (Filer). | | `description` | Form description, for example Form 13F-HR - Quarterly report filed by institutional managers, Holdings. | | `effectivenessDate` | Effectiveness date of the filing, YYYY-MM-DD. | | `linkToFilingDetails` | URL of the cover page document on sec.gov. The holdings table itself is the information table entry inside documentFormatFiles. | | `linkToHtml` | URL of the filing index page on sec.gov. | | `linkToTxt` | URL of the complete submission text file, which holds the filing and every document attached to it. | | `linkToXbrl` | URL of the XBRL instance document. Empty on 13F filings, which carry no XBRL. | | `entities.irsNo` | IRS number of the entity. | | `entities.fiscalYearEnd` | Fiscal year end as MMDD, for example 1231. | | `entities.type` | Form type being filed, matching formType. | | `entities.act` | SEC act the filing was made under, for example 34. | | `entities.fileNo` | File number of the entity, for example 028-04545. | | `entities.filmNo` | Film number of the entity. | | `documentFormatFiles.sequence` | Position of the file within the filing, as assigned by EDGAR. The cover page is normally 1 and the information table is normally 2. | | `documentFormatFiles.description` | Description of the file as reported by the filer, for example INFORMATION TABLE FOR FORM 13F. | | `documentFormatFiles.documentUrl` | URL of the file on sec.gov. Each 13F document appears twice, once as the raw XML and once as the EDGAR-rendered version under the xslForm13F_X02 path. | | `documentFormatFiles.type` | Type of the file, for example 13F-HR or INFORMATION TABLE. Blank on the complete submission text file. | | `documentFormatFiles.size` | Size of the file in bytes. Blank on the EDGAR-rendered versions of the documents. | | `dataFiles.sequence` | Position of the file within the filing, as assigned by EDGAR. The cover page is normally 1 and the information table is normally 2. | | `dataFiles.description` | Description of the file as reported by the filer, for example INFORMATION TABLE FOR FORM 13F. | | `dataFiles.documentUrl` | URL of the file on sec.gov. Each 13F document appears twice, once as the raw XML and once as the EDGAR-rendered version under the xslForm13F_X02 path. | | `dataFiles.type` | Type of the file, for example 13F-HR or INFORMATION TABLE. Blank on the complete submission text file. | | `dataFiles.size` | Size of the file in bytes. Blank on the EDGAR-rendered versions of the documents. | ## Response 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. companyName: string Entity name including its filer type. cik: string CIK of the entity. irsNo: optional string IRS number of the entity. stateOfIncorporation: optional string State of incorporation, for example DE. fiscalYearEnd: optional string Fiscal year end as MMDD, for example 1231. sic: optional string SIC code and label, for example 6331 Fire, Marine & Casualty Insurance. type: optional string Form type being filed, matching formType. act: optional string SEC act the filing was made under, for example 34. fileNo: optional string File number of the entity, for example 028-04545. filmNo: optional string Film number of the entity. documentFormatFiles: array of object Documents of the filing: the cover page, the information table and the complete submission text file. sequence: string Position of the file within the filing, as assigned by EDGAR. The cover page is normally 1 and the information table is normally 2. description: optional string Description of the file as reported by the filer, for example INFORMATION TABLE FOR FORM 13F. documentUrl: string URL of the file on sec.gov. Each 13F document appears twice, once as the raw XML and once as the EDGAR-rendered version under the xslForm13F_X02 path. type: string Type of the file, for example 13F-HR or INFORMATION TABLE. Blank on the complete submission text file. size: string Size of the file in bytes. Blank on the EDGAR-rendered versions of the documents. dataFiles: array of object Data files attached to the filing. Empty on 13F filings. sequence: string Position of the file within the filing, as assigned by EDGAR. The cover page is normally 1 and the information table is normally 2. description: optional string Description of the file as reported by the filer, for example INFORMATION TABLE FOR FORM 13F. documentUrl: string URL of the file on sec.gov. Each 13F document appears twice, once as the raw XML and once as the EDGAR-rendered version under the xslForm13F_X02 path. type: string Type of the file, for example 13F-HR or INFORMATION TABLE. Blank on the complete submission text file. size: string Size of the file in bytes. Blank on the EDGAR-rendered versions of the documents. 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. nameOfIssuer: string Column 1 of the information table. Name of the issuer of the security, either abbreviated or as it appears in the Official List of Section 13F Securities published by the SEC, for example MICRON TECHNOLOGY INC. titleOfClass: string Column 2 of the information table. Title of class, for example COM. cusip: string Column 3 of the information table. Nine-digit CUSIP number of the security, for example 98850P109. ticker: optional string Ticker of the security, for example TSLA. Added by the API by mapping the CUSIP, and absent when no ticker is mapped. cik: optional string CIK of the security issuer, for example 1004434, with leading zeros removed. Added by the API by mapping the CUSIP, and absent when no CIK is mapped. value: integer Column 4 of the information table. Absolute market value of the position in dollars, normally measured at the close of the last trading day of the quarter. On older filings the API multiplies the reported value by 1000, so 120000 becomes 120000000. shrsOrPrnAmt: object Column 5 of the information table. Amount and type of security. sshPrnamt: integer Total number of shares of the class of security, or the principal amount of that class, for example 345000. sshPrnamtType: string Security type of the position. SH denotes shares, PRN denotes principal amount. putCall: optional string Type of option when the holding represents one. Possible values: Call, Put. investmentDiscretion: string Column 6 of the information table. Nature of the investment discretion the manager holds over the position: SOLE for sole discretion, DEFINED for shared-defined discretion, OTHER for shared-other discretion. Some filers report shared-defined discretion as DFND. otherManager: optional string Column 7 of the information table. Number assigned to each other manager that shares investment discretion over the holding, as defined in the List of Other Included Managers on the cover page. Several numbers are comma-separated, for example 2,4,11. votingAuthority: object Column 8 of the information table. Number of shares over which the manager exercises sole, shared or no voting authority. Sole: integer Shares with sole voting authority. Shared: integer Shares with shared voting authority. None: integer Shares with no voting authority. ## 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. | ## Request example POST https://api.sec-api.io/form-13f/holdings ```json { "query": "cik:1067983 AND formType:\"13F-HR\"", "from": "0", "size": "10", "sort": [{ "filedAt": { "order": "desc" } }] } ``` ```python from sec_api import Form13FHoldingsApi form13FHoldingsApi = Form13FHoldingsApi("YOUR_API_KEY") response = form13FHoldingsApi.get_data({ "query": "cik:1067983 AND formType:\"13F-HR\"", "from": "0", "size": "10", "sort": [{"filedAt": {"order": "desc"}}], }) holdings = response["data"] ``` ```javascript import { form13FHoldingsApi } from "sec-api"; form13FHoldingsApi.setApiKey("YOUR_API_KEY"); const response = await form13FHoldingsApi.getData({ query: 'cik:1067983 AND formType:"13F-HR"', from: "0", size: "10", sort: [{ filedAt: { order: "desc" } }], }); ``` ```bash curl -X POST https://api.sec-api.io/form-13f/holdings \ -H "Authorization: YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "query": "cik:1067983 AND formType:\"13F-HR\"", "from": "0", "size": "10", "sort": [{ "filedAt": { "order": "desc" } }] }' ``` ## Response example 200 OK · application/json ```json { "total": { "value": 209, "relation": "eq" }, "data": [ { "id": "289428b455d4eb55f298d84f544d3d61", "accessionNo": "0001193125-26-054580", "cik": "1067983", "ticker": "BRK.B", "companyName": "BERKSHIRE HATHAWAY INC", "companyNameLong": "BERKSHIRE HATHAWAY INC (Filer)", "formType": "13F-HR", "description": "Form 13F-HR - Quarterly report filed by institutional managers, Holdings", "filedAt": "2026-02-17T16:05:04-05:00", "linkToTxt": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/0001193125-26-054580.txt", "linkToHtml": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/0001193125-26-054580-index.htm", "linkToXbrl": "", "linkToFilingDetails": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/xslForm13F_X02/primary_doc.xml", "entities": [ { "companyName": "BERKSHIRE HATHAWAY INC (Filer)", "cik": "1067983", "irsNo": "470813844", "stateOfIncorporation": "DE", "fiscalYearEnd": "1231", "type": "13F-HR", "act": "34", "fileNo": "028-04545", "filmNo": "26640865", "sic": "6331 Fire, Marine & Casualty Insurance" } ], "documentFormatFiles": [ { "sequence": "1", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/xslForm13F_X02/primary_doc.xml", "type": "13F-HR", "size": " " }, { "sequence": "1", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/primary_doc.xml", "type": "13F-HR", "size": "5556" }, { "sequence": "2", "description": "INFORMATION TABLE FOR FORM 13F", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/xslForm13F_X02/50240.xml", "type": "INFORMATION TABLE", "size": " " }, { "sequence": "2", "description": "INFORMATION TABLE FOR FORM 13F", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/50240.xml", "type": "INFORMATION TABLE", "size": "55376" }, { "sequence": " ", "description": "Complete submission text file", "documentUrl": "https://www.sec.gov/Archives/edgar/data/1067983/000119312526054580/0001193125-26-054580.txt", "type": " ", "size": "62306" } ], "dataFiles": [], "seriesAndClassesContractsInformation": [], "periodOfReport": "2025-12-31", "effectivenessDate": "2026-02-17", "holdings": [ { "nameOfIssuer": "ALLY FINL INC", "cusip": "02005N100", "titleOfClass": "COM", "value": 576074081, "shrsOrPrnAmt": { "sshPrnamt": 12719675, "sshPrnamtType": "SH" }, "investmentDiscretion": "DFND", "votingAuthority": { "Sole": 12719675, "Shared": 0, "None": 0 }, "otherManager": "4", "ticker": "ALLY", "cik": "40729" }, { "nameOfIssuer": "ALLY FINL INC", "cusip": "02005N100", "titleOfClass": "COM", "value": 126987499, "shrsOrPrnAmt": { "sshPrnamt": 2803875, "sshPrnamtType": "SH" }, "investmentDiscretion": "DFND", "votingAuthority": { "Sole": 2803875, "Shared": 0, "None": 0 }, "otherManager": "2,4,11", "ticker": "ALLY", "cik": "40729" } ] } ] } ```