The live session carries everything the screen shows
Open the app and a persistent WebSocket session lights up: live quotes for more than a hundred assets, your real and demo balances side by side, and each trade ticket as it opens and settles. That stream is where an integration for this broker starts. EOLabs LLC runs the back end; the client, per its Google Play listing, behaves the same whether it loads in Dhaka or São Paulo. Read the session under the account holder's authorization and you have the account.
So the brief here is narrow and concrete. The value lives in a long-running socket, so the work is decoding that session and giving your code a clean call. The route we would actually run is protocol analysis of the authorized session, then handing the same client the user's own login token so it keeps syncing after we deliver. Everything below maps what that session carries and how we turn it into something callable.
What the account actually holds
Each row is a surface the app renders for a signed-in trader, named the way the app presents it where possible.
| Data domain | Where it surfaces in the app | Granularity | What an integrator does with it |
|---|---|---|---|
| Account balance | The "Real Balance" header, with a toggle to the $10,000 demo | Per account, real time, both real and practice | Sync net liquidity into a portfolio or risk dashboard |
| Trade tickets | Trade panel and history of past positions | Per ticket: asset, direction, stake, expiry, payout, outcome | Reconstruct profit-and-loss, drive a copy-trade feed |
| Asset quotes | The live chart for 100-plus instruments — stocks, indices, currencies, commodities | Per-asset ticks while subscribed | Mirror pricing or backfill a research store for backtests |
| Cashier movements | Deposit and withdrawal flow across cards, Skrill, Neteller and other rails | Per transaction: method, amount, status | Reconcile funding against an internal ledger |
| Profile | Account screen: identity, verification state, base currency | Per user | Map a trader to records in other systems |
Three authorized ways to reach it
All three assume the account holder has authorized the access. They differ in what they cover and how long they hold.
Session protocol analysis
We capture the WebSocket traffic of a consenting account, decode the message envelope, and rebuild the calls in clean client code. This reaches the broadest set — balances, tickets, quotes, cashier status — because it is exactly what the app itself sees. Effort is moderate. Durability is tied to the app's protocol version, so we build it to fail loud when a field shifts rather than drift silently.
User-consented token session
Once a trader signs in, the session carries an auth token. We drive the same socket with that token, scoped strictly to that trader's own data. This is the durable path for ongoing sync: as long as the login flow holds, the client keeps pulling fresh balances and fills without a person in the loop.
In-app history read
For records older than the live window, we read the history surface the app already renders and parse it for reconciliation. Lower fidelity, no real time — but it fills the long tail the socket no longer replays.
For most teams the build we actually run is the consenting-account socket capture, with the trader's token wired in so the client keeps syncing after handover; the history read joins only when a project needs trades from further back than the session carries. That ordering follows from where this broker keeps its value — in the live stream, not in any export.
Inside a balance-and-trade read
Illustrative of the session shape, confirmed against a live capture during the build. ExpertOption's transport is a JSON-over-WebSocket envelope; a community Python client published on PyPI demonstrates the same protocol can be driven programmatically for profile and trade-history retrieval. Exact action names are pinned during the engagement, not guessed.
# wss session — authorize, subscribe, read (field names confirmed during the build)
import json, websocket
ws = websocket.create_connection("wss://ws.expertoption.example/") # endpoint pinned at capture
# 1) attach the consenting trader's token (from their own login)
ws.send(json.dumps({"action": "authorize", "token": SESSION_TOKEN, "ns": 1}))
# 2) ask for the account balances — real + demo arrive tagged by context
ws.send(json.dumps({"action": "profile", "ns": 2}))
# 3) subscribe to recent + live trade tickets
ws.send(json.dumps({"action": "userTrades", "ns": 3}))
while True:
msg = json.loads(ws.recv())
if msg.get("action") == "profile":
for acct in msg["message"]["balances"]:
# acct["type"] == "demo" | "real" → never merge the two
print(acct["type"], acct["currency"], acct["amount"])
elif msg.get("action") == "userTrades":
for t in msg["message"]["trades"]:
print(t["asset_id"], t["direction"], t["amount"],
t["exp"], t.get("profit"))
elif msg.get("action") == "ping":
ws.send(json.dumps({"action": "pong", "ns": msg["ns"]})) # keep-alive or the socket drops
The keep-alive matters. Drop the ping reply and the server closes the socket within seconds, so the shipped client manages reconnection and re-subscription on its own.
What lands in your repo
- An OpenAPI description that wraps the socket as a normal request/response surface —
/balance,/trades,/quotes/{asset}— so callers never touch raw frames. - A protocol and auth-flow report: the token chain from login to authorized session, the message envelope, the ping cadence, and how demo and real contexts are distinguished.
- Runnable client source in Python or Node.js for the balance, trade-ticket and quote reads, with reconnection and back-off built in.
- An automated test harness that replays recorded session fixtures, so a changed field shows up as a failing test before it reaches you.
- Interface documentation a new engineer can follow, plus data-retention and minimization guidance for the captures.
Each piece is anchored to a real surface above — balances, tickets, quotes, cashier movements — not a generic broker template.
Footing: consent, not a mandate
This broker sits outside any open-banking or account-aggregation scheme. EOLabs LLC is registered in St. Vincent and the Grenadines, a jurisdiction that, per public regulator records, does not license international forex or binary brokers, so no regulatory data-sharing mandate governs this account. The dependable basis is simpler and stronger: the account holder consents to their own data being read, and the integration runs on that consent.
On the trader's side, foreign-broker dealing is itself regulated in markets like Bangladesh, where the central bank limits speculative foreign-exchange activity under the Foreign Exchange Regulation Act. We treat that as the user's responsibility to settle, and keep our own footing clean: access is authorized and logged, captures are minimized to the fields the build needs, demo and real data are kept apart, and an NDA covers the engagement where you want one. No personal data leaves the agreed scope.
What we plan the build around
These are the parts of this specific app that shape the engineering, handled on our side as part of the work.
- One socket, two account contexts. The demo and real balances ride the same connection. We tag every balance change and ticket by its account context at decode time, so a practice fill can never contaminate real profit-and-loss downstream.
- Frequent client updates. The app ships often, and message shapes can move with it. We build a fixture set from a live capture and run it as a test, so a renamed or dropped field surfaces as a red test on day one instead of a silent gap weeks later.
- Many currencies and payment rails. With 200-plus deposit methods and several account currencies in play, raw amounts are ambiguous. We normalize to a single base currency and carry the original currency and rate context alongside, so reconciliation stays honest.
- Keep-alive and reconnection. The session expects periodic pings and will close if they stop. The client we hand over owns its own heartbeat, reconnect and resubscribe loop, so an overnight sync survives without a babysitter.
Access to a sandbox or a consenting account is arranged with you during onboarding — the demo account already speaks the production protocol, so a lot of the work starts before any real-money credential is involved.
Where teams put this
- A copy-trading view that pulls a consenting trader's open positions in real time and mirrors them into a dashboard.
- A compliance export that reconciles deposits and withdrawals against an internal ledger, deposit method by deposit method.
- A research store that backfills asset quotes during market hours to backtest a fixed-time strategy.
- A multi-broker portfolio that folds an ExpertOption balance in next to accounts from other platforms under one schema.
The screens we worked from
Store screenshots of the surfaces named above. Select one to enlarge.
How this brief was put together
Checked in June 2026: the app's own Google Play listing for the account model, asset count and operator; an independent review of the mobile app for the balance and history surfaces; a community client package for evidence the session protocol is programmable; and public regulator references for the St. Vincent registration and the Bangladesh foreign-exchange rules that bear on a trader's side. Sources opened:
- ExpertOption on Google Play (com.expertoption)
- Traders Union — ExpertOption mobile app review
- ExpertOptionAPI on PyPI — community client for the session protocol
- Reference on forex-trading rules in Bangladesh
OpenBanking Studio integration desk — protocol mapping reviewed June 2026.
Questions integrators ask about ExpertOption
Can you keep demo trades separate from real-money trades in the data?
Yes. The same socket carries both the practice account and the funded one, and each message arrives with an account context. We tag every balance change and trade ticket by that context so a demo fill never leaks into real profit-and-loss, and your dashboard can show the two side by side or filter to one.
ExpertOption's operator is registered offshore in St. Vincent — does that change how you reach the data?
It changes the legal footing, not the route. EOLabs LLC's St. Vincent registration means no open-banking or account-aggregation mandate compels data sharing, so access rides the account holder's own authenticated consent rather than a regulatory feed. The technical work — reading the authorized session — is the same either way.
Does the live session give you historical trades, or only what happens while connected?
On connect the session replays a window of recent activity — open positions and lately settled tickets — and then streams new events live. For older records than that window carries, we read the in-app history surface and merge it with the live stream, so a sync covers both the long tail and the present.
Do you need our funded real account, or can the build run on the demo?
The demo account speaks the same protocol as the real one, so most of the build runs against the practice balance with no money at risk. We validate the real-money fields — actual balance, deposits, withdrawals — on a consenting account during onboarding, arranged with you, and keep those captures logged and minimized.
Source comes to you first: we build the client, you run it against your own account, and the source-code engagement — from $300 — is settled only once it works and you are satisfied. Prefer not to host anything? The same balance, trade and quote reads run on our endpoints and you pay per call with nothing upfront. Either model runs on a one-to-two-week cycle. Tell us which account data you want out of ExpertOption and we will scope it — start a conversation here.
App profile — ExpertOption - মোবাইল ট্রেডিং
Mobile broker offering fixed-time and option trading across 100-plus assets — stocks, indices, currencies and commodities — with a no-registration demo funded at $10,000 in virtual money and real accounts from a $10 minimum deposit, per the app's Google Play listing. Services are provided by EOLabs LLC, registered in St. Vincent and the Grenadines (company number 377 LLC 2020 as stated in the listing), and the app is available across Android, iOS, web and desktop in 150-plus countries. Deposits run through cards plus Skrill, Neteller and other rails. Trading carries a risk of loss; this page is an independent integration write-up and is not affiliated with or endorsed by ExpertOption or EOLabs LLC.