Does justETF have an API, and what can developers use instead?
justETF is an ETF comparison website without a public developer API; scraping it is governed by its terms. For the same figures as JSON by ISIN (TER, holdings, sectors, countries, NAV series, returns, risk indicator), use a fund data API, with a free plan and a keyless demo endpoint.Published September 30, 2026 · by FundFacts APIShort answer
No. justETF is an ETF comparison website for investors; it publishes no public developer API and documents no programmatic access, and what you may do with its pages is set by its terms of use. For the same figures as JSON, call GET https://fundfactsapi.com/api/v1/funds/{isin}: TER, top holdings, sector and country weights, the NAV series, calendar and annualised returns and the 1–7 risk indicator for any UCITS ETF or fund, read from the fund house's own documents. GET /search turns a name into ISINs, GET /overlap compares two ETFs' holdings, and the demo endpoint lets you try it without a key.
What justETF is, and is not
justETF is a comparison and screening website for ETFs sold in Europe: a search over listed ETFs with fees, fund size, replication method, distribution policy and performance, plus portfolio tools for private investors. It is a website for people, not a data product for programs: there is no public developer API, no documented endpoint, no API key to request and no published rate limit. What you may or may not do with its pages, including automated reading, is governed by its terms of use; see its terms before pointing a script at it.
In practice developers who start with justETF hit the same three problems as with any comparison site:
- No stable contract. Page markup changes without notice, and a scraper that worked last month returns empty cells this month.
- No as-of date per figure. A screen shows numbers, not the document and date they came from, so a stale TER and a current one look the same.
- Terms, not a licence. A licence for reuse in a product is exactly what an API sells and a website does not.
What developers use instead
| Need | Endpoint |
|---|---|
| The factsheet of one ETF or fund as JSON | GET https://fundfactsapi.com/api/v1/funds/{isin} |
| Several ISINs in one call | POST https://fundfactsapi.com/api/v1/funds with { "isins": [...], "wait": true } |
| A name or ticker → its ISINs | GET https://fundfactsapi.com/api/v1/search?q=msci%20world (free) |
| Shared holdings of two or more ETFs | GET https://fundfactsapi.com/api/v1/overlap?isins=IE00B4L5Y983,IE00B3RBWM25 (Pro and above) |
| Try it without a key | GET https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983 |
GET /funds/{isin} returns, for any UCITS ETF or fund by ISIN, the fields a comparison page shows and the ones it does not: headlineMetrics.ter, keyFacts (fund size, currency, inception, distribution policy, number of holdings), riskRating (the 1–7 KID indicator), topHoldings, sector, geography, indexedPerformance (the NAV series against the index), calendarReturns, annualisedReturns, metrics (max drawdown, volatility, Sharpe) and costs from the PRIIPs KID, every one with dataAsOf, the date printed on the document it was read from. The figures come from the fund house's own product page, factsheet and KID, not from a third-party screen.
bashcurl -s --max-time 300 https://fundfactsapi.com/api/v1/funds/IE00B4L5Y983 \-H "Authorization: Bearer $FUNDFACTS_API_KEY" \| jq '{name, ter: .data.headlineMetrics.ter, aum: .data.keyFacts.aum, risk: .data.riskRating, top: .data.topHoldings[:3], asOf: .data.dataAsOf}'
The Free plan is 15 lookups a month with no card; the demo endpoint answers for funds already in the store without any key, so the request above can be tried before signing up. The fund comparison and overlap pages show the two jobs justETF users most often want to automate.
When another tool is the better choice
- Screening thousands of ETFs by criteria in a browser. That is what justETF's website is for; an API is for the ETFs you have already chosen or the ones your users ask about. A fund universe built from batch calls serves screens inside your own product.
- Morningstar ratings, analyst research, category averages. Those are Morningstar's own editorial products and only come from Morningstar; see the Morningstar alternative page for what is and is not replaceable.
- Intraday prices, order books, terminal workflows. Bloomberg and the exchanges' market-data feeds cover trading; a fund data API covers the product, not the tick.
- One PDF, once. For a single factsheet you read by hand, the issuer's site is the shortest route. The API pays off when the same question has to be answered for many ISINs, repeatedly, by a program.
Scraping justETF versus calling an API
The scraping page weighs the trade-off in general. The short version for comparison sites: their terms decide what is allowed, their markup decides how long the scraper lives, and neither gives you the document date or a licence to republish. An API gives a versioned JSON contract, an as-of date on every figure and a commercial licence on paid plans.
Verify it yourself
The demo endpoint returns the live payload for a fund that is already in the store, without a key. Everything on this page can be checked against it.bashcurl -s https://fundfactsapi.com/api/v1/demo/funds/IE00B4L5Y983 | jq '{name, asOf: .data.dataAsOf, ter: .data.headlineMetrics.ter, risk: .data.riskRating, top: .data.topHoldings[:3]}'