Get candles

A DEX market's price candles, oldest first. No key needed.

GET

A market's price over time, as open, high, low and close candles, oldest first. Intervals start on the UTC clock. An interval with no trade has no candle, and the newest candle can still change until its interval ends.

volume is dollars of credit, and quoteVolume the USDT paid for it.

The answer is cached for 1 second. It counts 2 weight.

No key needed. Anyone can read it.

Path parameters

  • idstringRequired

    The market's id, such as binference-2026-10-24: bInference credit that ends on that day at 00:00 UTC. GET /dex/markets lists the open ones.

Query parameters

  • interval"1m" | "5m" | "15m" | "1h" | "4h" | "1d"

    The candle length: 1m, 5m, 15m, 1h, 4h or 1d. 1h when left out.

  • limitinteger

    How many intervals back to cover, the current one included, 1 to 1,000. 200 when left out.

Response

  • marketstring

    The market's id.

  • intervalstring

    The candle length asked for.

  • candlesobject[]

    One candle for each interval with trades, oldest first. An interval with no trade has none.

    • timeinteger

      The interval's start, in milliseconds. Intervals start on the UTC clock: a 4h candle at 00:00, 04:00 and so on.

    • openstring

      The first trade's price.

    • highstring

      The highest price.

    • lowstring

      The lowest price.

    • closestring

      The last trade's price. The newest candle can still change.

    • volumestring

      Dollars of credit traded.

    • quoteVolumestring

      USDT paid.

    • tradesinteger

      How many trades.

Errors

Each comes as JSON, { "error": { "code", "message" } }, with a stable code to branch on.

  • invalid_interval400

    interval is not one of 1m, 5m, 15m, 1h, 4h and 1d.

  • invalid_limit400

    limit is not a whole number in its range.

  • unknown_parameter400

    A query parameter this endpoint does not take, or one sent twice. Send only the parameters listed here, each once and written as shown: anything else is refused before it counts toward your weight.

  • not_found404

    The DEX is not open yet.

  • unknown_market404

    No open market has this id. A market that has closed answers this too. Take the ids from GET /dex/markets.

  • rate_limited429

    This IP address used more than 1,200 weight in a minute. Wait the seconds in Retry-After, then ask again.

Request
curl "https://binference.io/api/v1/dex/markets/binference-2026-10-24/candles?interval=1h&limit=3"
Response
{  "market": "binference-2026-10-24",  "interval": "1h",  "candles": [    {      "time": 1792162800000,      "open": "0.958",      "high": "0.962",      "low": "0.952",      "close": "0.955",      "volume": "140.00",      "quoteVolume": "133.82",      "trades": 4    },    {      "time": 1792166400000,      "open": "0.955",      "high": "0.957",      "low": "0.950",      "close": "0.951",      "volume": "86.50",      "quoteVolume": "82.40",      "trades": 3    },    {      "time": 1792170000000,      "open": "1.000",      "high": "1.000",      "low": "0.960",      "close": "0.960",      "volume": "65.00",      "quoteVolume": "64.00",      "trades": 2    }  ]}