> ## 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.

# SEO Asset Summary

> Versioned, cacheable slow-moving asset facts for the webapp edge SEO layer.

`platform-api` resolves indexed canonical assets and returns locale-neutral,
slow-moving facts for the public webapp edge SEO layer. Hinted requests resolve
within one class. Unhinted requests use the shared resolver's canonical
cross-class decision, including its tokenized-equity-wrapper suppression rule.
The response never contains a live price.

## Query

| Parameter    | Required | Values             | Description                                                                                                 |
| ------------ | -------- | ------------------ | ----------------------------------------------------------------------------------------------------------- |
| `symbol`     | Yes      | Non-empty string   | Case-insensitive symbol resolved through the indexed asset universe.                                        |
| `assetClass` | No       | `crypto`, `tradfi` | Optional class scope. Omit it to receive the shared resolver's unhinted `resolved` or `ambiguous` decision. |

## Contract

Every valid request returns HTTP 200 and carries `version: 2` plus a
discriminating `status` field. Found responses also carry a `resolution`
discriminator. Missing or invalid required query parameters
return HTTP 400 with `Cache-Control: no-store`.

### Found and resolved

```json theme={null}
{
  "version": 2,
  "status": "found",
  "resolution": "resolved",
  "canonicalSymbol": "NVDA",
  "name": "NVIDIA Corporation",
  "assetClass": "tradfi",
  "description": "NVIDIA designs accelerated computing platforms.",
  "previousClose": 198.4,
  "marketCapBucket": "mega_cap",
  "exchange": "XNAS"
}
```

`description`, `previousClose`, `marketCapBucket`, and `exchange` are omitted
when unavailable. `marketCapBucket` is one of `mega_cap`, `large_cap`,
`mid_cap`, `small_cap`, `micro_cap`, or `nano_cap`, using boundaries of $200B,
$10B, $2B, $250M, and \$50M respectively.

Hinted requests return `resolved` only within the requested class. An unhinted
request also returns `resolved` when the shared resolver selects one canonical
class. For example, a TSLA stock plus its TSLAon tokenized-equity wrapper is
one TradFi resolution, not a genuine cross-class collision.

### Found and ambiguous

```json theme={null}
{
  "version": 2,
  "status": "found",
  "resolution": "ambiguous",
  "matches": [
    {
      "assetClass": "tradfi",
      "canonicalSymbol": "ALLO",
      "name": "Allogene Therapeutics"
    },
    {
      "assetClass": "crypto",
      "canonicalSymbol": "ALLO",
      "name": "Allora"
    }
  ]
}
```

`ambiguous` is returned only for an unhinted genuine cross-class collision.
Each match uses the public `tradfi | crypto` class vocabulary.

### Not found

```json theme={null}
{
  "version": 2,
  "status": "not_found"
}
```

`not_found` is returned only for an authoritative resolver `invalid_symbol` or
`not_found` result. It remains transport HTTP 200 so the webapp edge worker can
make the final page-status decision without intermediaries caching an origin 404. Found and not-found responses use `Cache-Control: public,
s-maxage=3600`.

### Upstream error

```json theme={null}
{
  "version": 2,
  "status": "upstream_error"
}
```

Resolver and enrichment failures return `upstream_error` with `Cache-Control:
no-store`. An outage is never converted into `not_found`.

## Auth and rate limiting

No authentication is required. The endpoint uses the standard Platform API
`/v1/*` per-IP rate limiter.

```bash theme={null}
curl --request GET \
  --url 'https://api.glider.fi/v1/seo/asset-summary?symbol=NVDA&assetClass=tradfi'

curl --request GET \
  --url 'https://api.glider.fi/v1/seo/asset-summary?symbol=ALLO'
```
