Charting Data
Senticore serves OHLCV candle data for every listed market: spot markets
chart the trade price, binary/prediction markets chart the YES-side price
(the NO side is 1 - yes and derived client-side).
There are two surfaces:
- Core public REST (live today on
api.sentico-labs.xyz) — candles computed by the exchange node itself. - Dedicated chart service — a purpose-built candle backend with precomputed multi-timeframe rollups, a live WebSocket push, and a TradingView UDF datafeed surface. It feeds the Sentico web app's own candlestick chart (REST + WebSocket); the UDF surface exists for third-party integrators who want to plug the data into TradingView tooling. A public host has not been announced yet; the protocol below is stable and will not change when it is.
Timeframes
Both surfaces serve the same resolutions. The 1-minute series is the base; every coarser timeframe is a deterministic rollup of it.
| Timeframe | UDF resolution | Bucket |
|---|---|---|
1m | 1 | 60 s |
5m | 5 | 300 s |
15m | 15 | 900 s |
1h | 60 | 3 600 s |
4h | 240 | 14 400 s |
1d | 1D | 86 400 s |
Core REST candles (live)
GET https://api.sentico-labs.xyz/api/v1/public/markets/{market_id}/candles?tf=1m&count_back=500
Spot markets return series.spot[]; binary/prediction markets return
series.yes[] and series.no[]. All prices and volumes are integer
micro-units as strings (1_000_000 micro = 1.0). See the
API reference for the full schema.
Chart service — native surface
| Method | Path | Purpose |
|---|---|---|
GET | /v1/markets/{market_id}/candles?tf=&countBack=&beforeTs= | Candle history, response-compatible with the core candles endpoint (series.spot[], micro-unit strings). |
GET | /v1/markets/{market_id}/line?tf=&countBack=&maxPoints= | Close-price line series, LTTB-downsampled to maxPoints. |
GET | /v1/ws/candles | WebSocket live push. Subscribe with {"type":"subscribe","marketId":1,"tf":"1m"}; frames are {"type":"candle","marketId":…,"tf":"…","closed":…,"candle":{…}}. A closed: true frame seals the bucket. |
GET | /health | Liveness + tracked market ids. |
Markets are discovered automatically from the public market catalog (refreshed every 60 s), so newly listed markets chart without operator action.
Chart service — TradingView UDF datafeed
The chart service also speaks the TradingView UDF datafeed protocol, so a TradingView Advanced Charts / Trading Platform integration can point at it without an adapter. Prices on this surface are decimal (micro / 1e6).
| Method | Path | Purpose |
|---|---|---|
GET | /udf/config | Capabilities + supported resolutions (1, 5, 15, 60, 240, 1D). |
GET | /udf/time | Server time, unix seconds, plain text. |
GET | /udf/symbols?symbol={id|symbol} | Symbol metadata. Resolves a numeric market id, canonical symbol (SPOT:WETH-USDC), or display symbol. ticker is always the market id. |
GET | /udf/search?query=&type=&limit= | Symbol search over the catalog. type filters spot / prediction. |
GET | /udf/history?symbol=&resolution=&from=&to=&countback= | OHLCV bars: { "s": "ok", "t": [...], "o": [...], "h": [...], "l": [...], "c": [...], "v": [...] }, or { "s": "no_data", "nextTime": … } past the start of history. |
Symbol type is spot or prediction. Prediction symbols chart the YES
probability in [0, 1] — render as a percentage.
Which surface should I use?
- Third-party integrators today: the core REST endpoint above — it is public, stable, and covers every market.
- TradingView-style charting (own frontends): the chart service's UDF + WebSocket surface; the Sentico web app ships a datafeed adapter shaped like the TradingView Datafeed API on top of it, with the core REST endpoint as automatic fallback.