chart-candlestickTradingView API

Ethereal exposes a TradingView UDF-compatiblearrow-up-right 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.

Environment
URL

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:

Resource
URL

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:

Endpoint
Description

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:

URL Prefix
Description

/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.

circle-info

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, 30

  • Hours: 60 (1h), 120 (2h), 240 (4h), 480 (8h), 720 (12h)

  • Days and above: 1D, 3D, 1W, 1M

circle-info

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:

Field
Description

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

circle-info

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 history endpoint to fetch updated bars

  • No marks or timescale marks: supports_marks and supports_timescale_marks are false.

  • 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/to window.

  • 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 Libraryarrow-up-right

  • 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