# 24hr ticker statistics (MARKET_DATA)

## API Description

Daily statistics from the trade server's tick statistics.

> **This is the server's trading day, not a rolling 24-hour window.** MT5 resets these counters at
> the start of each trading day in server time. The endpoint is named `24hr` for familiarity. Do
> not use it to compute a trailing-24h change; build that from [klines](/market-data/klines-candlestick-data.md).

## HTTP Request

```http
GET /v1/ticker/24hr
```

## Request Weight

1 with `symbol`, 20 without

## Request Parameters

| Name | Type | Mandatory | Description |
| - | - | - | - |
| `symbol` | STRING | NO | Exact, case-sensitive. Omit for all symbols. |

## Response Example

```json
{
  "symbol": "XAUUSD",
  "openPrice": "2325.40",
  "highPrice": "2338.90",
  "lowPrice": "2321.05",
  "lastPrice": "2331.15",
  "bidPrice": "2331.15",
  "askPrice": "2331.42",
  "bidHigh": "2338.90",
  "bidLow": "2321.05",
  "askHigh": "2339.18",
  "askLow": "2321.30",
  "priceChange": "5.75",
  "priceChangePercent": "0.247",
  "volatility": "0.731",
  "tradeDeals": 18422,
  "volume": "9214.50",
  "buyOrders": 9611,
  "sellOrders": 8811,
  "time": 1789012345678
}
```

| Field | Type | Description |
| - | - | - |
| `symbol` | STRING | |
| `openPrice` | DECIMAL | Day open. |
| `highPrice` / `lowPrice` | DECIMAL | Day high / low, on the **bid** side. |
| `lastPrice` | DECIMAL | Last traded price (see the caveat on `last` above). |
| `bidPrice` / `askPrice` | DECIMAL | Current best bid / ask. |
| `bidHigh` / `bidLow` / `askHigh` / `askLow` | DECIMAL | Day extremes per side. |
| `priceChange` | DECIMAL | `lastPrice - openPrice`, in price units. Always derived, on both paths below. |
| `priceChangePercent` | DECIMAL | Day change in percent. **Two provenances:** the trade server's own statistic when the value is read from it, and derived from `openPrice` and `lastPrice` when the symbol is currently streamed and the figure is served from the live feed (which carries no percent of its own). Expect them to agree to rounding, not bit-for-bit. |
| `volatility` | DECIMAL | Day volatility in percent, as the trade server computes it. |
| `tradeDeals` | LONG | Deals executed on the symbol today, broker-wide. |
| `volume` | DECIMAL | Traded volume today as reported by the trade server, in its volume units (lots for most symbols), broker-wide. |
| `buyOrders` / `sellOrders` | LONG | Buy / sell orders placed today, broker-wide. |
| `time` | LONG | Snapshot time, Unix ms. |

`tradeDeals`, `volume`, `buyOrders` and `sellOrders` are **broker-wide activity on this trade
server**, not exchange volume. Treat them as an activity indicator, not as market volume, and do
not assume `volume` is denominated in lots on every symbol — it is passed through in whatever unit
the trade server reports.

Counters are zero until the trade server has published its first statistics snapshot for the symbol
after a restart.

Sources follow the same rule as [`GET /v1/ticker/price`](/market-data/symbol-price-ticker.md): the live feed for a
streamed symbol, otherwise the trade server's statistics (`time` is then the moment of the response).
An unknown `symbol` is `-1121`; `-5015` when an unstreamed symbol's statistics cannot be read.
