Form 13F Institutional Holdings API
The Form 13F API enables searching and retrieving the latest and historical portfolio holdings and cover page information disclosed in SEC Form 13F filings by institutional investment managers from 1994 to present.
Portfolio Holdings
The API provides information on current and historical portfolio holdings of SEC-registered funds and investment managers, including issuer name, title of the securities class, CUSIP, CIK and ticker of the holding, value of the position in dollar, the number of shares held, and more.
Cover Page Information
The cover pages of 13F filings include defails about the fund or manager, such as their name, CRD and CIK, gross market value of the porfolio and details about other included managers.
Portfolio holdings from the Form 13F database can be retrieved and searched using various parameters, including name, CIK and CRD of the fund or manager, filing publication date and quarter-year period the filing references (e.g., Q3 2024). All CUSIPs are pre-mapped to their respective ticker symbols and CIKs, enabling searches for 13F filings that disclose positions in specific companies using ticker symbols. The API provides access to the complete historical holdings data for every fund and investment manager registered with the SEC. This data is accessible via a REST API, compatible with Python, C#, Node.js, R, and any other programming language.
1
{
2
"formType": "13F-HR",
3
"periodOfReport": "2024-09-30",
4
"filedAt": "2024-11-12T12:27:58-05:00",
5
"accessionNo": "0000919574-24-006283",
6
// ... more filing attributes
7
"holdings": [
8
{
9
"nameOfIssuer": "ADVANCED MICRO DEVICES INC",
10
"titleOfClass": "COM",
11
"cusip": "007903107",
12
"ticker": "AMD",
13
"cik": "2488",
14
"value": 1565000,
15
"shrsOrPrnAmt": {
16
"sshPrnamt": 18527,
17
"sshPrnamtType": "SH"
18
},
19
"investmentDiscretion": "SOLE",
20
"votingAuthority": {
21
"Sole": 0,
22
"Shared": 0,
23
"None": 18527
24
}
25
},
26
// ... more holdings
27
]
28
}
An example search query to list all funds and managers invested in Tesla is available in the API sandbox here. This example retrieves the most recent 13F-HR filings and portfolio holdings that include Tesla's CUSIP 88160R101
, showing which funds bought or sold Tesla securities over time.
Our Python tutorial demonstrates how to extract and analyze the buy and sell activities of institutional investment managers from 13F filings and visualize changes in fund holdings over time.
Use Cases
The Form 13F API and database is used for various purposes in investment research, portfolio management, and financial analysis. Common use cases for real-time monitoring and historical analysis of investment managers' portfolios include:
- Rebalancing of replicated index portfolios that mirror the holdings of top-performing managers.
- Backtesting investment strategies by analyzing historical changes in fund holdings.
- Crowding analysis to identify popular stocks among institutional investors to reduce the risk of overexposure.
- Identifying new investment opportunities by analyzing cross-sectional buy and sell activities of investment managers.
- Monitoring post-IPO institutional investment activities by tracking the number of shares bought or sold by investment managers.
API Endpoints
Institutional Holdings in Form 13F Filings
The Institutional Holdings API returns all holdings data of each Form 13F filing. To find and retrieve 13F holdings data, send an HTTP POST
request with the desired search parameters to the following endpoint:
Supported HTTP methods: POST
Request and response content type: JSON
Cover Pages in Form 13F Filings
The Cover Pages API provides access to all cover pages of Form 13F filings. To retrieve 13F cover pages, send an HTTP POST
request with the desired search parameters to the following endpoint:
Supported HTTP methods: POST
Request and response content type: JSON
Authentication
To authenticate API requests, use the API key shown in your user profile. Utilize the API key in one of two ways. Choose the method that best fits your implementation:
- Authorization Header: Include the API key as an
Authorization
header. For instance, before sending aPOST
request tohttps://api.sec-api.io/form-13f/holdings
, ensure the header is set as follows:Authorization: YOUR_API_KEY
- Query Parameter: Alternatively, append the API key directly to the URL as a query parameter. For example, when making
POST
requests, use the URLhttps://api.sec-api.io/form-13f/holdings?token=YOUR_API_KEY
instead of the base API endpoint.
Request Parameters
The Holdings and Cover Pages API both accept a JSON payload including the search parameters to specify what holdings or cover pages to retrieve. The structure of the JSON payload is the same for both APIs.
/holdings
: Retrieve All Holdings of All 13F Filings from Ritholtz Management in 2023
1
{
2
"query": "cik:1633901 AND periodOfReport:[2023-01-1 TO 2023-12-31]",
3
"from": "0",
4
"size": "10",
5
"sort": [{ "filedAt": { "order": "desc" }}]
6
}
The request payload includes the following fields:
query
(string): Specifies the search string written in the Lucene syntax likefield:value
to look for all holdings or cover pages that includevalue
in thefield
. For example, useperiodOfReport:[2023-01-1 TO 2023-06-30]
to find all holdings reported in 13F-HR filings for the first half of 2023. A complete guide on how to use the Lucene syntax is available here.from
(string, optional) - Use thefrom
property to specify the starting position of the search results, facilitating pagination. For instance, setfrom
to 50 to skip the first 50 results. The default is 0, and the maximum allowed value is 10,000, which is also the cap for the maximum number of filings or cover pages returned perquery
string. To retrieve and paginate through all matches in the search universe, incrementfrom
by the value of thesize
parameter (e.g., 50) until no more results are returned or the 10,000 limit is reached. For example, use0
,50
,100
, and so on. If thequery
locates more than 10,000 matches, consider narrowing the search universe by refining the filter criteria, for example, using a date range filter to iterate over months or years. One such approach would be to search for filings with afiledAt
date range filter, e.g.filedAt:[2021-01-01 TO 2021-01-31]
(all filings from January 2021), then paginate through the results by incrementingfrom
, and once completed, repeat the process for the next month, and so on.size
(string, optional) - Determines the number of filings or cover pages returned per request. For instance, setsize
to 10 to retrieve 10 filings per request. The default value is 50, and the maximum allowed value is 50, which is the cap for the maximum number of filings or cover pages returned per request.sort
(array, optional) - An array of objects that specify how the returned results are sorted. The default sorting order is descending byfiledAt
datetime field, most recent filing first. The sorting order can be changed to ascending by settingorder
toasc
. The default sorting order can be overridden by specifying a different sorting field. For example, to sort results byperiodOfReport
in ascending order, setsort
to[{ "periodOfReport": { "order": "asc" } }]
.
Default:[{ "filedAt": { "order": "desc" } }]
Request Examples
Using the CIK search expression, retrieve the 10 most recent Form 13F filings with their associated holding information for Ritholtz Wealth Management with CIK 1633901 (POST /form-13f/holdings
) or the cover pages (POST /form-13f/cover-pages
) for the same CIK.
1
{
2
"query": "cik:1633901",
3
"from": "0",
4
"size": "10",
5
"sort": [{ "filedAt": { "order": "desc" }}]
6
}
Retrieve the 50 most recent 13F filings from any fund with an active position in Tesla, including equities, warrants, options, or notes (POST /form-13f/holdings
).
1
{
2
"query": "holdings.ticker:TSLA",
3
"from": "0",
4
"size": "50",
5
"sort": [{ "filedAt": { "order": "desc" }}]
6
}
Retrieve the 50 most recent 13F filings that include details on holdings with at least one Put or Call option (POST /form-13f/holdings
).
1
{
2
"query": "holdings.putCall:*",
3
"from": "0",
4
"size": "50",
5
"sort": [{ "filedAt": { "order": "desc" }}]
6
}
Use the date range query on the periodOfReport
field to locate all four 13F filings submitted by Integrated Wealth Concepts (CIK 1737109) for each quarter, Q1 through Q4, in 2020.
1
{
2
"query": "cik:1737109 AND periodOfReport:[2020-01-01 TO 2020-12-31]",
3
"from": "0",
4
"size": "4",
5
"sort": [{ "filedAt": { "order": "desc" }}]
6
}
Fetch all 13F filings and their holding information filed between January 1, 2020, and January 31, 2020, by incrementally increasing the from
parameter by 50 for each subsequent request, using the date range query.
1
{
2
"query": "filedAt:[2020-01-01 TO 2020-01-31]",
3
// increase "from" by 50 on each subsequent request
4
// to paginate through all filings
5
"from": "0",
6
"size": "50",
7
"sort": [{ "filedAt": { "order": "desc" }}]
8
}
Use the date match query on the periodOfReport
field to find all amended 13F-HR filings (13F-HR/A) and their holding information for the fourth quarter of 2020, dated December 31, 2020.
1
{
2
"query": "formType:\"13F-HR/A\" AND periodOfReport:2020-12-31",
3
"from": "0",
4
"size": "50",
5
"sort": [{ "filedAt": { "order": "desc" }}]
6
}
Response Format
The Form 13F API consists of two endpoints: /holdings
and /cover-pages
. The /holdings
endpoint returns the holdings data of each Form 13F filing while the /cover-pages
endpoint returns the cover page information of each Form 13F filing in JSON format. Refer to the following sections for detailed information on the response format of each endpoint.
Form 13F - Holdings
The Holdings API returns the holdings data of each Form 13F filing in JSON format. The API response includes two fields: total
(object) and data
(array of objects). The total
object provides metadata about the search results, such as the total number of filings matching the search criteria. The data
array contains 13F filings and their holdings data. Each 13F filing includes an array of holding objects, where each array item represents information about one holding in the fund's portfolio. The attributes of each holding include:
nameOfIssuer
(string) - Column 1: 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, e.g. MICRON TECHNOLOGY INCtitleOfClass
(string) - Column 2: Title of class, e.g. COMcusip
(string) - Column 3: Nine-digit CUSIP number of security, e.g. 98850P109ticker
(string) - Ticker of security, e.g. TSLAcik
(string) - CIK of security, e.g. 1004434. Leading zeros are removed.value
(integer) - Column 4: The absolute market value of the position denoted in dollars, e.g. 120,000,000. The value typically represents the value at the close of trading on the last trading day of the quarter. For older filings, the API automatically multiplies the value by 1000, e.g. 120,000 becomes 120,000,000.shrsOrPrnAmt
(object) - Column 5: Amount and type of security.sshPrnamt
(integer) - Total number of shares of the class of security or the principal amount of such class, e.g. 345,000sshPrnamtType
(string) - Security type of the position.SH
denotes shares,PRN
denotes principal amount.
putCall
(string, optional) - If the holding represents an option, the type of option. Possible values:Call
,Put
.investmentDiscretion
(string) - Column 6: Holdings are segregated according to the nature of the investment discretion held by the manager. Investment discretion can beSOLE
(sole investment discretion),DEFINED
(shared-defined investment discretion), orOTHER
(shared-other investment discretion).otherManager
(string, optional) - Column 7: Other manager. The number assigned to the other manager sharing investment discretion over the holding as defined in the "List of Other Included Managers" section on the cover page of the Form 13F filing. For example,1
.votingAuthority
(object) - Column 8: Voting authority. The number of shares for which the manager exercises sole, shared, or no voting authority (none).Sole
(integer) - Sole, e.g. 345Shared
(integer) - Shared, e.g. 345None
(integer) - None, e.g. 345
Investment Discretions
Response Example - 13F Holdings
1
{
2
"total": { "value": 281, "relation": "eq" },
3
"data": [
4
{
5
"default filing attributes: id, cik, ticker, etc.": "...",
6
"holdings": [
7
{
8
"nameOfIssuer": "ADVANCED MICRO DEVICES INC",
9
"titleOfClass": "COM",
10
"cusip": "007903107",
11
"ticker": "AMD",
12
"cik": "2488",
13
"value": 1565000,
14
"shrsOrPrnAmt": {
15
"sshPrnamt": 18527,
16
"sshPrnamtType": "SH"
17
},
18
"investmentDiscretion": "SOLE",
19
"votingAuthority": {
20
"Sole": 0,
21
"Shared": 0,
22
"None": 18527
23
}
24
},
25
{
26
"nameOfIssuer": "PFIZER INC",
27
"titleOfClass": "COM",
28
"cusip": "717081103",
29
"ticker": "PFE",
30
"cik": "78003",
31
"value": 348000,
32
"shrsOrPrnAmt": {
33
"sshPrnamt": 9476,
34
"sshPrnamtType": "SH"
35
},
36
"investmentDiscretion": "SOLE",
37
"votingAuthority": {
38
"Sole": 0,
39
"Shared": 0,
40
"None": 9476
41
}
42
},
43
{
44
"nameOfIssuer": "FEDEX CORP",
45
"titleOfClass": "COM",
46
"cusip": "31428X106",
47
"ticker": "FDX",
48
"cik": "1048911",
49
"value": 1428000,
50
"shrsOrPrnAmt": {
51
"sshPrnamt": 5507,
52
"sshPrnamtType": "SH"
53
},
54
"investmentDiscretion": "SOLE",
55
"votingAuthority": {
56
"Sole": 5507,
57
"Shared": 0,
58
"None": 0
59
}
60
}
61
]
62
},
63
// ... more filings
64
]
65
}
Form 13F - Cover Pages
The Cover Pages API returns the cover pages of Form 13F filings in JSON format. The API response includes two fields: total
(object) and data
(array of objects). The total
object provides metadata about the search results, such as the total number of cover pages matching the search criteria. The data
array contains the cover pages of 13F filings. Each cover page includes the following attributes:
id
(string) - Unique identifier of the cover page, e.g., "e8f9f8cf7e111e8608be622357708257".accessionNo
(string) - The accession number of the 13F filing, e.g., "0001398344-24-020966".filedAt
(string) - Timestamp indicating when the filing was submitted, in ISO 8601 format, e.g., "2024-11-15T16:37:33-05:00".formType
(string) - The form type of the filing, e.g., "13F-HR".cik
(string) - The Central Index Key (CIK) of the filing manager, e.g., "1698222".crdNumber
(string) - The CRD number of the filing manager, e.g., "104557".secFileNumber
(string) - SEC file number associated with the filing, e.g., "801-55119".form13FFileNumber
(string) - The 13F file number, e.g., "028-17971".periodOfReport
(string) - The end of the quarter (reporting period) covered by the filing, in YYYY-MM-DD format, e.g., "2024-09-30" for the third quarter of 2024.isAmendment
(boolean) - Indicates whether the filing is an amendment, e.g., false.amendmentInfo
(object) - Contains details if the filing is an amendment. Empty if not applicable.filingManager
(object) - Information about the filing manager:name
(string) - The manager's name, e.g., "Pacific Center for Financial Services".address
(object) - The manager's address:street
(string) - Street address, e.g., "2000 CROW CANYON PLACE, SUITE 430".city
(string) - City, e.g., "SAN RAMON".stateOrCountry
(string) - State or country, e.g., "CA".zipCode
(integer) - Zip code, e.g., 94583.
reportType
(string) - The type of report. Possible values:13F HOLDINGS REPORT
,13F NOTICE
or13F COMBINATION REPORT
. Refer to the Report Type section for more information.otherManagersReportingForThisManager
(array of objects) - A list of other managers reporting for this manager. Empty if not applicable.name
(string) - The name of the other manager.cik
(string) - The CIK of the other manager.crdNumber
(string) - The CRD number of the other manager.secFileNumber
(string) - The SEC file number of the other manager.form13FFileNumber
(string) - The 13F file number of the other manager.
provideInfoForInstruction5
(boolean) - Indicates whether additional information is provided for Instruction 5, e.g., false.tableEntryTotal
(integer) - Total number of holdings entries, e.g., 521.tableEntryTotalAsReported
(integer) - Total number of holdings entries as reported, e.g., 521.tableValueTotal
(integer) - Total value of holdings in dollars, e.g., 379715932.tableValueTotalAsReported
(integer) - Total value of holdings as reported, in dollars, e.g., 379715932.otherIncludedManagersCount
(integer) - Number of other included managers, e.g., 1.otherIncludedManagers
(array of objects) - List of other included managers. Each manager contains:sequenceNumber
(integer) - Sequence number, e.g., 1.name
(string) - Manager's name, e.g., "Pacific Center for Financial Services".cik
(string) - Manager's CIK, e.g., "1698222".crdNumber
(string) - Manager's CRD number, e.g., "104557".secFileNumber
(string) - SEC file number, e.g., "801-55119".form13FFileNumber
(string) - 13F file number, e.g., "028-17971".
signature
(object) - Information about the filing signature:name
(string) - Name of the signatory, e.g., "Stephen F. Schliesser".title
(string) - Title of the signatory, e.g., "CEO/President".phone
(string) - Contact phone number, e.g., "925-838-7700".signature
(string) - Signature, e.g., "/s/ Stephen F. Schliesser".city
(string) - City of signature, e.g., "San Ramon".stateOrCountry
(string) - State or country of signature, e.g., "CA".signatureDate
(string) - Date of signature, in MM-DD-YYYY format, e.g., "11-15-2024".
Types of Report
The reportType
attribute indicates the type of 13F report filed by the investment manager. The following three types are available:
13F HOLDINGS REPORT
. In this case, the cover page will omit the otherManagersReportingForThisManager
value and both the summary on the cover page and holdings information table will be included in the filing.13F NOTICE
. In this case, the cover page will include the otherManagersReportingForThisManager
property, while both the summary on the cover page and holdings information table will be omitted in the filing.13F COMBINATION REPORT
. In this case, the cover page will include the otherManagersReportingForThisManager
property, along with both the summary on the cover page and the holdings information table.Response Example - 13F Cover Page
1
{
2
"total": { "value": 481, "relation": "eq" },
3
"data": [
4
{
5
"id": "e8f9f8cf7e111e8608be622357708257",
6
"accessionNo": "0001398344-24-020966",
7
"filedAt": "2024-11-15T16:37:33-05:00",
8
"formType": "13F-HR",
9
"cik": "1698222",
10
"crdNumber": "104557",
11
"secFileNumber": "801-55119",
12
"form13FFileNumber": "028-17971",
13
"periodOfReport": "2024-09-30",
14
"isAmendment": false,
15
"amendmentInfo": {},
16
"filingManager": {
17
"name": "Pacific Center for Financial Services",
18
"address": {
19
"street": "2000 CROW CANYON PLACE, SUITE 430",
20
"city": "SAN RAMON",
21
"stateOrCountry": "CA",
22
"zipCode": 94583
23
}
24
},
25
"reportType": "13F HOLDINGS REPORT",
26
"otherManagersReportingForThisManager": [],
27
"provideInfoForInstruction5": false,
28
"signature": {
29
"name": "Stephen F. Schliesser",
30
"title": "CEO/President",
31
"phone": "925-838-7700",
32
"signature": "/s/ Stephen F. Schliesser",
33
"city": "San Ramon",
34
"stateOrCountry": "CA",
35
"signatureDate": "11-15-2024"
36
},
37
"tableEntryTotal": 521,
38
"tableEntryTotalAsReported": 521,
39
"tableValueTotal": 379715932,
40
"tableValueTotalAsReported": 379715932,
41
"otherIncludedManagersCount": 1,
42
"otherIncludedManagers": [
43
{
44
"sequenceNumber": 1,
45
"name": "Pacific Center for Financial Services",
46
"cik": "1698222",
47
"crdNumber": "104557",
48
"secFileNumber": "801-55119",
49
"form13FFileNumber": "028-17971"
50
}
51
]
52
},
53
// ... more cover pages
54
]
55
}
References
For more information about Form 13F filings, visit the SEC websites:
- SEC Form 13F - General Filer Instructions
- SEC Form 13F - Frequently Asked Questions
- SEC Form 13F - XML Technical Specifications
- SEC Adopts Rule to Increase Transparency Into Short Selling and Amendment to CAT NMS Plan for Purposes of Short Sale Data Collection
- Fact Sheet - Final Rules: Enhancing Short Sale Disclosure
Regulations
- § 240.13f-1 Reporting by institutional investment managers of information with respect to accounts over which they exercise investment discretion.
- § 240.13f-2 Reporting by institutional investment managers regarding gross short position and activity information.
- § 249.325 Form 13F, report of institutional investment manager pursuant to section 13(f) of the Securities Exchange Act of 1934.
Research Papers
- Outperforming the Market: Portfolio Strategy Cloning from SEC 13F Filings
- Hedge Fund Replication: A Model Combination Approach
- Can Hedge-Fund Returns Be Replicated: The Linear Case
- How Smart are the Smart Guys? A Unique View from Hedge Fund Stock Holdings
- Best Ideas
- Uncovering Hedge Fund Skill from the Portfolio Holdings They Hide
- Hedge fund replication: putting the pieces together
- Why Do Hedge Funds Avoid Disclosure? Evidence from Confidential 13F Filings.
- Hedge fund crowds and mispricing
- Alpha Cloning: Using quantitative techniques and SEC 13F data for equity portfolio optimization and generation
- Deep Reinforcement Learning & Feature Extraction For Constructing Alpha Generating Equity Portfolios
- Copycat Skills and Disclosure Costs: Evidence from Peer Companies' Digital Footprints
- Do Hedge Funds Strategically Misreport Their Holdings? Evidence from 13F Restatements