Discover/iShares API
live

iShares APIishares.com

Access iShares ETF listings, holdings, performance metrics, sector allocations, and fund documents via a structured JSON API. Covers 6 endpoints.

Endpoint health
verified 22h ago
get_etf_literature
list_etfs
get_etf_holdings
get_etf_sector_allocation
search_etfs
6/6 passing latest checkself-healing
Endpoints
6
Updated
22d ago

What is the iShares API?

The iShares API provides structured access to BlackRock's iShares ETF catalog across 6 endpoints, returning fund metadata, per-holding detail, and performance figures. The get_etf_holdings endpoint delivers a full holdings array per fund — including weight, market value, CUSIP, ISIN, SEDOL, and sector classification for each position. The list_etfs endpoint supports filtering by asset class across Equity, Fixed Income, Commodities, Real Estate, Digital Assets, and more.

Try it
Maximum number of ETFs to return.
Filter by asset class. Accepted values: Equity, Fixed Income, Digital Assets, Commodities, Real Estate, Multi-asset.
api.parse.bot/scraper/5574216d-9f38-48cb-9912-dcabc247cc10/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace ishares-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.


from parse_apis.ishares_etf_api import IShares, AssetClass, Etf, EtfSummary

ishares = IShares()

# List equity ETFs
for etf in ishares.etfs.list(asset_class=AssetClass.EQUITY):
    print(etf.ticker, etf.name, etf.expense_ratio)

# Search for a specific ETF and drill into details
for result in ishares.etfs.search(query="S&P 500"):
    full_etf = result.details()
    print(full_etf.ticker, full_etf.nav, full_etf.expense_ratio)

# Navigate sub-resources: holdings, sectors, literature
etf = ishares.etfs.get(portfolio_id="239726")

for holding in etf.holdings.list():
    print(holding.ticker, holding.name, holding.weight, holding.sector)

for sector in etf.sectors.list():
    print(sector.sector, sector.weight)

for doc in etf.literature.list():
    print(doc.type, doc.title, doc.url)
All endpoints · 6 totalmissing one? ·

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.

Input
ParamTypeDescription
limitintegerMaximum number of ETFs to return.
asset_classstringFilter by asset class. Accepted values: Equity, Fixed Income, Digital Assets, Commodities, Real Estate, Multi-asset.
Response
{
  "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

The list_etfs endpoint returns all iShares ETFs as an array of summary objects. Each entry includes portfolio_id, ticker, isin, cusip, inception_date, asset_class, net_assets, expense_ratio, and YTD return. The optional asset_class parameter narrows results to a specific category (e.g., Equity or Fixed Income). The search_etfs endpoint accepts a free-text query matched against ticker symbols and fund names, returning portfolio_id, ticker, name, asset_class, and a product_page_url for each match.

Holdings and Sector Breakdown

The get_etf_holdings endpoint accepts either a ticker (e.g., IVV) or a portfolio_id and returns the complete holdings list with per-position fields: ticker, name, sector, asset_class, market_value, weight, shares, cusip, isin, sedol, price, and currency. An optional as_of_date parameter (format YYYYMMDD) retrieves historical snapshots; omitting it returns the most recent available date. Holdings data is not available for all fund types — commodity trusts may return an upstream error. The get_etf_sector_allocation endpoint derives sector weights from the same underlying holdings, returning an array of {sector, weight} pairs sorted by weight descending. This endpoint is primarily useful for equity ETFs.

Performance and Fund Details

The get_etf_details endpoint returns nav, nav_as_of, yield_12m, expense_ratio, asset_class, and a performance object with annualized returns at YTD, 1-year, 3-year, 5-year, and 10-year horizons. Identifiers (isin, cusip, portfolio_id) are also included, making it straightforward to cross-reference results with other data sources.

Literature and Documents

The get_etf_literature endpoint returns available regulatory and marketing documents for a given ETF — including Fact Sheets, Prospectuses, Summary Prospectuses, Annual Reports, Semi-Annual Reports, and Product Briefs. Each document object includes a type field and a download or reference link. At least one of ticker or portfolio_id is required across all detail endpoints.

Reliability & maintenanceVerified

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.

Last verified
22h ago
Latest check
6/6 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Screen equity ETFs by expense ratio and YTD return using list_etfs filtered to asset_class=Equity.
  • Build a holdings overlap tool by comparing get_etf_holdings arrays across two or more ETFs.
  • Track sector drift in a portfolio by polling get_etf_sector_allocation for held ETFs over time.
  • Retrieve prospectus and annual report links via get_etf_literature for compliance or due-diligence workflows.
  • Cross-reference ETF performance at 3-year and 5-year horizons using the performance object from get_etf_details.
  • Resolve an ETF ticker to its ISIN and CUSIP for downstream reconciliation with custody or accounting systems.
  • Identify historical holdings snapshots by passing as_of_date to get_etf_holdings for a point-in-time composition view.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does iShares have an official developer API?+
BlackRock does not publish a public developer API for iShares fund data. The iShares website (ishares.com) exposes fund information through its consumer-facing site, but there is no documented, credentialed API offered to third-party developers.
What does `get_etf_holdings` return, and can I retrieve historical data?+
The endpoint returns the complete holdings list for a specified ETF, with fields including weight, market_value, shares, price, currency, sector, and multiple security identifiers (cusip, isin, sedol). To get a historical snapshot rather than the most recent data, pass the as_of_date parameter in YYYYMMDD format (e.g., 20250101). Note that holdings data is unavailable for some fund types such as commodity trusts, which return an upstream error.
Does the API cover iShares ETFs listed outside the United States?+
The current endpoints reflect the iShares fund catalog as presented on ishares.com, which is primarily the US-listed product range. ETFs listed on European or Asia-Pacific exchanges are not currently covered. You can fork this API on Parse and revise it to point at regional iShares sites (e.g., the UCITS fund range) and add the missing coverage.
Is real-time or intraday price data available?+
No intraday or real-time market price data is exposed. The get_etf_details endpoint returns nav and nav_as_of reflecting the most recent end-of-day net asset value, not live bid/ask or intraday trade prices. You can fork this API on Parse and revise it to integrate a market data source alongside the fund metadata endpoints.
Can I filter `get_etf_holdings` by sector or country directly?+
The endpoint returns the full holdings array without server-side filtering by sector or country. Each holding object includes a sector field, so client-side filtering is straightforward. For a pre-aggregated sector view, get_etf_sector_allocation returns sector weights directly without requiring you to aggregate the raw holdings yourself.
Page content last updated . Spec covers 6 endpoints from ishares.com.
Related APIs in FinanceSee all →
blackrock.com API
Access comprehensive BlackRock iShares ETF data to research fund performance, holdings, fees, and sector allocations, plus search and compare specific ETFs. Monitor investment details like distributions, key characteristics, and broad market indices all in one place.
justetf.com API
Search and compare thousands of ETFs listed on justETF, with access to detailed profiles, key metrics (TER, fund size, asset class, currency), and full monthly performance history. Filter results by asset class, fund currency, expense ratio, and more.
vaneck.com.au API
Access real-time NAV prices, last trade prices, and historical performance data for VanEck Australia ETFs and indices. Retrieve fund snapshots, comprehensive performance tables, and price metrics for any ASX-listed VanEck ETF.
stockanalysis.com API
Access comprehensive stock market data including real-time financials, income statements, statistics, and IPO calendars to research individual stocks and identify market movers. Search stocks, view detailed overviews, and monitor premarket activity all in structured, easy-to-use format.
morningstar.com API
Get comprehensive financial data including stock quotes, company profiles, historical financials, valuation metrics, ownership details, dividends, and market movers from Morningstar. Search securities and access the latest stock news to make informed investment decisions.
morningstar.com.au API
Access comprehensive financial data for Australian stocks, ETFs, and managed funds including key metrics, valuations, dividends, and historical prices. Search securities, review company profiles and ownership details, and stay informed with market news and upcoming dividend information.
nyse.com API
nyse.com API
nasdaq.com API
Track real-time and historical stock prices, ETF and mutual fund quotes, cryptocurrency data, and comprehensive company financials including earnings, dividends, and SEC filings all from one source. Research market trends with institutional holdings, short interest data, retail trading activity, and market movers to make informed investment decisions.