Skip to main content
GET
Get 13F institutional holdings

Overview

The Financial Datasets institutional holdings API returns the institutional investors that hold a given stock, with the size of each position, largest first. The data comes from SEC Form 13F filings, parsed directly from SEC EDGAR (data provenance). It covers 18,000+ US tickers with 5+ years of history, updated daily. To see every stock one investor holds, use Holdings (by investor). You can call it as a REST endpoint with an API key, or from Claude, ChatGPT, Cursor, and other AI apps through the MCP server, or pay per request with x402. Pricing starts at $20. Use this to answer “who currently owns AAPL?” and at what size, with one row per filer and full subsidiary detail preserved. To get started, please create an account and grab your API key at financialdatasets.ai. You will use the API key to authenticate your API requests.

Coverage

The “current” definition

Without a report_period filter, this endpoint returns one position per institutional filer whose most recent 13F currently includes the ticker. Filers who held the ticker historically but dropped it in their latest 13F are excluded. This is the strict “current holders” view. If you need historical snapshots, pass report_period filters (see below) to opt into the historical view.

Find available tickers

To discover which tickers appear across 13F filings, hit the helper endpoint:
Tickers

Filtering the Data

ticker is required. By default, the response is the strict “currently owns” view described above. To see historical holders, pass report_period filters:
  • report_period_lte
  • report_period_lt
  • report_period_gte
  • report_period_gt
  • report_period
When any report_period filter is provided, the endpoint returns every matching row in the period range (no current-owners filter is applied). By default, limit is 10 (max 200).

Subsidiaries

When a 13F filer reports the same security across multiple voting-authority splits (e.g., parent + subsidiary advisors), the top-level position aggregates the splits and a subsidiaries array preserves each underlying row. The subsidiaries field is omitted when there is only one underlying row.

Examples

FAQ

Where does the 13F data come from?

Directly from the Form 13F filings on SEC EDGAR. Each filing is a quarterly snapshot of an institution’s positions.

How often is it updated?

Daily, as new 13F filings arrive.

Can I see one investor’s full portfolio?

Yes. Holdings (by investor) returns the 13F portfolio of an institutional investment manager by SEC CIK.

Can an AI agent use this data?

Yes. Claude, ChatGPT, Cursor, and other MCP clients reach it through the Financial Datasets MCP server. An agent with a wallet can also pay per request with x402, with no account.

Authorizations

X-API-KEY
string
header
required

API key for authentication.

Query Parameters

filer_cik
string

The 10-digit zero-padded SEC CIK of the institutional filer. Mutually exclusive with ticker.

ticker
string

The held security's ticker symbol. Mutually exclusive with filer_cik. Without a report_period filter, returns one position per institutional filer whose most recent 13F currently includes this ticker.

limit
integer
default:10

The total number of rows to return (default: 10; no maximum). This is the total across all pages, not a page size: each page holds up to 10 records, linked by next_page_url.

report_period
string<date>

Filter by exact report period date in YYYY-MM-DD format.

report_period_gte
string<date>

Filter by report period greater than or equal to date in YYYY-MM-DD format.

report_period_lte
string<date>

Filter by report period less than or equal to date in YYYY-MM-DD format.

report_period_gt
string<date>

Filter by report period greater than date in YYYY-MM-DD format.

report_period_lt
string<date>

Filter by report period less than date in YYYY-MM-DD format.

cursor
string

Opaque pagination cursor from a previous response's next_page_url. When provided, all other query parameters are ignored: the cursor carries the original request's filters. Treat it as opaque; do not construct or modify it.

Response

Institutional holdings response

Envelope keyed by ticker (ticker mode) or filer_cik (filer mode), with the position list under institutional_holdings.

ticker
string

Echoed back when the request used ?ticker=... mode.

filer_cik
string

Echoed back when the request used ?filer_cik=... mode.

institutional_holdings
object[]
next_page_url
string

Absolute URL of the next page of results. Present only when more results remain; request it as-is to continue. Each page holds up to 10 records.