> ## Documentation Index
> Fetch the complete documentation index at: https://docs.glider.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Portfolio Sector Exposure

> Returns eligible equity exposure grouped by Glider's canonical sector taxonomy.

Returns the portfolio's current eligible equity exposure grouped by Glider's
canonical display sectors. Tokenized equities are resolved to their canonical
underlying equity before classification.

* Auth: `x-api-key` header (required)
* Scope: `portfolios:read`
* The requested portfolio must belong to the authenticated tenant.

Unsupported non-equity positions are excluded from the exposure denominator
and returned under `diagnostics.unsupportedPositions`. Equity positions that
cannot be classified remain in the denominator and appear in the
`Unclassified` row and `diagnostics.unclassifiedPositions`.

All monetary values and weights are decimal strings. Do not parse and
re-serialize them through floating-point arithmetic.

<RequestExample>
  ```bash cURL theme={null}
  curl --request GET \
    --url 'https://api.glider.fi/v2/portfolios/01JWZEE2MF30KVRMRX53N88VA4/sector-exposure' \
    --header 'x-api-key: gldr_sk_your_api_key'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "success": true,
    "data": {
      "portfolioId": "01JWZEE2MF30KVRMRX53N88VA4",
      "asOfDate": "2026-07-23T16:00:00.000Z",
      "taxonomy": "internal_display_sector_v1",
      "totalMarketValueUsd": "1000.000000",
      "classifiedMarketValueUsd": "800.000000",
      "unclassifiedMarketValueUsd": "200.000000",
      "rows": [
        {
          "displaySector": "Technology",
          "marketValueUsd": "800.000000",
          "weight": "0.800000",
          "classifiedPositionCount": 2,
          "totalPositionCount": 2,
          "primarySources": [
            {
              "source": "financedatabase_symbol_exchange",
              "count": 2,
              "marketValueUsd": "800.000000"
            }
          ]
        },
        {
          "displaySector": "Unclassified",
          "marketValueUsd": "200.000000",
          "weight": "0.200000",
          "classifiedPositionCount": 0,
          "totalPositionCount": 1,
          "primarySources": [
            {
              "source": "unclassified",
              "count": 1,
              "marketValueUsd": "200.000000"
            }
          ]
        }
      ],
      "diagnostics": {
        "unsupportedPositions": [],
        "unclassifiedPositions": [
          {
            "assetId": "eip155:1/erc20:0x1111111111111111111111111111111111111111",
            "symbol": "EXAMPLE",
            "assetCanonicalId": "equity:example",
            "reason": "No canonical sector classification",
            "marketValueUsd": "200.000000"
          }
        ],
        "lowConfidencePositions": []
      }
    }
  }
  ```

  ```json 404 theme={null}
  {
    "success": false,
    "error": {
      "code": "API_200",
      "message": "Portfolio not found"
    }
  }
  ```
</ResponseExample>

The endpoint returns `500 API_600` when live portfolio valuation is
temporarily unavailable. Treat that as a transient server error and retry
with backoff.
