MT5 Web Terminal Command Coverage
This page tracks command IDs seen in the MT5 Web Terminal frontend chunk
analysis/D8ROuLSQ.js (captured on 2026-03-12) and compares them with the
public pymt5 API as of 2026-03-16.
The live site was re-checked on 2026-03-16. The current official terminal entry
page reports build 5687, built on 2026-03-15, and still loads the same API
chunk name (D8ROuLSQ.js) with the same direct sendCommand(...) call set.
Observed Frontend Request Commands
The current frontend snapshot contains direct sendCommand(...) call sites for:
0bootstrap2logout3get account4get positions and orders5get trade history6get symbols7subscribe ticks9get symbol groups11get rates12trade request18get full symbol info20get spreads22subscribe book24change password27verify codes / verification flow28login29init30open demo account34get symbols (gzip)39open real account40send verification codes41trader params42notify43OTP setup / connect OTP44get corporate links51ping
Observed frontend event handlers include 8, 10, 13, 14, 15,
17, 19, and 23 for tick, trade, symbol, account, login, symbol-detail,
trade-result, and book pushes.
Implemented In pymt5
pymt5 now covers the visible frontend command surface:
Session/auth:
0,2,24,27,28,29,30,39,40,41,42,43,51Account/trading data:
3,4,5,12Market data:
6,7,9,11,18,20,22,34,44Push handlers:
8,10,13,14,15,17,19,23
Command Meanings
cmd=27account-opening verification request: the current frontend sendsint16 build + cid + base opening payload.pymt5exposes this asrequest_opening_verification()and parses the two-byte response intoVerificationStatus(email, phone).cmd=30demo account opening: the current frontend sends the full registration payload, not the older init-like payload.pymt5now mirrors that viaopen_demo_account(). The legacyopen_demo()wrapper remains for compatibility.cmd=39real account opening: this extends the demo payload with identity/KYC fields, apropType=9birth date, and zero or more uploaded documents.pymt5implements this asopen_real_account().cmd=40verification code submission: this re-sends the base opening payload with populated email/phone code fields.pymt5exposes it assubmit_opening_verification()and parses the same two-flag response shape as cmd=27.cmd=43OTP setup: the frontend uses one payload shape for both enabling and disabling TOTP.pymt5maps this toenable_otp()anddisable_otp().
Response Shapes Confirmed From Frontend Usage
cmd=27andcmd=40return twou8flags. Inference: the flags represent email and phone verification state, because the frontend uses them to decide which confirmation fields to show and whether the submitted codes were accepted.cmd=30andcmd=39return[code, login, password, investor_password]. This is confirmed by the frontend controller, which treats the first field as an error code and stores the remaining three values as new-account credentials.
Unknown Or Reserved IDs
The frontend transport allowlist also accepts these IDs:
21, 25, 33, 37, 50, 52, 100, 101, 102, 103,
104, 105, 106, 107, 108, 109, 110, 111, 112.
No direct sendCommand(...) call sites were found for them in the current frontend
snapshot or in the live 2026-03-16 bundle.
Live Probe Results
Minimal live probing against web.metatrader.app on 2026-03-16 produced these
repeatable results:
21,25,33,37,50,100-112: accepted by the transport, but an empty payload produced no response before the client timeout, both before and after login. Inference: these commands likely require specialized payloads or are disabled on the MetaQuotes-Demo server.52: returnscode=0with an empty body only on a fresh bootstrap-only socket. Aftercmd=29orcmd=28, the same command causes the server to drop the connection without a close frame.pymt5exposes this exact behavior as the experimental helpersend_bootstrap_command_52().
These IDs should still be treated as reserved or unidentified until a newer bundle, an older historical bundle, or a broker-specific capture reveals their payload schemas and business meaning.
[ ] Re-scan future Web Terminal bundles and map the unresolved IDs before adding named business APIs for them.