---
title: "GET /v2/market/prices/ws"
method: GET
path: "/v2/market/prices/ws"
tags: ["Product Market Realtime"]
---

# GET /v2/market/prices/ws

`GET /v2/market/prices/ws`

## Request

- Base URL: `https://api.arbital.xyz` (the document declares no server; this is the origin it was published from)
- URL: `https://api.arbital.xyz/v2/market/prices/ws`
- Auth: one of:
  - HTTP bearer
  - API key in header `Sec-WebSocket-Protocol`

Upgrades to a pooled provider-independent live USD price stream. Native clients may use a Privy bearer header. Browser version-1 clients offer protocol and ticket_protocol from POST /v2/market/prices/ws/tickets in that order. Version 1 accepts up to 64 canonical assets and preserves its wire shape. Both versions accept optional price_status: v1 on subscribe to expose per-token freshness, safe update reasons, original provider observation times and finite deadlines. The legacy aggregate status is price availability, never client connection health; use actual WebSocket events and heartbeat timeouts for connection health. Without this capability the original item shape is preserved. Version 2 accepts up to 3 assets and supports per-item evidence when its subscribe message requests evidence: price-v1; omission preserves the prior strict v2 shape. Evidence includes (availability, coverage, original source/method clocks and finite expiry); evidence absence in an older release means unknown. Prices become stale after 5 seconds and null after 120 seconds from their original observation, independently of heartbeats or other assets. Version 2 continuation accepts only the current generation/revision, otherwise returns resync_required plus current state; it does not replay history. Equivalent configured source policies share logical asset subscriptions below independent route admission. WS schemas: /schemas/product-prices-ws-v1.json and /schemas/product-prices-ws-v2.json. These indicative observations cannot authorize holdings, portfolio totals, quotes or execution.

## Query parameters

- `version` 1 | 2

## Other responses

- `101`: Live price WebSocket protocol upgrade accepted
- `400`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `401`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `408`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `413`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.
- `503`: Stable machine-readable problem. HTTP 429 and 503 responses include retry and cache-validity fields plus Retry-After and X-Request-ID headers.

---

[API](https://skmtc.dev/arbital/apis/arbital-api.md) - [All operations](https://skmtc.dev/arbital/apis/arbital-api/llms.txt) - [OpenAPI document](https://skmtc.dev/arbital/apis/arbital-api/revisions/bb0185edf43a?raw)
