MacroView · Learn · ISIN meaning
ISIN meaning
Last updated: 2026-09-07
A UCITS ETF has many local tickers (SEC0 on Xetra, SEMI on LSE, etc.) but one ISIN. The ISIN is your pivot. The aggregators (justETF, TradingView) only show top holdings — full holdings live on the issuer's own site as a downloadable CSV/XLSX. So the problem reduces to two steps: identify the issuer, then hit their holdings endpoint.
Programmatic flow
- Normalize input → ISIN.
- If user gives ticker: resolve via OpenFIGI API (free, no key for low volume) or scrape the justETF search.
- If user gives ISIN: skip ahead.
- ISIN → issuer. First two chars of issuer name in the ETF title tell you 90% of cases ("iShares" → BlackRock, "Xtrackers" → DWS, "Amundi", "SPDR" → State Street, "Invesco", "WisdomTree", "VanEck", "Vanguard"). Get the name from justETF's profile page (one HTTP GET, parse
<h1>) or OpenFIGI's name field. - Issuer → product ID → holdings file. Each issuer has a stable URL pattern. The high-value ones cover ~80% of European ETF AUM (see Find your ETF markets for the issuer breakdown). The only step that needs scraping is ISIN → productId for iShares (their CSV URL uses an internal numeric ID like
319084, not the ISIN). One regex on the product page HTML handles it. - Parse + normalize. Each issuer's CSV has different columns. Map to a common schema:
{ticker, name, isin, weight_pct, market_value, sector, country, asset_class}. Strip the disclaimer header rows iShares prepends.
Implementation shape
resolve_isin(input) # OpenFIGI or justETF search
→ fetch_etf_meta(isin) # justETF page → {name, issuer}
→ issuer_adapter(issuer) # dispatch to one of ~8 adapters
→ adapter.fetch(isin) # returns raw CSV/XLSX bytes
→ adapter.parse(bytes) # returns normalized rowsOne adapter per issuer, behind a common interface. New issuer = new adapter file, no other changes.
Fallbacks (in order)
- Issuer's official CSV/XLSX (above).
- Issuer's JSON API if discovered in DevTools (iShares and Vanguard both have one).
- TradingView holdings page scrape (partial but better than nothing).
- justETF top-10 (last resort, clearly mark as incomplete).
Example · iShares MSCI Global Semiconductors
https://www.ishares.com/uk/professional/en/products/319084/ishares-msci-global-semiconductors-ucits-etf