Single crypto price quote
GET /v1/quote/crypto/:symbol — Price and 24-hour percentage change from Backend /assets/quote. The Agent resolves a canonical assetId through /assets/r
GET /v1/quote/crypto/:symbol
Price and 24-hour percentage change from Backend /assets/quote. The Agent resolves a canonical assetId through /assets/resolve, then reads that exact asset. referenceDataSource/sourceRef are not required; no direct CMC/CoinGecko request or price-provider fallback is made. With address and chain, the symbol is only a display label. Unmatched identities, missing snapshots and transport failures remain explicitly unavailable. Coverage and source timestamps are preserved. USD market statistics are a separate resource at /v1/markets/crypto/stats and remain available independently of price coverage. The UI uses the Token Info percentage from that resource only when this Backend change field is absent.
| Method | GET |
| Path | /v1/quote/crypto/:symbol |
| Auth | Authorization: Bearer <token> required when GATEWAY_AUTH_TOKEN is set |
| Category | market |
Response body
{"connected": true, "supported": true, "assetId": "crypto:bitcoin", "symbol": "BTC", "source": "minara", "price": 78000.12, "price_change_24h_pct": 1.2, "currency": "USD", "asOf": "2026-09-14T08:00:00.000Z", "retrievedAt": "2026-09-14T08:00:05.000Z", "coverage": {"status": "partial", "sources": ["hyperliquid_snapshot"], "stale": false, "dataAgeMs": 5000, "reason": "partial_coverage", "missing": []}}Notes
Gateway and AI get_price share this reader and a five-second Backend snapshot cache, cleared on account or backend changes. Every call checks authenticated asset identity. Coverage.sources identifies the actual stored data source, which may be a Hyperliquid mark-price snapshot; this endpoint does not relabel it as CMC spot data. asOf is the Backend primary quote timestamp, while retrievedAt is local retrieval time. Missing numeric fields remain absent, never zero-filled. Fixed-exchange, stock and K-line readers retain their own paths.