Hey everyone,
We’re making changes to the price field in Pyth Pro API response payloads. Here’s what you need to know.
What’s Changing
1. New field: feedUpdateTimestamp
We’re introducing feedUpdateTimestamp — a feed-level timestamp that represents the exact time the returned price was last produced. Use this to determine how fresh the price data is. The existing global timestamp (timestampUs) remains unchanged and continues to function separately.
2. price will no longer return null when there’s no aggregate
Previously, if an aggregate couldn’t be produced (e.g. the market is closed, or there aren’t enough publishers), price would return null. Going forward, we’ll return the latest available price instead — meaning the price value stays the same as before the gap.
To check whether the price is current, use feedUpdateTimestamp.
Note: For brand-new feeds that have never received a valid price,
nullcan still be returned. Once a feed receives its first valid price, thepricefield is expected to remain non-null from that point on.
What You Should Do
-
Stop relying on
price = nullas a signal. If your integration checks fornullprices to detect stale data or market closures, update that logic. -
Use
feedUpdateTimestampto determine how recent the returned price is and build your staleness checks around it.
Example Response
json
{
"type": "streamUpdated",
"subscriptionId": 1,
"parsed": {
"timestampUs": "1758690761750000",
"priceFeeds": [
{
"priceFeedId": 1,
"price": "11223872331053",
"bestBidPrice": "11222498842767",
"bestAskPrice": "11224513591935",
"publisherCount": 9,
"exponent": -8,
"confidence": 1373488286,
"marketSession": "regular",
"feedUpdateTimestamp": 1758690761740000
}
]
},
"evm": {
"encoding": "base64",
"data": "0x..."
}
}
Quick summary of the fields:
| Field | What it represents |
|---|---|
price |
Latest available price (no longer null when aggregate unavailable) |
feedUpdateTimestamp |
When this specific price was last produced (feed-level freshness) |
timestampUs |
Global event timestamp (unchanged) |
Ensure your systems are compatible before March 15, 2026. The feedUpdateTimestamp field is already live and you can start relying on this. The change on the price behaviour comes to effect end of month.
If you have questions or run into issues during migration, drop them in this thread and we’ll help you out.