See inside every European ETF, in one clean API.
Holdings, look-through and exposures for UCITS ETFs, normalized from the issuers' own documents. Built for fintech teams and for AI agents.
Try the API, right here.
Type an ISIN or pick one, send the request, and see what your app would get back.
Two options today, and both hurt.
Fund composition data exists, but getting it clean is the problem.
Enterprise providers
Lipper, Morningstar, Xignite: "contact sales", annual contracts and prices that don't fit a small team.
DIY scraping
Scraping justETF or fund sites: fragile, breaks every month, legal grey area.
Nothing in between
There's no affordable, self-service API focused on Europe. That gap is Holdstack.
See what you really own.
Move the amounts. Holdstack adds up every holding across your ETFs and stocks.
Turn it around: who holds this stock?
Every holding is a stock. Pick one and see which ETFs own it, and how much.
One API, the whole fund.
The same format for every issuer. Clean, complete and traceable.
Holdings
Every constituent with weight, shares and value, normalized per issuer.
Look-through
Send a portfolio, get the combined exposure by holding, country, sector and currency.
Overlap
How much two or more ETFs share, holding by holding.
Held by
Which ETFs own a given stock, and at what weight.
Alerts
Webhooks when holdings change, the TER moves or a new ETF lists.
Provenance
Every field links to the source document and its date.
Made for AI agents.
The incumbents weren't built for agents. Holdstack was.
# holdings of one ETF curl https://api.holdstack.io/v1/etf/IE00B5BMR087/holdings \ -H "Authorization: Bearer $HOLDSTACK_KEY"
import requests r = requests.post("https://api.holdstack.io/v1/look-through", headers={"Authorization": f"Bearer {KEY}"}, json={"positions": [ {"isin": "IE00BK5BQT80", "value": 10000}, {"isin": "US67066G1040", "value": 1000}]}) print(r.json()["top_holdings"][:5])
{
"mcpServers": {
"holdstack": {
"command": "npx",
"args": ["-y", "holdstack-mcp"],
"env": { "HOLDSTACK_KEY": "your_key" }
}
}
}
MCP server
Plug Holdstack into Claude, ChatGPT or any MCP client. No glue code.
llms.txt and OpenAPI
Machine-readable docs, so models understand the API on first read.
Instant key
No captcha, no sales call. A trial key in seconds, created by API if you like.
A page per ISIN
Every ETF and stock has a public page, so people and models find the data.
Planned pricing
Self-service: sign up and start. Launch pricing, to be confirmed with early users.
- Holdings for any ETF
- 100 calls a month
- Public docs and MCP
- Look-through for one portfolio
- 5,000 calls a month
- Email support
- Look-through and overlap
- 50,000 calls a month
- Alerts by webhook
- Unlimited look-through
- Bulk CSV and Parquet
- History and priority support
Founder price, locked for life, for the first 20 teams.
We're building it. Do you need it?
We're looking for fintechs, robo-advisors, portfolio apps and AI agent builders who want early access. Tell us how you get this data today.