# Balance, equity and margin

URL: https://docs.fxapis.com/api-reference/accounts/balance-equity-and-margin

> Balance, equity and margin. The account's money as its MetaTrader terminal reports it: balance, equity, margin, free margin, margin level, credit and open…

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

The account's money as its MetaTrader terminal reports it: balance, equity, margin, free margin, margin level, credit and open profit, as decimal strings in the account's currency.

Without `fresh`, the last read: taken every 15 seconds while the account is online (every 60 seconds from a terminal not yet updated), with `observedAt` saying when. With `fresh=true`, the terminal is asked now — the account must be `ready` (409 `ACCOUNT_NOT_READY` otherwise, including while it is `executing` an order or `degraded`), its terminal must be recent enough to report figures on demand (501 `CAPABILITY_UNAVAILABLE` until it is updated), callers within the same second share one read, and only a read that reaches the terminal is charged to the account's live budget (300 a minute + 50 across every caller; 429 `RATE_LIMITED` with `retry-after` past it).

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

#### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `fresh` | query | "true" \| "false" | no | `true` asks the account's terminal now (the account must be online), charged to the account's live budget when the terminal is asked. Without it, the last read. |
| `id` | path | string (uuid) | yes |  |

#### Responses

- `200`
- `401`
- `404`
- `409`
- `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.accountId` | string (uuid) | yes |  |
| `data.balance` | null \| string | no | Balance, in the account's currency. Example: `"10012.25000000"` |
| `data.equity` | null \| string | no | Balance plus open profit and credit. Example: `"10012.25000000"` |
| `data.margin` | null \| string | no | Margin in use. Example: `"10012.25000000"` |
| `data.freeMargin` | null \| string | no | Equity minus margin in use. Example: `"10012.25000000"` |
| `data.marginLevel` | null \| string | no | Equity over margin, in percent. Null while no margin is used: the ratio is undefined, not zero. Example: `"10012.25000000"` |
| `data.credit` | null \| string | no | Credit the broker extended. Null from a terminal older than account.v2. Example: `"10012.25000000"` |
| `data.profit` | null \| string | no | Open profit across positions. Null from a terminal older than account.v2. Example: `"10012.25000000"` |
| `data.currency` | null \| string | no | Example: `"USD"` |
| `data.leverage` | null \| integer | no | Example: `500` |
| `data.marginMode` | "netting" \| "hedging" \| null | no |  |
| `data.observedAt` | null \| string (date-time) | yes | When the terminal was read. |
| `data.ageMs` | null \| integer | yes | How old the figures were when this answer was sent. |
| `data.source` | "live" \| "snapshot" | yes | `live`: the terminal was asked for this request (or one within the last second). `snapshot`: the last read, at most about 15 seconds old while the account is online (60 from a terminal not yet updated). |