# Accounts in key scope (USER_DATA)

## API Description

Every MT5 login this API key may trade. Call it at start-up; the set changes only when the broker
changes it.

## HTTP Request

```http
GET /v1/accounts
```

## Request Weight

5

## Request Parameters

| Name | Type | Mandatory | Description |
| - | - | - | - |
| `recvWindow` | LONG | NO | |
| `timestamp` | LONG | YES | |
| `signature` | STRING | YES | |

## Response Example

```json
[
  {"login": 100123, "group": "real\\BOT\\ECN", "currency": "USD", "demo": false, "tradeAllowed": true},
  {"login": 100124, "group": "real\\BOT\\CENT", "currency": "USC", "demo": false, "tradeAllowed": true},
  {"login": 500901, "group": "demo\\BOT\\ECN", "currency": "USD", "demo": true, "tradeAllowed": true}
]
```

| Field | Type | Description |
| - | - | - |
| `login` | LONG | |
| `group` | STRING | MT5 group. |
| `currency` | STRING | Deposit currency. `USC` = cent account. |
| `demo` | BOOLEAN | `true` for a demo account. A key scoped exclusively to `demo: true` logins is a sandbox key. |
| `tradeAllowed` | BOOLEAN | Whether the broker permits trading on the account (`false` ⇒ TRADE calls answer `-2024`). Unlike `GET /v1/account`, this does not ask the trade server, so it does not reflect a trading block set on the trade server itself. |

No balances here — that would make this endpoint expensive. Call
[`GET /v1/account`](/account/account-information.md) per login for those.

An empty array means the key has no accounts assigned yet. Every subsequent account-scoped call
will return `-2022`.

The list is exactly the set of logins every other endpoint accepts for this key: an account that is
closed or archived on the broker's side is not listed, answers `-2022` everywhere, and is not
carried on the user data stream. An account whose trading is merely disabled IS listed, with
`tradeAllowed: false` — it stays readable.
