Docs/Charts/TradingView datafeed (UDF)

TradingView datafeed (UDF)

Point the TradingView Charting Library at our data with one line.

Already using the TradingView Charting Library / Advanced Charts? Quanaris speaks the Universal Data Feed (UDF) contract, so you wire your own TradingView chart to our reconciled OHLCV with a single line — no custom datafeed code.

new TradingView.widget({
  symbol: MINT, interval: "60",
  datafeed: new Datafeeds.UDFCompatibleDatafeed("https://www.quanaris.com/udf"),
  container: "tv_chart", library_path: "/charting_library/"
});

The symbol is the token mint (base58). Resolutions map to our timeframes: 1S 5S 15S 30S (sub-minute, paid plans), 1 5 15 (minutes), 60 (1h), 240 (4h), 1D (daily).

Endpoints

RouteWhat it returns
GET /udf/configCapabilities + supported resolutions.
GET /udf/timeServer time (unix seconds).
GET /udf/symbols?symbol=<mint>Symbol info (resolveSymbol).
GET /udf/search?query=Search the mints we index by symbol / name / mint.
GET /udf/history?symbol=&resolution=&from=&to=OHLC bars as { s, t, o, h, l, c, v }.
Honest boundaries. When a window predates our coverage, /udf/history returns { s:"no_data", nextTime } pointing at where the series actually begins — TradingView stops paging into the void instead of showing a frozen or empty chart.

Authentication & plans

Public mints chart without a key. To unlock sub-minute resolutions and full history on your own mints, pass your key as an x-api-key header or — since TradingView can't send custom headers — append ?key=qnr_live_… to the datafeed URL (new Datafeeds.UDFCompatibleDatafeed("https://www.quanaris.com/udf?key=…")). The same per-plan history-floor and sub-minute gate as OHLCV applies.