Form 13F Institutional Holdings API

13F Database API
Form 13F-HR XML converted to JSON

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.

Example: Form 13F Holdings in JSON Format
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.

Database size:
All 13,000+ funds and investment managers registered with the SEC since 1994 to present and over 300,000 SEC Form 13-F filings are available.
Database history:
The 13F database includes metadata for all 13F-HR filings from 1998 to present, as well as 13F-E filings from 1994 to 1998. It provides holdings information and cover pages in structured JSON format for all SEC-registered funds and investment managers starting from 2013.
Data update frequency:
Newly disclosed portfolio holdings and cover page information are extracted, indexed, and made searchable within an average of 300 milliseconds after a new 13F filing is published.
Survivorship bias free:
Yes. The 13F database includes portfolio holdings and cover pages from funds and managers that ceased filing 13F reports.

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:

https://api.sec-api.io/form-13f/holdings

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:

https://api.sec-api.io/form-13f/cover-pages

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 a POST request to https://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 URL https://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.

Example Request to /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 like field:value to look for all holdings or cover pages that include value in the field. For example, use periodOfReport:[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 the from property to specify the starting position of the search results, facilitating pagination. For instance, set from 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 per query string. To retrieve and paginate through all matches in the search universe, increment from by the value of the size parameter (e.g., 50) until no more results are returned or the 10,000 limit is reached. For example, use 0, 50, 100, and so on. If the query 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 a filedAt date range filter, e.g. filedAt:[2021-01-01 TO 2021-01-31] (all filings from January 2021), then paginate through the results by incrementing from, 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, set size 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 by filedAt datetime field, most recent filing first. The sorting order can be changed to ascending by setting order to asc. The default sorting order can be overridden by specifying a different sorting field. For example, to sort results by periodOfReport in ascending order, set sort 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.

JSON
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).

JSON
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).

JSON
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.

JSON
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.

JSON
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.

JSON
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 INC
  • titleOfClass (string) - Column 2: Title of class, e.g. COM
  • cusip (string) - Column 3: Nine-digit CUSIP number of security, e.g. 98850P109
  • ticker (string) - Ticker of security, e.g. TSLA
  • cik (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,000
    • sshPrnamtType (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 be SOLE (sole investment discretion), DEFINED (shared-defined investment discretion), or OTHER (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. 345
    • Shared (integer) - Shared, e.g. 345
    • None (integer) - None, e.g. 345

Investment Discretions

Sole:
An investment manager with sole investment discretion has the exclusive authority to make investment decisions regarding the security without requiring the consent or approval of any other party. This authority means that the manager is fully responsible for deciding whether to buy, sell, or hold a security and is not obligated to seek input from or share decision-making power with another entity or person.
Shared:
Multiple investment managers share the authority to make investment decisions regarding the security. This means that two or more managers have collective discretion over whether to buy, sell, or hold that security, either because of a collaborative agreement, the nature of the investment management structure, or an explicit understanding about how decisions should be made.

Response Example - 13F Holdings

JSON: Response Example of Form 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 or 13F 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:
If the manager reports all securities under their investment discretion in this filing, the value will be 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:
If all securities under the manager's investment discretion are reported by another manager, the value will be 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:
If only a portion of the securities under the manager's investment discretion is reported by another manager, the value will be 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

JSON
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:

Regulations

Research Papers