# Price history (candles) from the account's broker

URL: https://docs.fxapis.com/api-reference/market-data/price-history-candles-from-the-accounts-broker

> Price history (candles) from the account's broker. Open, high, low and close bars for one symbol or instrument, read from the account's own MetaTrader…

`GET https://api.fxapis.com/v1/accounts/{id}/candles`

Open, high, low and close bars for one symbol or instrument, read from the account's own MetaTrader terminal: `timeframe` M1, M5, M15, M30, H1, H4, D1, W1 or MN1, and up to 1,000 bars (`count`, default 100) counting back from the current one, oldest first; the last bar is still forming. Times are when each bar opened, in UTC (converted with the broker's current clock offset, so bars from before its last daylight-saving change can be an hour out). `tickVolume` counts price changes, not traded volume. The account must be online (409 `ACCOUNT_NOT_READY` otherwise). Each call reaches the terminal and is charged to the account's live budget (300 a minute + 50, shared with quotes and fresh figures); past it this answers 429 `RATE_LIMITED` with `retry-after`.

**Available after the next scheduled maintenance.** Until the account's terminal has been updated, this answers 501 `CAPABILITY_UNAVAILABLE`.

Authentication: `Authorization: Bearer <API key>`.

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `symbol` | query | string | no | The broker symbol, exactly as this broker names it. Send this or `instrument`. |
| `instrument` | query | string | no | An instrument (`GET /v1/instruments`), read as this account's own symbol for it. Send this or `symbol`. |
| `timeframe` | query | "M1" \| "M5" \| "M15" \| "M30" \| "H1" \| "H4" \| "D1" \| "W1" \| "MN1" | yes | The bar size: minutes (M), hours (H), a day, a week or a month. |
| `count` | query | integer | no | How many bars, counting back from the current one. At most 1,000. |
| `id` | path | string (uuid) | yes |  |

#### Responses

- `200`
- `400`
- `401`
- `404`
- `409`
- `422`
- `429`
- `501`
- `503`

Failures return `{ "error": { "code", "message" } }`; every code is listed at https://docs.fxapis.com/errors.

#### 200 response fields

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `data` | object | no |  |
| `data.symbol` | string | yes | Example: `"XAUUSD"` |
| `data.instrument` | null \| string | no | The instrument you asked by, when you asked by one. |
| `data.timeframe` | string | yes | Example: `"H1"` |
| `data.digits` | integer | yes | Decimal places the broker quotes this symbol to; prices are written to them. Example: `2` |
| `data.candles` | object[] | yes | Oldest first. The last bar is the current one, still forming. |
| `data.candles[].time` | string (date-time) | yes | When the bar opened, in UTC. Example: `"2026-10-23T13:00:00Z"` |
| `data.candles[].open` | string | yes | Example: `"2650.10"` |
| `data.candles[].high` | string | yes | Example: `"2655.25"` |
| `data.candles[].low` | string | yes | Example: `"2648.00"` |
| `data.candles[].close` | string | yes | Example: `"2652.50"` |
| `data.candles[].tickVolume` | integer | yes | Price changes in the bar (MetaTrader's tick volume), not traded volume. Example: `1234` |
| `data.candles[].spread` | integer | yes | The bar's spread in points, as the broker recorded it. Example: `35` |