TradingView API
Ethereal exposes a TradingView UDF-compatible API for querying historical OHLCV candlestick data, resolving symbol information, and searching available markets. This API powers charting integrations and can be used by any client that supports the TradingView UDF protocol.
Mainnet
https://tradingview.ethereal.trade
Testnet
https://tradingview.etherealtest.net
The full API specification (including request/response schemas, parameter validation rules, and error codes) is available via Swagger UI and as a downloadable OpenAPI spec. Use it to explore the API interactively or generate client SDKs:
Swagger UI
https://tradingview.ethereal.trade/docs
OpenAPI spec
https://tradingview.ethereal.trade/openapi.json
API Endpoints & Example
Each price type exposes the following endpoints:
GET /{price-type}/config
UDF data feed configuration (called on init)
GET /{price-type}/symbols
Resolve full symbol metadata for a given ticker
GET /{price-type}/search
Search for symbols with fuzzy matching
GET /{price-type}/history
Historical OHLCV bar data for a symbol/resolution
GET /{price-type}/time
Current server time (Unix seconds)
Where {price-type} is either last-price or oracle-price.
API Price Types
Every endpoint exists under two parallel route prefixes, each querying a different data source:
/v1/last-price
Last Price - derived from actual executed trades on the exchange. Only taker fills are included (self-trades, if any, are excluded).
/v1/oracle-price
Oracle Price - derived from oracle price feed snapshots. Represents the reference price used for mark pricing, funding, and liquidations.
Last price reflects where trades actually executed on the exchange. It is built from taker order fills (excluding self-trades) and includes meaningful volume data. During low-activity periods there may be gaps where no. trades occurred.
Oracle price reflects the external reference price used for mark pricing, funding, and liquidations. It is updated continuously by the oracle, producing a smoother and more complete price line — but volume data reflects oracle update frequency, not trade activity.
In most charting scenarios, oracle price provides a more continuous price line, while last price shows where actual trades occurred and includes meaningful volume data.
Ticker Format & Resolution
Symbols follow the format {TICKER}-{Type}, e.g. ETHUSD-Perp or BTCUSD-Perp. Currently only Perp (perpetual) is supported, with Spot coming soon.
Examples: ETHUSD-Perp, BTCUSD-Perp, SOLUSD-Spot
Supported candlestick resolutions:
Minutes:
1,3,5,15,30Hours:
60(1h),120(2h),240(4h),480(8h),720(12h)Days and above:
1D,3D,1W,1M
Ethereal currently only supports Perp type with Spot later.
Example oracle-price Candles
Fetch 1-hour oracle price candles for ETHUSD-Perp:
The history endpoint returns OHLCV arrays:
s
Status: ok, no_data, or error
t
Timestamps (Unix seconds)
o
Open prices
h
High prices
l
Low prices
c
Close prices
v
Volumes
Bars are returned in ascending chronological order (oldest first). When no data exists for the requested range, the response is { "s": "no_data" }.
Limitations & Intended Use
Limitations:
No authentication: this is a public, read-only API
No streaming / WebSocket support: the API is polling-based. Use the
historyendpoint to fetch updated barsNo marks or timescale marks:
supports_marksandsupports_timescale_marksarefalse.No group requests: symbols must be resolved individually.
Query range limits: each resolution has a maximum time range per request. For example, 1-minute bars are limited to a 1-hour window, while monthly bars can span up to 10 years. If you need more data, paginate by shifting the
from/towindow.Last price gaps: the last price feed reflects actual trade executions. During low-liquidity periods, there may be gaps in the data where no trades occurred.
Volume on oracle price: volume data on oracle price candles reflects oracle update frequency, not trade volume. Use last price candles for meaningful volume data.
Rate limiting: TradingView API follows the same rate limits defined at System Limits.
This API is designed for:
TradingView charting integrations: connect directly as a UDF data feed in the TradingView Charting Library
Historical data analysis: fetch OHLCV candle data for backtesting or analytics
Building custom charts: use the raw OHLCV arrays to render charts in any frontend
It is not intended for:
Real-time trade execution or order placement
Tick-level or sub-minute trade data
Account-specific or authenticated data retrieval
Last updated