ETF and index-fund holdings
financialdatasets.index-fundsGet an ETF or index fund's holdings and weights, or find funds that hold a US security
- Price
- $0.02/successAt provider cost
- Success rate
- —No success-rate data yetNo success-rate data yet
- Latency p50
- ——
- Last verified
- Sep 15, 2026Verified working
GEThttps://toolswitch.dev/v1/tools/financialdatasets.index-funds?limit=1&ticker=SPYPreview- Uses platform quota
- Synchronous response
- Reads public data
Parameters
Supply exactly one of ticker or holding unless continuing with cursor. The response shape depends on the query: ticker returns fund and holdings; holding returns security and funds.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| Query parameters | ||||
as_of | string | Optional | YYYY-MM-DD; valid only with ticker; returns the fund composition in effect on or before this date | |
limit | integer | Optional | total rows across all pages; default 50; each response page contains up to 10 rows | 1 |
cursor | string | Optional | opaque cursor from the response next_page_url; when supplied, omit the original filters because the cursor preserves them | |
offset | integer | Optional | rows to skip; default 0 | |
ticker | string | Optional | ETF or index-fund ticker; supply exactly one of ticker or holding. If availability is uncertain, call financialdatasets.index-funds.tickers first | SPY |
holding | string | Optional | US security ticker; supply exactly one of ticker or holding to find funds whose latest filing holds the security | |
asset_class | string | Optional | equity | bond; valid only with ticker; omit for all holdings | |
- Query parameters
as_ofstringOptionalYYYY-MM-DD; valid only with ticker; returns the fund composition in effect on or before this date
limitintegerOptionaltotal rows across all pages; default 50; each response page contains up to 10 rows
Example:
1cursorstringOptionalopaque cursor from the response next_page_url; when supplied, omit the original filters because the cursor preserves them
offsetintegerOptionalrows to skip; default 0
tickerstringOptionalETF or index-fund ticker; supply exactly one of ticker or holding. If availability is uncertain, call financialdatasets.index-funds.tickers first
Example:
SPYholdingstringOptionalUS security ticker; supply exactly one of ticker or holding to find funds whose latest filing holds the security
asset_classstringOptionalequity | bond; valid only with ticker; omit for all holdings
Code samples
Replace $TOOLSWITCH_KEY with the key you created in the console.
curl -X GET 'https://toolswitch.dev/v1/tools/financialdatasets.index-funds?limit=1&ticker=SPY' \
-H "X-Toolswitch-Key: $TOOLSWITCH_KEY"import os
import requests
response = requests.request(
"GET",
"https://toolswitch.dev/v1/tools/financialdatasets.index-funds?limit=1&ticker=SPY",
headers={"X-Toolswitch-Key": os.environ["TOOLSWITCH_KEY"]},
)
response.raise_for_status()
print(response.text)const response = await fetch("https://toolswitch.dev/v1/tools/financialdatasets.index-funds?limit=1&ticker=SPY", {
method: "GET",
headers: {
"X-Toolswitch-Key": process.env.TOOLSWITCH_KEY ?? "",
},
});
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
console.log(await response.text());This gateway API is in preview; its URL and authentication may change. The example parameters are sample data. Calls are billed at $0.02/success, including the service fee.