# GET /v2/tickers/{ticker}/sectors

**ETF sector breakdown**

Returns an ETF's sector weights, heaviest first — always complete, since sector breakdowns are small.

## Query / path parameters

| Name | In | Type | Required | Description |
|------|----|----|----------|-------------|
| `ticker` | path | string | yes | ETF symbol. Case-insensitive. Example: `SPY`. |

## Returns

- `as_of` (string) — Server time this response was assembled (ISO 8601).
- `ticker` (string) — The ETF you asked for.
- `is_etf` (boolean) — Whether the symbol is an ETF, from the instrument type on its ticker record.
- `count` (number) — Sectors returned.
- `sectors` (array) — Sector weights, heaviest first, in the vendor's ETF-profile vocabulary.

## Status codes

- **200** — Success — the response shape is documented under Returns above.
- **400** — Invalid ticker (malformed symbol).
- **404** — `not_found` — the symbol is not in the tracked universe. A tracked non-ETF answers 200 with `is_etf: false` instead.

## Sample response

```json
{
  "as_of": "2026-08-11T21:25:08.370Z",
  "ticker": "SPY",
  "is_etf": true,
  "count": 11,
  "sectors": [
    { "sector": "INFORMATION TECHNOLOGY", "weight": 0.372 },
    { "sector": "FINANCIALS", "weight": 0.107 },
    { "sector": "COMMUNICATION SERVICES", "weight": 0.098 },
    { "sector": "CONSUMER DISCRETIONARY", "weight": 0.093 },
    { "sector": "HEALTHCARE", "weight": 0.089 },
    { "sector": "INDUSTRIALS", "weight": 0.085 },
    { "sector": "CONSUMER STAPLES", "weight": 0.046 },
    { "sector": "ENERGY", "weight": 0.033 },
    { "sector": "UTILITIES", "weight": 0.022 },
    { "sector": "MATERIALS", "weight": 0.017 },
    { "sector": "REAL ESTATE", "weight": 0 }
  ]
}
```

## Notes

- `is_etf` reports whether the symbol is an ETF, from the instrument type on its ticker record. For a non-ETF it is false and `sectors` is empty; `is_etf: true` with `count: 0` means a real ETF whose sector data has not been ingested yet.
- These sector NAMES are the vendor's ETF-profile vocabulary (`INFORMATION TECHNOLOGY`, `CONSUMER DISCRETIONARY`, `MATERIALS`), NOT the values the `sector` column carries on a ticker row (`Technology`, `Consumer Cyclical`, `Basic Materials`). The two taxonomies line up conceptually but not as strings, so passing a value from here into `?sector=` on [All symbols](/docs/endpoints/tickers/symbols) — or into a `q=` filter — matches nothing and returns an empty result rather than an error.
- Sector data comes from a nightly post-close vendor refresh (AlphaVantage ETF profiles) — expect it to be up to a day behind.

---

Interactive sandbox + parameter editor: https://tickerbot.io/docs/endpoints/tickers/sectors
