ETF Holdings API
ETF holdings by ticker and date.
Explore holdings in a clean table or call the API directly. Send a ticker and date. Get holdings with weights and exact identifiers.
Coverage
Check ticker coverage.
See whether a ticker has current holdings and which historical years are supported.
CurrentWaiting
Check current endpoint coverageCheck current endpoint coverage.
HistoricalWaiting
Check historical endpoint coverageCheck supported historical years.
Pricing
$1 per 100,000 holdings returned.
Add prepaid credits as needed. The minimum top-up is $10.
- Billing is based on the number of holdings returned.
- Authentication errors, validation errors, and requests with no holdings are not billable.
- Usage is shown by API key.
- Monthly requests
- 3,000
- Holdings returned
- 1,500,000
- Estimated daily spend
- $0.50
- Estimated monthly spend
- $15.00
- $10 top-up covers
- 1,000,000 holdings
API
Programmatic REST API access.
Ask for a ticker and date. The API returns the resolved holdings date, the SEC source form when historical data is used, and each holding's weight and identifiers.
GET
/api/v1/historical/holdings?ticker=SPY&at=1997-12-31&limit=3Need more info?Read the docs
Request
curl "https://etf-holdings.com/api/v1/historical/holdings?ticker=SPY&at=1997-12-31&limit=3" \
-H "Authorization: Bearer $ETF_HOLDINGS_API_KEY"Response
{
"ticker": "SPY",
"asOf": "1997-09-30",
"source": "N-30D",
"holdings": [
{
"weight": 0.03035840526,
"identifiers": {
"ticker": "GE",
"name": "General Electric Co.",
"original": "General Electric Co."
}
},
{
"weight": 0.021660011916,
"identifiers": {
"name": "Exxon Corp.",
"original": "Exxon Corp."
}
},
{
"weight": 0.021600987918,
"identifiers": {
"ticker": "MSFT",
"name": "Microsoft Corp. *",
"original": "Microsoft Corp. *"
}
}
]
}