Account
GETAccounts 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/accountsRequest 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 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.


