# Market data

> Candles, instruments, latest tickers, funding rates and open interest from crypto venues.

Page: https://docs.aggre.org/datasets/market · Section: Datasets · All pages: https://docs.aggre.org/llms.txt

Exchange market data in one shape across venues. Reference: [Market data routes](https://docs.aggre.org/api/data/market.md).

## What is in it {#contents}

| Dataset | Route | One row is |
|---|---|---|
| `finance.market.candles_1m`, `candles_1h`, `candles_1d` | `GET /v1/finance/market/candles_{1m,1h,1d}` | One confirmed OHLCV bar of one instrument |
| `finance.market.instruments` | `GET /v1/finance/market/instruments` | One instrument: venue, product, base, quote, tick size, `enabled` |
| `finance.market.tickers_latest` | `GET /v1/finance/market/tickers` | The latest price and rolling 24-hour figures of one enabled instrument |
| `finance.market.funding_rates` | `GET /v1/finance/market/funding_rates` | One settled funding payment of a perpetual |
| `finance.market.open_interest` | `GET /v1/finance/market/open_interest` | One open-interest snapshot of a perpetual |

Instruments are identified as `{VENUE}:{PRODUCT}:{native}` ([Identifiers](https://docs.aggre.org/concepts/identifiers.md#instruments)). List what is available with `GET /v1/finance/market/instruments?venue=&product=`: it is the authority on which instruments exist and are `enabled`.

## Candles {#candles}

- Required: `instrument_id`. Optional: `from`, `to` (Unix ms on `ts`, `from` inclusive, `to` exclusive), `limit` (1 to 1000, default 100), `order` (`asc` or `desc`, default `desc`).
- `ts` is the bar's **open** time in UTC. Only **confirmed** bars are stored: a bar still forming is not served.
- `version` orders updates of the same bar: a higher version replaces a lower one.
- `meta.dataDate` is the open time of the newest returned bar. `meta.status` is `stale` when the newest stored bar is more than one closed bar behind now (judged only when `to` is not set).
- There is no cursor: `next_cursor` is always `null`. Read further with `from`/`to` ([Pagination](https://docs.aggre.org/concepts/pagination.md#windows)).

## Latest tickers {#tickers}

One row per **enabled** instrument, the latest only: no history, no `from`/`to`, no cursor.

- `price` is the last traded price (`price_basis: "last"`) or, where a venue publishes no last price in its bulk answer (Hyperliquid), its mark price (`"mark"`). Check `price_basis`.
- `open_24h`, `high_24h`, `low_24h`, `volume_24h`, `quote_volume_24h` are the venue's **rolling** 24 hours ending at `ts` (not a UTC day) and are `null` where the venue does not send them. The API never computes them.
- `ts` is the venue's timestamp, or Aggre's clock when the venue sends none. `meta.status` is `stale` when the newest row is more than 5 minutes old; judge each row's own `ts` for per-instrument freshness.
- Filters are optional and exact: `venue`, `product`, `instrument_id` (which must agree with the other two when given).

## Funding rates and open interest {#derivatives}

Perpetuals (`PERP`) and futures only.

- A funding row is one settled payment. `rate` is that period's fraction **as the venue reports it**: not annualised, and the period differs by venue and instrument. `meta.status` is `stale` after 24 hours.
- Open interest is a **snapshot**: venues publish only the current value, so history starts the day Aggre began collecting. Values are in base-asset units; `open_interest_usd` appears only where the venue states it. `meta.status` is `stale` after 30 minutes.

## Caveats {#caveats}

- Market data is subject to each venue's terms. Aggre grants nothing beyond them ([Attribution](https://docs.aggre.org/concepts/attribution.md#no-grant)).
- Aggre reads public endpoints on a schedule; it is not a streaming feed and not an execution venue. Do not use it for latency-sensitive trading.
