# Ishares — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Access comprehensive iShares ETF information including fund holdings, performance metrics, sector allocation, and investment literature all in one place. Search and compare ETFs to find the right funds for your portfolio and get detailed breakdowns of what's inside each fund.

**Category:** Finance & Markets | **Website:** [ishares.com/](https://ishares.com/) | **Docs:** [parse.bot/marketplace/ecbc607e-6fc3-44b1-8d19-204979eb1e0e/ishares-com-api](https://parse.bot/marketplace/ecbc607e-6fc3-44b1-8d19-204979eb1e0e/ishares-com-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_etf_details

Retrieve performance metrics, NAV, yield, and expense data for an ETF from the product screener. At least one of ticker or portfolio_id is required. Performance includes YTD, 1-year, 3-year, 5-year, and 10-year annualized returns.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `portfolio_id` | string | No | Portfolio ID from the screener (e.g., 239726). Either ticker or portfolio_id must be provided. |
| `ticker` | string | No | ETF ticker symbol (e.g., IVV). Either ticker or portfolio_id must be provided. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/get_etf_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"portfolio_id":"<string>","ticker":"<string>"}'
```

### get_etf_holdings

Retrieve the full list of holdings for a specific ETF via the product data API. At least one of ticker or portfolio_id is required. Returns each holding with ticker, name, sector, asset class, market value, weight, shares, identifiers, price, and currency.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `as_of_date` | string | No | Holdings as-of date in YYYYMMDD format (e.g., 20250401). Omitting returns the most recent holdings. |
| `portfolio_id` | string | No | Portfolio ID from the screener (e.g., 239726). Either ticker or portfolio_id must be provided. |
| `ticker` | string | No | ETF ticker symbol (e.g., IVV, EFA). Either ticker or portfolio_id must be provided. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/get_etf_holdings \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"as_of_date":"<string>","portfolio_id":"<string>","ticker":"<string>"}'
```

### get_etf_literature

Retrieve available literature documents (fact sheets, prospectuses, reports) for an ETF by parsing the fund's product page. At least one of ticker or portfolio_id is required. Returns document type, title, and PDF URL.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `portfolio_id` | string | No | Portfolio ID from the screener (e.g., 239726). Either ticker or portfolio_id must be provided. |
| `ticker` | string | No | ETF ticker symbol (e.g., IVV). Either ticker or portfolio_id must be provided. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/get_etf_literature \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"portfolio_id":"<string>","ticker":"<string>"}'
```

### get_etf_sector_allocation

Calculate the sector allocation breakdown for an ETF based on its holdings. At least one of ticker or portfolio_id is required. Aggregates holding weights by sector and returns them sorted by weight descending. Primarily useful for equity ETFs.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `portfolio_id` | string | No | Portfolio ID from the screener (e.g., 239726). Either ticker or portfolio_id must be provided. |
| `ticker` | string | No | ETF ticker symbol (e.g., IVV). Either ticker or portfolio_id must be provided. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/get_etf_sector_allocation \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"portfolio_id":"<string>","ticker":"<string>"}'
```

### list_etfs

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.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `asset_class` | string | No | Filter by asset class. Accepted values: Equity, Fixed Income, Digital Assets, Commodities, Real Estate, Multi-asset. |
| `limit` | integer | No | Maximum number of ETFs to return. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/list_etfs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"asset_class":"<string>","limit":"<integer>"}'
```

### search_etfs

Search for ETFs by ticker symbol or fund name. Returns matching ETFs with basic metadata. Case-insensitive substring match against both ticker and fund name.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `query` | string | Yes | Search query to match against ticker symbols or fund names (case-insensitive substring match). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-ishares-com-api-ecbc607e/search_etfs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"<string>"}'
```
