Holdings from

How to read it

Weights as the source reports them

Each weight is a percent of the fund's net assets, as the issuer file or filing gives it. A fund of funds is multiplied through its sub-funds. Nothing is rescaled to add up to 100.

What is not explained stays visible

Cash, futures, swaps and lines without an ISIN are not spread over the rest. They are shown as unresolved weight, which can be negative when a fund's positions add up to more than its net assets.

Every row names its source

openbasket only gathers what others publish. Each fund and each row says where it came from and on what date, with a link and the credit the source asks for. Check the source before relying on a figure.

Latest data release

The data is rebuilt every month by a scheduled build. Each build is published here and as a GitHub Release with the full Parquet files, every constituent of every fund, with no rows cut.

Loading the release information…

A static JSON API

The page you are using reads plain JSON files, and so can you. They are rebuilt with each release and served as static files, so there is no key and no rate limit beyond being kind. The format is described in the Data API documentation.

Release, build date and the full list of sources

curl -s https://openbasket.leithresearch.org/api/v1/meta.json

Every fund covered, for search

curl -s --compressed https://openbasket.leithresearch.org/api/v1/index.json

One fund's constituents, by ISIN

curl -s https://openbasket.leithresearch.org/api/v1/funds/IE00B5BMR087.json

A share-class ISIN that is not a fund's own file returns {"alias_of": "…"}; follow it. A fund the build does not cover returns HTTP 404. Every file carries its source, source_url, credit and as_of: keep them with anything you publish from it.