iShares APIishares.com ↗
Access iShares ETF holdings, NAV history, performance tables, distributions, sector allocations, and fund documents via a structured API with 12 endpoints.
What is the iShares API?
The iShares API covers 12 endpoints that expose fund listings, full position-level holdings, NAV and total-return history, published performance tables, distributions, yield and duration metrics, exposure breakdowns, exchange listings, and document URLs for both US-listed and UK/UCITS iShares products. For example, get_etf_holdings returns every holding in a fund with weight, market value, sector, CUSIP, ISIN, SEDOL, price, and currency, while get_fund_performance delivers average annual, cumulative, and calendar-year return tables alongside benchmark comparisons.
curl -X GET 'https://api.parse.bot/scraper/5574216d-9f38-48cb-9912-dcabc247cc10/list_etfs?limit=5&asset_class=Equity' \ -H 'X-API-Key: $PARSE_API_KEY'
Retrieve a list of all iShares ETFs with key metadata including ticker, name, asset class, net assets, expense ratio, and YTD return. Optionally filter by asset class and limit results. Returns hundreds of ETFs when unfiltered.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of ETFs to return. |
| asset_class | string | Filter by asset class. Accepted values: Equity, Fixed Income, Digital Assets, Commodities, Real Estate, Multi-asset. |
{
"type": "object",
"fields": {
"etfs": "array of ETF summary objects with portfolio_id, ticker, name, isin, cusip, inception_date, asset_class, net_assets, expense_ratio, ytd_return, product_page_url",
"total": "integer total count of returned ETFs"
},
"sample": {
"data": {
"etfs": [
{
"isin": "US46429B6719",
"name": "iShares MSCI China ETF",
"cusip": "46429B671",
"ticker": "MCHI",
"net_assets": 6255359342.37,
"ytd_return": -9.88,
"asset_class": "Equity",
"portfolio_id": "239619",
"expense_ratio": 0.59,
"inception_date": "Mar 29, 2011",
"product_page_url": "/us/products/239619/ishares-msci-china-etf"
}
],
"total": 3
},
"status": "success"
}
}About the iShares API
Fund Discovery and Search
list_etfs returns the full iShares product catalog with fields including ticker, isin, cusip, inception_date, asset_class, net_assets, expense_ratio, and ytd_return. You can filter by asset_class (Equity, Fixed Income, Digital Assets, Commodities, Real Estate, Multi-Asset) or cap results with limit. search_etfs accepts a free-text query and performs a case-insensitive substring match against both ticker symbols and fund names, returning portfolio_id and product_page_url alongside basic metadata — useful for resolving a ticker to its portfolio ID before calling detail endpoints.
Holdings and Allocations
get_etf_holdings accepts a ticker or portfolio_id and an optional as_of_date in YYYYMMDD format; it returns a dated holdings table where each row carries weight, shares, market_value, sector, asset_class, cusip, isin, sedol, price, and currency. Bond holdings include additional fixed-income fields. get_etf_sector_allocation aggregates those same holding weights by sector and returns them sorted descending — primarily useful for equity ETFs. get_fund_allocations goes further, returning every exposure breakdown published on the product page (maturity, rating, sector, and for UK products geography.countries), each with its own as_of_date and rows of fund_weight and net_weight.
Performance, NAV History, and Distributions
get_fund_performance retrieves issuer-published return tables (average annual, cumulative, calendar-year; UK adds discrete 12-month periods) for a chosen as_of_date alongside available_as_of_dates so you can iterate over historical snapshots. get_fund_nav_history returns the full series from inception: a total-return index (growth of a 10,000 investment with dividends reinvested), a benchmark index series, and — on the US site — a monthly NAV series; the UK site provides daily NAV and market price arrays. get_fund_distributions delivers the complete distribution history with ex_date, record_date, payable_date, total_distribution, income, short_term_capital_gain, long_term_capital_gain, and return_of_capital per row, plus a use_of_profits field indicating accumulating or distributing share class policy.
Fund Profile and Documents
get_fund_profile returns the identity block (portfolio_id, ticker, isin, asset_class, currency), a dated NAV object with week_52_high, week_52_low, ytd_total_return_percent, published yields (US: 30-day SEC yield and trailing 12-month yield; UK equivalents), a fees array, and — for UK products — a listings array with per-exchange bloomberg_ticker, ric, sedol, and listing_date. get_fund_documents returns de-duplicated document URLs with label, material type (Fact Sheet, KIID, Prospectus, Annual Report, etc.), language, and extension. Both endpoints accept ticker, isin, portfolio_id, or a direct product_url, and a locale parameter (us or uk) to target the correct regional site.
The iShares API is a managed, monitored endpoint for ishares.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ishares.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official ishares.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a fixed-income screener that filters iShares bond ETFs by duration and credit rating breakdown from get_fund_allocations.
- Track NAV and benchmark divergence over time using the full history series from get_fund_nav_history.
- Aggregate position-level holdings across multiple ETFs via get_etf_holdings to analyze overlapping exposures.
- Monitor distribution events and classify income vs. capital-gain components for tax-lot accounting using get_fund_distributions.
- Compare 1-year, 3-year, and 5-year annualized returns across ETF share classes using get_fund_performance with different as_of_date values.
- Automate downloading of current fact sheets and prospectuses by polling document URLs from get_fund_documents.
- Resolve an ISIN to a portfolio_id and full product metadata for both US and UK share classes using get_fund_profile with the locale parameter.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.