Get latest prices
https://pyth-lazer.dourolabs.app/v1/latest_priceAn API key or short-lived access token, in an Authorization: Bearer <token> header.
Returns the latest available update for the requested feeds. Use properties to select feed values and formats to select payload formats. The update fields match those in WebSocket price updates.
For continuous updates: Stream price updates →
v1/latest_pricecurl "https://pyth-lazer.dourolabs.app/v1/latest_price" \
-H "Authorization: Bearer $PYTH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "fixed_rate@200ms",
"formats": ["evm"],
"properties": ["price", "bestBidPrice", "bestAskPrice", "exponent"],
"priceFeedIds": [1, 2],
"jsonBinaryEncoding": "hex",
"parsed": true
}'{
"parsed": {
"priceFeeds": [
{
"priceFeedId": 1,
"bestAskPrice": "11294045000000",
"bestBidPrice": "11293998000000",
"exponent": -8,
"price": "11294021500000"
},
{
"priceFeedId": 2,
"bestAskPrice": "418737500000",
"bestBidPrice": "418730000000",
"exponent": -8,
"price": "418733750000"
}
],
"timestampUs": "1758830400000000"
},
"evm": {
"data": "2a22999a0000000000000000c0e3a4b7…",
"encoding": "hex"
}
}Request body
application/jsonSend a JSON object with these fields.
channelRequiredThe channel that determines the update frequency.
- real_time
- fixed_rate@50ms
- fixed_rate@200ms
- fixed_rate@1000ms
formatsRequiredPayload formats to include in each update, with no duplicates. An empty array requests no binary payloads. With a payload format, a request can include at most 255 feeds.
- evm
- solana
- leEcdsa
- leUnsigned
propertiesRequiredFeed properties to include in each update. Specify at least one property. Duplicate values are not allowed.
- price
- bestBidPrice
- bestAskPrice
- publisherCount
- exponent
- confidence
- fundingRate
- fundingTimestamp
- fundingRateInterval
- marketSession
- emaPrice
- emaConfidence
- feedUpdateTimestamp
Provide either priceFeedIds or symbols, but not both. Use numeric IDs, such as 1 for BTC/USD, or symbols, such as Crypto.BTC/USD. The array must contain at least one entry and no duplicates.
Select feeds by pyth_lazer_id in priceFeedIds, not by symbol. Feed symbols can change when we correct symbology, and a symbol may later point to a different asset. A pyth_lazer_id never changes.
priceFeedIdsinteger[] | nullsymbolsstring[] | nulljsonBinaryEncodingstringDefault base64Encoding to use for binary payloads in JSON responses.
- base64default
- hex
parsedbooleanDefault trueIf true, includes decoded update values in the parsed response field.
Response
200 · application/jsonReturns a JSON object with the following fields.
parsedobjectDecoded feed values for this update. Omitted when the request sets parsed to false.
priceFeedsobject[]Feed values included in this update.
priceFeedIdintegerNumeric ID of the price feed.
bestAskPricestringBest ask price, before applying exponent. Included for price feeds when requested in properties and a value is available.
bestBidPricestringBest bid price, before applying exponent. Included for price feeds when requested in properties and a value is available.
exponentintegerPower of ten that scales the decimal fields: decimal value = mantissa * 10^exponent. Included when requested in properties.
pricestringPrice, before applying exponent. On funding-rate feeds, the funding price. Included when requested in properties and a value is available.
confidenceintegerConfidence interval of the price, before applying exponent. Included for price feeds when requested in properties and a value is available.
emaConfidenceintegerExponential moving average of the confidence interval, before applying exponent. Included for price feeds when requested in properties and a value is available.
emaPricestringExponential moving average of the price, before applying exponent. Included for price feeds when requested in properties and a value is available.
Show 6 moreShow fewer
feedUpdateTimestampintegerFeed update timestamp, in Unix microseconds. Included when requested in properties.
fundingRateintegerPerpetual futures funding rate, before applying exponent. Included for funding-rate feeds when requested in properties and a value is available.
fundingRateIntervalintegerTime between funding rate updates, in microseconds. Included for funding-rate feeds that define an interval, when requested in properties.
fundingTimestampintegerTimestamp of the latest funding rate, in Unix microseconds. Included for funding-rate feeds when requested in properties and a value is available.
marketSessionstringMarket session of the feed update. Included when requested in properties.
- regular
- preMarket
- postMarket
- overNight
- closed
publisherCountintegerNumber of publishers contributing to the update. Included when requested in properties.
timestampUsstringThe update timestamp, in Unix microseconds.
evmleEcdsaleUnsignedsolanaobjectEach payload contains encoding and data. The evm, solana, and leEcdsa payloads include signatures. The leUnsigned payload does not include a signature.
datastringBinary payload encoded using the format specified by encoding.
encodingstringThe encoding of data.
- base64
- hex
Status codes returned when a request fails.
- 400
- The request is invalid. Possible causes include an invalid body, an unknown symbol, an unsupported channel for a feed, or more than 255 feeds when requesting a payload format.
- 401
- The API key or access token is invalid.
- 403
- Authentication is missing, the credentials do not grant access to a requested feed or channel, or a requested feed ID does not exist.
- 429
- The request rate limit for this API key was exceeded.