MetaTrader 4 community, broker catalog and geo data
MetaTrader 4 Forex Trading is the Android FX 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 Order screens, manage positions, scroll account history, read broker mail and news, and join MQL5 Channels after community sign-in (including Google). Demo logins are allocated from the Open a demo account flow; the Accounts screens cover OTP, biometrics and an investor password. The client is used worldwide by retail forex and CFD traders and by brokers who white-label the same terminal, sitting alongside MetaTrader 5, cTrader and TradingView as a mobile FX desk.
Broker directory records pin company, legalCountry and regulationStatus to each white-label access point, next to regNumber, officesLocation and a servers list, while MQL5 community profiles hold user_login, user_email, metaquotes_id and chat_token after sign-in. A community status read writes geo.country into the client locale; install attribution adds countryISO and city beside utm_campaign and utm_source. Channel reports carry chatId, chatAuthorLogin and a complaint signature; push registration tags hid, uid and app_build.
Compliance desks match regulationStatus to a login's server name, community CRMs store user_login beside geo.country, growth ops seed the first broker list from install geo and campaign tags, and device inventories keep hid and uid tied to one MetaQuotes id so quote and order alerts follow the account. openData Studio turns that community, broker-directory and geo data into callable open data.
Screenshots
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
POST
/v1/community/sessions/googleosintExchanges Google sign-in material for the nested community user object — user_login, user_email, metaquotes_id and chat_token — used after MQL5 sign-in.
Auth: Signed POST: query mid, ggtok (encrypted Google token), tok, sign (SHA-256 digest) and rnd. The nested user.chat_token is kept as the community session.
- mid
- ggtok
- tok
- sign
- rnd
- 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
POST /v1/community/sessions/google?mid=<mid>&ggtok=<encrypted_google_token>&tok=<encrypted_tok>&sign=<sha256_sign>&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.com/avatars/trader_nick.png", "chat_token": "<chat_token>", "balance_total": 12, "balance_locked": 0, "balance_free_hosting_minutes": 43200, "finance_state": 1 } }MQL5 community Google register
POST
/v1/community/accounts/googleosintCreates an MQL5 community login from the Google register flow and returns the same user object used for Channels chat.
Auth: Unauthenticated POST. Encrypted credentials plus a SHA-256 sign; a 200 body becomes the community user profile. A duplicate email returns an EmailExists error marker.
- mid
- login
- sign
- user_id
- user_login
- user_full_name
- user_email
- chat_token
- metaquotes_id
POST /v1/community/accounts/google HTTP/1.1 Accept-Language: en-US Content-Type: application/x-www-form-urlencoded mid=<mid>&login=trader_nick&sign=<sha256_sign>{ "user": { "user_id": 12004567, "user_login": "trader_nick", "user_full_name": "Nick Trader", "user_email": "[email protected]", "chat_token": "<chat_token>", "metaquotes_id": "MQID-8891" } }MQL5 user status and geo
POST
/v1/community/profile/stateosintLoads community status; geo.country is written into the client locale store, and the user block becomes the session profile.
Auth: Community session after identity auth. Accept-Language is sent from the app's UI language setting.
- geo
- country
- user_login
- chat_token
- balance_total
- finance_state
POST /v1/community/profile/state HTTP/1.1 Accept-Language: en-US{ "geo": { "country": "US" }, "user": { "user_login": "trader_nick", "chat_token": "<chat_token>", "balance_total": 12, "finance_state": 1 } }Delete MQL5 community account
POST
/v1/community/accounts/closeosintDeletes 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/accounts/close HTTP/1.1 Content-Type: application/json { "user_login": "trader_nick", "chat_token": "<chat_token>" }{ "status": "ok" }MQL5 channel complaint
POST
/v1/channels/reportsosintReports a Channels dialog or message — chatId, chatLink, author login/name, message body and a native complaint signature.
Auth: Community native token from the chat engine plus a complaint signature computed over chatId.
- token
- complaintType
- complaintText
- chatId
- chatLink
- chatAuthorLogin
- chatAuthorName
- chatMessage
- chatMessageAuthorLogin
- chatMessageAuthorName
- chatUsersCount
- chatType
- signature
POST /v1/channels/reports HTTP/1.1 Content-Type: application/x-www-form-urlencoded token=<chat_token>&complaintType=1&complaintText=spam&chatId=0x4a21&chatLink=https://community.example/channels/fx-signals&chatAuthorLogin=publisher_fx&chatAuthorName=FX Publisher&chatMessage=buy%20EURUSD&chatMessageAuthorLogin=publisher_fx&chatMessageAuthorName=FX Publisher&chatUsersCount=1204&chatType=2&signature=<complaint_signature>{ "ok": true }MQL5 user complaint
POST
/v1/community/members/reportsosintReports another MQL5 community user — userId, complaintType and complaintText — signed with the same native complaint helper as Channels.
Auth: Community token plus a complaint signature over the reported user id. Form fields token, signature, complaintType, complaintText, userId.
- token
- signature
- complaintType
- complaintText
- userId
POST /v1/community/members/reports HTTP/1.1 Content-Type: application/x-www-form-urlencoded token=<chat_token>&signature=<complaint_signature>&complaintType=1&complaintText=spam&userId=12004567{ "ok": true }White-label broker network
POST
/v1/brokers/directoryopendataDownloads the signed white-label broker catalog for the requested server names — company, legalCountry, regulationStatus and the access-point list shown on the broker search screen.
Auth: Signed form body servers={csv}&signature={broker_signature}. A terminal-build User-Agent is sent, and requests go to one of several regional API access points. An alternate body servers={csv}&code=mt4 is also accepted.
- company
- regNumber
- regAddress
- officesLocation
- website
- genericEmail
- abuseEmail
- abuseUrl
- phone
- regulation
- regulationStatus
- legalCountry
- limitedAccess
- logoHash
- servers
- redirect
POST /v1/brokers/directory HTTP/1.1 Content-Type: application/x-www-form-urlencoded User-Agent: MetaTrader4/400.1475 servers=MetaQuotes-Demo%2CExampleBroker-Live&signature=<broker_signature>{ "company": "Example Broker Ltd", "regNumber": "CIF 000/00", "regAddress": "1 Example Street, Limassol", "officesLocation": "Limassol, CY", "website": "https://broker.example", "genericEmail": "[email protected]", "abuseEmail": "[email protected]", "abuseUrl": "https://broker.example/abuse", "phone": "+35725000000", "regulation": true, "regulationStatus": "CySEC", "legalCountry": "CY", "limitedAccess": false, "logoHash": "a1b2c3", "servers": [ { "name": "ExampleBroker-Live", "accessPoint": "trade.broker.example:443" } ], "redirect": null }Install confirm and geo
GET
/v1/installs/android/attributionosintConfirms the Android MT4 install channel and returns campaign tags plus install-geo countryISO/city used to seed the first broker list.
Auth: Unauthenticated GET. JSON keys utm_campaign, utm_source, servers, geo and utmCookie are parsed into the install-confirmation and install-geo records.
- utm_campaign
- utm_source
- servers
- geo
- countryISO
- city
- utmCookie
GET /v1/installs/android/attribution HTTP/1.1 Accept: application/json{ "utm_campaign": "play_organic", "utm_source": "google-play", "servers": [ "MetaQuotes-Demo" ], "geo": { "countryISO": "US", "city": "New York" }, "utmCookie": "utm=play_organic" }Campaign referrer decode
GET
/v1/campaigns/referrer/resolveopendataDecodes a Play install referrer into campaign tags and a preferred broker server list consumed by the first-launch campaign check.
Auth: Unauthenticated GET with a query string appended from the Play install referrer. Response is a query-string of utm_campaign, utm_source and servers/server.
- utm_campaign
- utm_source
- servers
- server
- referrer
GET /v1/campaigns/referrer/resolve?referrer=utm_source%3Dgoogle-play%26utm_campaign%3Dbroker_promo HTTP/1.1utm_campaign=broker_promo&utm_source=google-play&servers=ExampleBroker-LivePush token bind
GET
/v1/devices/push/registerosintBinds the device push token for MT4 quote and order alerts, tagging hid, uid and app_build.
Auth: Device bind: hid (device id), token (FCM or Huawei push token), optional uid (MetaQuotes id), plus device fingerprint fields. Huawei builds use a sibling route with the same query.
- hid
- token
- uid
- user
- device
- os_build
- app_build
- lang
GET /v1/devices/push/register?hid=dev_9c10&token=<push_token>&uid=mqid_8f21&user=Pixel%208&device=google&os_build=14&app_build=1475&lang=en HTTP/1.1{ "ok": true }
Data categories
- MQL5 community profile
- broker catalog
- install geo
- campaign attribution
- device push bind
- community complaints
Where teams use this data
White-label broker KYC match
Compliance joins BrokerInfo legalCountry, regulationStatus and company from the signed network catalog with the login's server name so a desk only routes flow to regulated access points.
MQL5 identity join
A community CRM stores q32 user_login, user_email, metaquotes_id and chat_token next to geo.country from the status call, then matches userId on later complaint filings.
Install-geo campaign routing
Growth ops read ConfirmGeo countryISO and city plus utm_campaign / utm_source from the confirm and Finteza decode calls to seed the first broker list a new install sees.
Push-token device inventory
A desk inventory stores hid, uid, device, os_build and app_build from the GCM/HMS bind so quote and order alerts stay tied to the same MetaQuotes id.
Frequently asked questions
What MQL5 community fields does MetaTrader 4 keep after Google sign-in?
The community user object carries 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 and finance_state. A later status read also writes geo.country.
Where does the broker list come from?
The terminal posts a signed request for the mobile broker directory. Each record returns company, legalCountry, regulationStatus, logoHash and the server access-point list; the install-attribution call then adds countryISO and city to pick the first brokers a new install sees.
Which campaign and geo tags arrive on first launch?
The Android install confirmation carries utm_campaign, utm_source, servers, geo (countryISO, city) and utmCookie. A separate referrer decode turns the Play install referrer into the same utm tags plus a preferred servers/server list.
How are Channels and user complaints filed?
A Channels complaint sends token, complaintType, complaintText, chatId, chatLink, author login/name, message body, chatUsersCount, chatType and a signature. A user complaint sends token, signature, complaintType, complaintText and userId.
Apps similar to MetaTrader 4 Forex Trading
- MetaTrader 5 — Forex, Stocks — MetaTrader 5 is MetaQuotes' multi-asset successor to the MT4 terminal, covering forex, stocks and futures with Expert Advisors, copy-trading signals and Android/iOS clients that brokers license next to the older platform.
- cTrader — cTrader is Spotware Systems' Limassol electronic platform for margin CFDs on forex, commodities, indexes, stocks and cryptocurrencies, with desktop, web and mobile clients, C# and Python cBots, and built-in cTrader Copy.
- TradingView: Track All Markets — TradingView's Supercharts cover stocks, crypto, forex pairs and futures and let users place trades through connected brokers such as OANDA and FOREX.com.
- NinjaTrader — NinjaTrader is a Chicago futures software and brokerage firm with desktop, web and mobile apps for live and simulated trading, customizable charts and NinjaScript strategies.
- thinkorswim — thinkorswim is Charles Schwab's electronic trading platform geared for self-directed stock, options and futures traders.
- Interactive Brokers — Interactive Brokers is a Greenwich, Connecticut brokerage that provides automated execution and custody for stocks, options, futures, foreign exchange, bonds and funds, and launched an iOS mobile app in 2009.
- eToro — eToro is a multi-asset brokerage whose platform covers stocks, ETFs, CFDs and cryptoassets and lets users replicate other investors' trades via copy trading.
- IQ Option – Trading Platform — IQ Option is a Limassol broker whose web and iOS/Android apps trade CFDs on stocks, forex and crypto, along with commodities and ETFs.
Topics
- MetaTrader 4 API
- MQL5 community login
- MT4 broker white label
- MetaTrader 4 legalCountry
- MT4 install geo countryISO
- MQL5 chat complaint
- 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