REST API
On-demand price queries via REST
Base URL
https://pyth-lazer.dourolabs.appAPI key required for POST /v1/price starting July 24, 2026
Starting July 24, 2026, POST /v1/price requires API-key authentication,
and unauthenticated access to it will be disabled. Pass
Authorization: Bearer <PRO_API_KEY>; API-key auth is supported today, so add
the header now to stay forward-compatible. Do not expose the key in browser
apps — keep it server-side. See Authentication for the
header format and frontend-safe guidance, and the
announcement
for details.
Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
| POST | /v1/latest_price | Yes | Fetch the latest price for one or more price feeds |
| POST | /v1/price | Yes (from July 24, 2026) | Fetch price data at a specific historical timestamp |
POST /v1/latest_price
Returns the most recent price data for the requested feeds. The request body follows the same schema as the WebSocket subscribe message — see the Payload Reference for full details.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
channel | string | Yes | Subscription channel. One of: real_time, fixed_rate@1ms, fixed_rate@50ms, fixed_rate@200ms, fixed_rate@1000ms |
Each feed has a minimum supported channel (min_channel), discoverable via
/v1/symbols. You must use a
channel at or above the feed's min_channel. See Symbology & Reference
Data for every field the symbols
endpoint returns.
POST /v1/price
Returns price data at a specific historical timestamp.
Request Body
All fields from /v1/latest_price, plus:
| Field | Type | Required | Description |
|---|---|---|---|
timestamp | u64 | Yes | Unix timestamp in microseconds. Must be a raw integer — do not quote it. |
For the full response schema — including price feed fields, signed payloads, and available properties — see the Payload Reference.
Authentication
Starting July 24, 2026, POST /v1/price requires API-key authentication,
and unauthenticated access to it will be disabled. Pass your Pro API key as a
bearer token:
curl -X POST -H "Authorization: Bearer $PRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"priceFeedIds":[1,2],"properties":["price"],"formats":["solana"],"channel":"fixed_rate@200ms","timestamp":1704067200000000}' \
"https://pyth-lazer.dourolabs.app/v1/price"Do not embed your Pro API key in frontend or browser applications. The key
must stay server-side. Route requests through your own backend, which injects
the Authorization header before forwarding to this API. A client-safe JWT
authentication option is available for teams that do not want to run their own
proxy. See the History API
for details.
See Acquire an API Key to obtain a key.
OpenAPI Schema
The REST API is part of the Pyth Pro Router API. The full OpenAPI specification is available at:
Related
- Examples Repository
- WebSocket API - For real-time updates