MetaTrader 5 — Forex, Stocks icon

MetaTrader 5 account, quotes and order data

MetaQuotes Ltd · Banking

MetaTrader 5 — Forex, Stocks is the Android trading terminal from Cyprus-based MetaQuotes Ltd. Traders connect to a broker access point, watch a quotes list, open charts with indicators, send market and pending orders from the Trade and one-click toolbars, manage positions, scroll deals and account history, read broker mail and news, and fund or cash out through the in-app payments wallet list. Demo and real logins are allocated from the Open Account flow, with OTP, passkeys and investor passwords on the Accounts screens; MQL5 community sign-in (including Google) unlocks Channels chat. The client is used worldwide by retail forex, CFD and exchange traders and by brokers who white-label the same terminal, sitting alongside MetaTrader 4, cTrader and TradingView as a multi-asset mobile desk.

TradeInfoRecord snapshots pin balance, equity, marginFree and marginLevel for the connected login, while TradePosition rows carry symbol, volume, priceOpen, sl, tp and floating profit. SelectedRecord ticks stream bid, ask and spread on the watchlist; TradeOrder and TradeDeal history add fill state, commission and swap. Payment and Wallet objects expose deposit limits (limitDepositMin, userAmount, walletCurrency) used on the Payments screens.

PMS stacks reconcile live margin against overnight statements, quote engines fan bid/ask into alerts, and finance ops match wallet deposits to deal tickets. openData Studio turns that account, quote and payment surface into callable open data.

Screenshots

  • MetaTrader 5 — Forex, Stocks screenshot 1
  • MetaTrader 5 — Forex, Stocks screenshot 2
  • MetaTrader 5 — Forex, Stocks screenshot 3
  • MetaTrader 5 — Forex, Stocks screenshot 4
  • MetaTrader 5 — Forex, Stocks screenshot 5
  • MetaTrader 5 — Forex, Stocks screenshot 6
  • MetaTrader 5 — Forex, Stocks screenshot 7
  • MetaTrader 5 — Forex, Stocks screenshot 8

API surface

The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.

  • MQL5 community Google auth

    GET /v1/community/identity/authorize osint

    Exchanges Google auth material (mid, ggtok, tok, sign, rnd) for the nested user object — user_login, user_email, metaquotes_id and chat_token — used after MQL5 sign-in.

    Auth: Unauthenticated signed query: mid, ggtok, tok, sign (SHA-256), rnd. The response user.chat_token is kept as the community session token.

    • user_id
    • user_login
    • user_full_name
    • user_email
    • user_phone
    • metaquotes_id
    • avatar_url
    • chat_token
    • balance_total
    • balance_locked
    • balance_free_hosting_minutes
    • finance_state
    • mid
    • ggtok
    • tok
    • sign
    • rnd
    GET /v1/community/identity/authorize?mid=mqid_8f21&ggtok=ya29.a0AfH6SMC&tok=enc_tok&sign=3c9a1b&rnd=1729084800 HTTP/1.1
    Accept-Language: en-US
    {
      "user": {
        "user_id": 12004567,
        "user_login": "trader_nick",
        "user_full_name": "Nick Trader",
        "user_email": "[email protected]",
        "user_phone": "+12025550123",
        "metaquotes_id": "MQID-8891",
        "avatar_url": "https://cdn.example/avatars/trader_nick.png",
        "chat_token": "ct_9c10aa11",
        "balance_total": 12,
        "balance_locked": 0,
        "balance_free_hosting_minutes": 43200,
        "finance_state": 1
      }
    }
  • MQL5 community register

    GET /v1/community/identity/register osint

    Creates an MQL5 community login from the Google register flow and returns the same user object used for Channels chat.

    Auth: Unauthenticated. AES-wrapped credentials plus a SHA-256 sign; a 200 body becomes the community user profile with chat_token.

    • user_id
    • user_login
    • user_full_name
    • user_email
    • chat_token
    • metaquotes_id
    • mid
    • login
    • sign
    GET /v1/community/identity/register?mid=mqid_8f21&login=trader_nick&sign=7ab2 HTTP/1.1
    Accept-Language: en-US
    {
      "user": {
        "user_id": 12004567,
        "user_login": "trader_nick",
        "user_full_name": "Nick Trader",
        "user_email": "[email protected]",
        "chat_token": "ct_9c10aa11",
        "metaquotes_id": "MQID-8891"
      }
    }
  • MQL5 user status and geo

    GET /v1/community/identity/status osint

    Loads community status; geo.country is written into the client locale store, and the user block becomes the session profile.

    Auth: Community session token issued by the identity authorize call.

    • geo
    • country
    • user_login
    • chat_token
    • balance_total
    • finance_state
    GET /v1/community/identity/status HTTP/1.1
    Accept-Language: en-US
    {
      "geo": {
        "country": "US"
      },
      "user": {
        "user_login": "trader_nick",
        "chat_token": "ct_9c10aa11",
        "balance_total": 12,
        "finance_state": 1
      }
    }
  • Delete MQL5 community account

    POST /v1/community/identity/close osint

    Deletes the signed-in MQL5 community account from the account settings flow.

    Auth: Community chat_token issued at sign-in.

    • user_login
    • chat_token
    • status
    POST /v1/community/identity/close HTTP/1.1
    Content-Type: application/json
    
    {
      "user_login": "trader_nick",
      "chat_token": "ct_9c10aa11"
    }
    {
      "status": "ok"
    }
  • Trade account snapshot

    GET /v1/trading/account/summary openbanking

    Reads the connected login's TradeInfoRecord — balance, equity, marginFree, marginLevel and floating profit — painted on the trade screen and its wide info view.

    Auth: Broker trade-server session established at login with account, password and server; the response fills the TradeInfoRecord shown on the Trade screen.

    • balance
    • equity
    • margin
    • marginFree
    • marginLevel
    • marginInitial
    • marginMaintenance
    • profit
    • credit
    • commission
    • assets
    • liabilities
    • blocked
    • collateral
    • hasMarginCall
    • digits
    GET /v1/trading/account/summary HTTP/1.1
    X-Account-Login: 50001234
    {
      "balance": 10250.40,
      "equity": 10312.18,
      "margin": 420.00,
      "marginFree": 9892.18,
      "marginLevel": 2455.28,
      "marginInitial": 420.00,
      "marginMaintenance": 210.00,
      "profit": 61.78,
      "credit": 0.0,
      "commission": -2.40,
      "assets": 10312.18,
      "liabilities": 0.0,
      "blocked": 0.0,
      "collateral": 0.0,
      "hasMarginCall": false,
      "digits": 2
    }
  • Open positions

    GET /v1/trading/positions openfinance

    Lists open TradePosition rows for the positions view — ticket id, symbol, volume, priceOpen, sl/tp and floating profit.

    Auth: Broker trade-server session for the connected login.

    • id
    • symbol
    • action
    • volume
    • priceOpen
    • priceClose
    • sl
    • tp
    • profit
    • swap
    • comment
    • date
    • digits
    • canModify
    • canTrade
    • externalId
    GET /v1/trading/positions HTTP/1.1
    X-Account-Login: 50001234
    {
      "positions": [
        {
          "id": 91004567,
          "symbol": "EURUSD",
          "action": 0,
          "volume": 10000,
          "priceOpen": 1.08540,
          "priceClose": 1.08610,
          "sl": 1.08000,
          "tp": 1.09000,
          "profit": 7.00,
          "swap": -0.12,
          "comment": "mobile",
          "date": 1729084800,
          "digits": 5,
          "canModify": true,
          "canTrade": true,
          "externalId": ""
        }
      ]
    }
  • Pending and working orders

    GET /v1/trading/orders/working openfinance

    Returns TradeOrder tickets for the orders view and pending-order toolbar — type (buy limit etc.), state (placed/filled), volumes and prices.

    Auth: Broker trade-server session for the connected login.

    • order
    • symbol
    • type
    • state
    • volumeInitial
    • volumeCurrent
    • priceOpen
    • priceCurrent
    • priceTrigger
    • sl
    • tp
    • expirationType
    • expirationDate
    • dateSetup
    • comment
    • fillPolicy
    • canModify
    GET /v1/trading/orders/working HTTP/1.1
    X-Account-Login: 50001234
    {
      "orders": [
        {
          "order": 88001122,
          "symbol": "GBPUSD",
          "type": 2,
          "state": 1,
          "volumeInitial": 10000,
          "volumeCurrent": 10000,
          "priceOpen": 1.26500,
          "priceCurrent": 1.26610,
          "priceTrigger": 0.0,
          "sl": 1.26000,
          "tp": 1.27500,
          "expirationType": 0,
          "expirationDate": 0,
          "dateSetup": 1729080000,
          "comment": "limit",
          "fillPolicy": 0,
          "canModify": true
        }
      ]
    }
  • Send trade request

    POST /v1/trading/orders/execute openfinance

    Submits a trade action (market, pending, sl/tp, modify, remove) from the order-send dialog and returns the result retcode, deal, order, fill price, bid and ask.

    Auth: Broker trade-server session; the action is validated before send and the result is read back asynchronously.

    • action
    • type
    • symbol
    • volume
    • price
    • sl
    • tp
    • deviation
    • fillType
    • comment
    • position
    • order
    • retcode
    • deal
    • bid
    • ask
    • time
    POST /v1/trading/orders/execute HTTP/1.1
    Content-Type: application/json
    
    {
      "action": 3,
      "type": 0,
      "symbol": "EURUSD",
      "volume": 10000,
      "price": 1.08540,
      "sl": 1.08000,
      "tp": 1.09000,
      "deviation": 10,
      "fillType": 0,
      "comment": "mobile",
      "position": 0,
      "order": 0
    }
    {
      "retcode": 10009,
      "deal": 77003344,
      "order": 88001123,
      "volume": 10000,
      "price": 1.08542,
      "bid": 1.08540,
      "ask": 1.08542,
      "comment": "",
      "digits": 5,
      "time": 1729084810,
      "timeout": 0
    }
  • Deal history summary

    GET /v1/trading/history/deals openfinance

    Pages the history screen: deal-summary totals (deposit, withdrawal, profit, commission, swap) plus per-ticket deal action/entry/volume.

    Auth: Broker trade-server session. A period is chosen first, then summary totals and per-ticket rows are paged.

    • balance
    • profit
    • deposit
    • withdrawal
    • credit
    • commission
    • commission_fee
    • swap
    • buysell
    • deal
    • order
    • positionId
    • symbol
    • action
    • entry
    • volume
    • priceOpen
    • date
    • comment
    GET /v1/trading/history/deals?filter=0 HTTP/1.1
    X-Account-Login: 50001234
    {
      "summary": {
        "balance": 10250.40,
        "profit": 128.50,
        "deposit": 10000.00,
        "withdrawal": 0.0,
        "credit": 0.0,
        "commission": -8.40,
        "commission_fee": 0.0,
        "swap": -1.20,
        "buysell": 128.50,
        "digits": 2
      },
      "deals": [
        {
          "deal": 77003344,
          "order": 88001123,
          "positionId": 91004567,
          "symbol": "EURUSD",
          "action": 0,
          "entry": 0,
          "volume": 10000,
          "priceOpen": 1.08542,
          "profit": 7.00,
          "commission": -0.70,
          "swap": 0.0,
          "date": 1729084810,
          "comment": "mobile"
        }
      ]
    }
  • Watchlist quotes

    GET /v1/market/watchlist/quotes opendata

    Returns watchlist quote ticks for the quotes screen — bid, ask, high, low, spread and priceChange.

    Auth: Broker trade-server session; quotes arrive delayed or realtime per the symbol subscription level.

    • symbol
    • description
    • bid
    • ask
    • high
    • low
    • spread
    • priceChange
    • priceChangeInPips
    • digits
    • point
    • time
    • bookDepth
    GET /v1/market/watchlist/quotes HTTP/1.1
    X-Account-Login: 50001234
    {
      "quotes": [
        {
          "symbol": "EURUSD",
          "description": "Euro vs US Dollar",
          "bid": 1.08540,
          "ask": 1.08542,
          "high": 1.08710,
          "low": 1.08320,
          "spread": 2,
          "priceChange": 0.00080,
          "priceChangeInPips": 8,
          "digits": 5,
          "point": 0.00001,
          "time": 1729084815,
          "bookDepth": 10
        }
      ]
    }
  • Payment wallets catalog

    GET /v1/payments/methods openbanking

    Lists payment methods for the payments screen — name, login and per-currency deposit and withdrawal limits.

    Auth: Broker trade-server session; methods load after the account connection is established.

    • name
    • login
    • paymentType
    • type
    • imageUrl
    • actions
    • currencies
    • limitDepositMin
    • limitDepositMax
    • limitWithdrawalMin
    • limitWithdrawalMax
    GET /v1/payments/methods HTTP/1.1
    X-Account-Login: 50001234
    {
      "wallets": [
        {
          "name": "Bank Card",
          "login": "card_visa",
          "paymentType": 1,
          "type": 0,
          "imageUrl": "https://broker.example/wallets/card.png",
          "actions": 3,
          "currencies": [
            {
              "name": "USD",
              "limitDepositMin": 10.0,
              "limitDepositMax": 10000.0,
              "limitWithdrawalMin": 10.0,
              "limitWithdrawalMax": 5000.0
            }
          ]
        }
      ]
    }
  • Deposit to trading account

    POST /v1/payments/fund openbanking

    Starts a deposit from the payment-method screen; returns the payment recordId, state and amounts, then may open the confirmation web view.

    Auth: Broker trade-server session; an in-app web view may complete the payment confirmation afterwards.

    • walletName
    • userAmount
    • userCurrency
    • recordId
    • dealId
    • action
    • state
    • userCommission
    • walletAmount
    • walletCommission
    • walletCurrency
    • walletName
    • walletAccount
    • cardNumber
    • createdAt
    • completedAt
    POST /v1/payments/fund HTTP/1.1
    Content-Type: application/json
    
    {
      "walletName": "Bank Card",
      "userAmount": 500.00,
      "userCurrency": "USD",
      "fields": [
        {"field": 1, "value": "411111******1111"}
      ]
    }
    {
      "recordId": 440012,
      "dealId": 77003350,
      "action": "DEPOSIT",
      "state": "PROCESSING",
      "userAmount": 500.00,
      "userCommission": 5.00,
      "userCurrency": "USD",
      "userCurrencyDigits": 2,
      "walletAmount": 500.00,
      "walletCommission": 5.00,
      "walletCurrency": "USD",
      "walletName": "Bank Card",
      "walletAccount": "411111******1111",
      "cardNumber": "411111******1111",
      "createdAt": 1729084900,
      "completedAt": 0
    }
  • Withdraw from trading account

    POST /v1/payments/payouts openbanking

    Starts a withdrawal; the payment record carries bankAccount/bankName or an e-wallet account until it is finalised or cancelled.

    Auth: Broker trade-server session; a payout is finalised or cancelled from the payment result screens.

    • walletName
    • userAmount
    • userCurrency
    • recordId
    • dealId
    • action
    • state
    • userCommission
    • walletAmount
    • walletCurrency
    • bankAccount
    • bankName
    • createdAt
    POST /v1/payments/payouts HTTP/1.1
    Content-Type: application/json
    
    {
      "walletName": "Bank Card",
      "userAmount": 200.00,
      "userCurrency": "USD",
      "fields": [
        {"field": 2, "value": "GB29NWBK60161331926819"}
      ]
    }
    {
      "recordId": 440013,
      "dealId": 77003351,
      "action": "WITHDRAWAL",
      "state": "WAITING",
      "userAmount": 200.00,
      "userCommission": 2.00,
      "userCurrency": "USD",
      "walletAmount": 200.00,
      "walletCurrency": "USD",
      "walletName": "Bank Card",
      "bankAccount": "GB29NWBK60161331926819",
      "bankName": "Example Bank",
      "createdAt": 1729085000
    }
  • Payment history

    GET /v1/payments/records openbanking

    Pages payment records for the payments list (states from init through done or rejected) with an optional invoice view.

    Auth: Broker trade-server session; records are paged by offset and count, and an HTML invoice can be fetched per record.

    • recordId
    • dealId
    • action
    • state
    • userAmount
    • userCommission
    • userCurrency
    • walletName
    • description
    • createdAt
    • completedAt
    • paymentTotal
    GET /v1/payments/records?offset=0&count=20 HTTP/1.1
    X-Account-Login: 50001234
    {
      "payments": [
        {
          "recordId": 440012,
          "dealId": 77003350,
          "action": "DEPOSIT",
          "state": "DONE",
          "userAmount": 500.00,
          "userCommission": 5.00,
          "userCurrency": "USD",
          "walletName": "Bank Card",
          "description": "Visa deposit",
          "createdAt": 1729084900,
          "completedAt": 1729084960
        }
      ],
      "paymentTotal": 1
    }
  • Allocate demo or real account

    POST /v1/provisioning/accounts openfinance

    Opens a demo or real account record from the open-account and personal-data screens (login, leverage, deposit, currency, server).

    Auth: Unauthenticated against the chosen server; the result is a fresh demo or real login that becomes the active account.

    • login
    • name
    • server
    • company
    • currency
    • currencyDigits
    • leverage
    • deposit
    • demo
    • real
    • email
    • accountType
    POST /v1/provisioning/accounts HTTP/1.1
    Content-Type: application/json
    
    {
      "server": "MetaQuotes-Demo",
      "name": "Nick Trader",
      "email": "[email protected]",
      "leverage": 100,
      "deposit": 10000.0,
      "currency": "USD"
    }
    {
      "login": 50001234,
      "name": "Nick Trader",
      "server": "MetaQuotes-Demo",
      "company": "MetaQuotes Ltd",
      "currency": "USD",
      "currencyDigits": 2,
      "leverage": 100,
      "deposit": 10000.0,
      "demo": true,
      "real": false,
      "email": "[email protected]",
      "accountType": 0
    }

Data categories

  • account balances
  • open positions
  • working orders
  • deal history
  • market quotes
  • deposits and withdrawals
  • MQL5 community profile

Where teams use this data

  • Margin desk overnight recon

    A brokerage PMS pulls TradeInfoRecord balance, equity, marginFree and marginLevel per login and diffs them against the back-office ledger so a margin-call flag (hasMarginCall) is raised before the next session.

  • Quote-alert fan-out

    A watchlist bot reads SelectedRecord bid, ask, spread and priceChangeInPips for EURUSD and other symbols and fires alerts when spread or pip change crosses a desk threshold.

  • Deposit-to-deal matching

    Finance ops join Payment recordId / userAmount / state=DONE with DealsInfoRecord deposit and TradeDeal tickets so wallet card deposits land on the same login that shows them in HistoryFragment.

  • Live blotter for open risk

    A risk blotter streams TradePosition symbol, volume, priceOpen, sl, tp and profit next to TradeOrder state and type so the desk sees working limits and floating P&L in one grid.

Frequently asked questions

What account fields does MetaTrader 5 expose after login?

TradeInfoRecord filled by the account snapshot call carries balance, equity, margin, marginFree, marginLevel, profit, credit, commission, assets, liabilities and hasMarginCall for the connected login.

Can I read live quotes and open positions, not just balances?

Yes. The watchlist quotes call returns SelectedRecord bid, ask, high, low and spread; the positions call lists TradePosition symbol, volume, priceOpen, sl, tp and profit; the working-orders call lists TradeOrder tickets.

How does MQL5 community sign-in work in the app?

The client sends a signed community identity request with mid, ggtok, tok, sign and rnd, then parses the nested user object (user_login, user_email, metaquotes_id, chat_token); the status call also returns geo.country.

Are deposits and withdrawals in the same surface?

PaymentBase.getWallets lists Wallet methods with per-currency limitDepositMin/Max; deposit and withdraw return a Payment with recordId, userAmount, state (INIT through DONE) and wallet or bankAccount details.

Apps similar to MetaTrader 5 — Forex, Stocks

  • MetaTrader 4 — MetaTrader 4 is MetaQuotes' earlier Forex and futures terminal, with charts, MQL4 Expert Advisors, copy-trading signals and Android/iOS apps that many retail FX brokers still license alongside MT5.
  • cTrader — cTrader is Spotware Systems' Limassol FX/CFD platform, with desktop, web and mobile apps, C# and Python algos, built-in copy trading, and broker deployments such as IC Markets, Pepperstone and FxPro.
  • TradingView — TradingView is a charting and social-trading app that lets users analyze markets and place trades in stocks, crypto, forex and futures through 100+ connected brokers on web, desktop and mobile.
  • NinjaTrader — NinjaTrader is a Chicago futures platform and brokerage with desktop, web and mobile apps for live and simulated trading, customizable charts, depth-of-market order entry and NinjaScript strategies.
  • thinkorswim — thinkorswim is Charles Schwab's electronic trading platform for self-directed stock, options and futures traders, with desktop, web and mobile apps plus paperMoney simulated trading.
  • IBKR Mobile — Interactive Brokers' IBKR Mobile app trades stocks, options, futures, currencies, bonds and funds on iOS and Android, with advanced order types and scanners that sync with the firm's desktop platforms.
  • eToro — eToro is a multi-asset brokerage whose platform covers stocks, ETFs, CFDs, cryptoassets, copy trading and social trading for retail investors.

Topics

  • MetaTrader 5 API
  • MT5 balance equity margin
  • MetaTrader 5 positions orders
  • MT5 bid ask quotes
  • MQL5 users auth
  • MetaTrader 5 deposit withdraw
  • openData Studio

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

  • NDA + SOW on every engagement
  • Delivery in 3–7 days
  • Payment only after acceptance
  • Work scoped to authorized use

Get a quote