Feed updates
Commodities.Index.TGAS/USDwent liveEquity.US.RAM/USDaddedEquity.US.DJT/USDaddedEquity.US.SIMO/USDaddedCommodities.WTIU6/USDremovedCommodities.WTIF7/USDwent liveEquity.US.XPO/USDwent liveEquity.US.AGX/USDwent liveEquity.US.PRIM/USDwent liveCommodities.CLLZ6/USDwent liveMetal.CC3M/USDwent liveCrypto.GLDX/USDaddedCrypto.Index.PPLUS/USDaddedCrypto.Index.HIGH/USDadded
View all
Developer Hub

History API

Historical price data, OHLC candlesticks, and TradingView integration

Base URL

https://pyth.dourolabs.app/v1

All {channel} path segments refer to a price channel (e.g. real_time, fixed_rate@200ms).

The /{channel}/... endpoints conform to the TradingView UDF specification, allowing you to connect TradingView charting UIs directly to this API.

Endpoints

MethodPathAuthDescription
GET/liveNoHealth check
GET/symbolsNoList available symbols
GET/{channel}/priceYesPrice at a specific timestamp
GET/{channel}/price/rangeYesPaginated prices over a time window
GET/{channel}/historyYesOHLC candlestick data
GET/{channel}/searchNoSearch symbols
GET/{channel}/symbolsNoResolve a single symbol
GET/{channel}/configNoTradingView configuration
GET/publisher_updatesYesRaw publisher updates

GET /symbols

List all available price feed symbols, optionally filtered.

Query Parameters

ParameterTypeRequiredDescription
querystringNoText filter for symbol names
asset_typestringNoFilter by asset type: crypto, fx, equity, metal, rates, nav, commodity, funding-rate

GET /{channel}/price

Returns price data at a specific historical timestamp.

Query Parameters

ParameterTypeRequiredDescriptionExample
idsnumber[]YesPrice feed IDs1,2
timestampnumberYesUnix timestamp in microseconds1704067200000000

GET /{channel}/price/range

Returns paginated price data for a set of feeds over a bounded time window.

Query Parameters

ParameterTypeRequiredDescriptionExample
idsnumber[]YesPrice feed IDs (max 100)1,2
start_timestampnumberYesWindow start, Unix timestamp in microseconds, inclusive1704067200000000
end_timestampnumberYesWindow end, Unix timestamp in microseconds, inclusive; the window may not exceed 60 seconds1704067260000000
limitnumberNoMax results per page, 1–1000 (default: 100)500
afterstringNoOpaque pagination cursor from a previous response's next field

Response Schema

FieldTypeDescription
dataobject[]Price objects, one per feed and timestamp
nextstringOpaque cursor, present only when another page exists

Each data entry has the same shape as the GET /{channel}/price response: channel, channel_name, price_feed_id, price, publish_time, best_bid_price, best_ask_price, publisher_count, exponent, confidence, funding_rate, funding_timestamp, funding_rate_interval, market_session, ema_price, ema_confidence, feed_update_timestamp.

To fetch the next page, pass next verbatim as the after parameter of the following request; stop when next is absent. Cursors are opaque and must not be constructed by hand.

Errors

StatusCause
400Invalid parameters, window longer than 60 seconds, or feed not ready/unavailable on the channel
401Missing bearer token
403Token not entitled to a requested feed
404Unknown feed ID

GET /{channel}/history

Returns OHLC candlestick data in TradingView format.

Query Parameters

ParameterTypeRequiredDescriptionExample
symbolstringYesTrading pair symbol (case-insensitive)Crypto.BTC/USD
fromnumberYesStart timestamp (Unix seconds)1704067200
tonumberYesEnd timestamp (Unix seconds)1704153600
resolutionstringYesCandle resolution (see below)60

Available Resolutions

ResolutionDescription
11 minute
22 minutes
55 minutes
1515 minutes
3030 minutes
601 hour
1202 hours
2404 hours
3606 hours
72012 hours
D1 day
W1 week
M1 month

Response Schema

FieldTypeDescription
sstringStatus: ok or error
tnumber[]Unix timestamps (seconds)
onumber[]Open prices
hnumber[]High prices
lnumber[]Low prices
cnumber[]Close prices
vnumber[]Volumes (if available)

Arrays are aligned by index — t[0], o[0], h[0], l[0], c[0] represent the same candle.


GET /{channel}/search

Search for symbols by name and type.

Query Parameters

ParameterTypeRequiredDescription
querystringYesSearch text
typestringYesAsset type filter
exchangestringYesExchange name (default: "PYTH")
limitnumberYesMax results (default: 15)

GET /{channel}/symbols

Resolve a single symbol to its full configuration.

Query Parameters

ParameterTypeRequiredDescription
symbolstringYesSymbol name (case-insensitive)

GET /{channel}/config

Returns TradingView-compatible configuration including supported resolutions and data capabilities.


GET /publisher_updates

Returns raw publisher price updates. Requires authentication.

Query Parameters

ParameterTypeRequiredDescription
price_feed_idnumber[]NoFilter by price feed IDs
min_timestampstringNoISO 8601 start time (default: 7 days ago)
max_timestampstringNoISO 8601 end time
sortstringYes"Ascending" or "Descending"
limitnumberNoMax results, 1–10000 (default: 15)

Authentication

GET /{channel}/price, GET /{channel}/price/range, and GET /{channel}/history require API-key authentication. Pass your Pro API key as a bearer token:

curl -H "Authorization: Bearer $PRO_API_KEY" \
  "https://pyth.dourolabs.app/v1/fixed_rate@200ms/price?ids=1&timestamp=1704067200000000"

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.

For browser/frontend apps that cannot hold a secret, see Frontend Authentication.

See Acquire an API Key to obtain a key.

OpenAPI Schema

The full OpenAPI specification is available at:

On this page