Accounts
List accounts
GET /api/v1/accounts
Returns the accounts and portfolios you own, newest first. Private accounts are included: they are yours.
Query parameters
account or portfolio. Omit for both.MT4, MT5, cTrader or TradeLocker.1.50, maximum 200.Response
{
"data": [
{
"type": "account",
"slug": "dark-algo",
"name": "Dark Algo (EURUSD) - VT Market",
"platform": "MT4",
"currency": "USD",
"broker": "VT Markets (Pty) Ltd",
"server": "VTMarkets-Live 4",
"leverage": 2000,
"demo": false,
"history_cut_at": null,
"published": true,
"verified": { "identity": false, "track_record": false },
"balance": 1022.98,
"equity": 996.96,
"created_at": "2026-06-21T09:53:58Z",
"updated_at": "2026-08-22T13:42:48Z",
"performance": {
"twr_percent": 5.96,
"absolute_gain_percent": 5.89,
"max_drawdown_percent": 0.15,
"avg_daily_return_percent": 0.11,
"avg_monthly_return_percent": 3.26,
"deposits": 1000,
"withdrawals": 35.91
},
"owner": { "slug": "hope-algo-trading", "name": "Hope Algo Trading" },
"attribution": {
"required": true,
"text": "Data from ShowMyTrades",
"url": "https://showmytrades.com/account/dark-algo",
"account_url": "https://showmytrades.com/account/dark-algo"
}
}
],
"pagination": { "page": 1, "limit": 50, "total": 1, "has_more": false }
}
Retrieve an account
GET /api/v1/accounts/{slug}
Works for any account you own, and for any account someone has published. A private account
that is not yours returns 404, not 403, because confirming that a
private account exists would already leak something.
For a published account no key is needed: the request works without an Authorization
header, with the attribution required and the anonymous rate limit (see
Authentication). The slug is the last part of the account's public
URL, https://showmytrades.com/account/{slug}.
The account object
account or portfolio.MT4, MT5, cTrader or TradeLocker.null when the type has not been detected yet: the account has never sent data.YYYY-MM-DD) before which the owner permanently removed the account's history (a "permanent cut"). Everything in the response starts from that date: the balance at that date counts as the starting capital, and older trades, deposits and drawdowns are not included. null when the history was never cut. If you show this account's performance, say that it was cut. Always null for portfolios.true for accounts you do not own.identity: the owner proved they control the account. track_record: the history is
read directly from the broker rather than self-reported.twr_percent and
absolute_gain_percent each measure, and note max_drawdown_percent is positive.slug and name, where name is the owner's public brand name and is null when they
have not set one. Personal names are never returned.text, the url to link it to, and
required (true on the free plan). See Attribution.Expanding with include
The account object above is the summary: current balance and equity, headline return and drawdown, deposits and withdrawals. Everything behind those numbers (the curve, the calendar, the breakdowns) is opt-in, because the full payload is around 50 KB and most callers want a fraction of it.
GET /api/v1/accounts/dark-algo?include=equity_curve,monthly
Comma-separated, in any order. One request either way: asking for four sections is not four round trips. Each section comes back as a key with the same name on the account object.
Which section do I need?
| You want to… | Ask for |
|---|---|
| Draw the equity or balance chart, or get the return day by day | equity_curve |
| Get the time-weighted return after each trade | twr |
| Show a month-by-month or year-by-year table, or "how is this week going" | monthly |
| Compare instruments (which pairs make money, which lose) | by_symbol |
| Compare strategies on MT4/MT5 (each EA usually has its own magic number) | by_magic_number |
| Risk and consistency metrics: profit factor, expectancy, Sharpe, Z-score… | advanced |
What each section contains
daily_performance is an array of days. Each day carries the state of the account at the end
of that day: cumulative_balance, cumulative_equity and cumulative_profit (the running
totals), twr_percent (the time-weighted return so far, in percent: this is the daily TWR
series) and twr_equity_percent (the same, measured on equity instead of balance, so it includes
positions still open), drawdown (distance from the running peak; negative here, e.g.
-12.4, unlike max_drawdown_percent in the summary which is positive), peak_balance,
trades_count and win_rate for that day. Days without closed trades are not listed.deposits_withdrawals lists every money movement as {date, amount}: positive for deposits,
negative for withdrawals. Use it to mark them on the chart: the return series already excludes
them, which is what "time-weighted" means.twr_trade_by_trade: a plain array of numbers, one per closed trade in chronological order,
each being the cumulative time-weighted return in percent after that trade
([0, 0.22, 0.44, …]). It is the same return as equity_curve, at a finer grain: a curve with
one point per trade instead of one per day. There are no dates in this array: pair it with the
trades list if you need them.monthly_performance: one row per month, {date: "2026-06", monthly_profit, monthly_percent}:
money and time-weighted return for that month. yearly_performance: the same per year.
period_returns: four ready-made snapshots (today, this_week, this_month, this_year),
each with profit, twr_percent, trades_count, win_rate and volume, so you can show "this
month so far" without computing anything."EURUSD", "XAUUSD"…). Each entry has total, longs and
shorts. total gives trades, won, lost, won_percentage, profit and pips; longs
and shorts give trades, profit and pips for that side. Note that profit and pips are
returned as strings here ("-4.95"), a legacy of the statistics engine: parse them.by_symbol, keyed by magic number ("1234"). On MT4 and MT5 every Expert Advisor
stamps its trades with its own magic number, so this is effectively results per strategy;
manual trades sit under "0". cTrader and TradeLocker have no magic numbers, so there the
whole account sits under "0" and this section adds nothing over by_symbol.- Edge:
profit_factor,expectancy({currency, pips}: average result per trade),win_rate,ahprandghpr(arithmetic and geometric average return per trade, in percent). - Risk and consistency:
sharpe_ratio(per trade: mean net result / standard deviation, same convention as Myfxbook),sharpe_ratio_annualized(daily equity returns × √252, risk-free 0;nullwith fewer than 30 weekdays of history),standard_deviation,z_score({value, probability}: whether wins and losses come in streaks more than chance would predict). - Size of wins and losses:
avg_win,avg_loss,best_trade_profitandworst_trade_profit({date, value}),best_trade_pips,worst_trade_pips. - Direction:
longs_wonandshorts_won({count, total, percentage}). - Totals:
total_trades,total_lots,total_pips,total_swap,total_commissions,avg_trade_length_hours. - How it is traded:
autotrading_trades,manual_trades,autotrading_percentage. charts: three ready-to-plot series:trades_by_hour({hour, won, lost}for 0–23),trades_by_weekday({day, won, lost}, 1 = Monday) andrecent_trades_duration(the last trades with theirdurationin seconds andnet_profit).
include returns it as null rather
than failing the request; so ask for what you need and handle null.currency; every *_percent is a plain percentage
(3.3 means 3.3%). What twr_percent measures, and how it differs from absolute_gain_percent,
is explained in conventions.Reading someone else's account
Nothing special is required: pass the public slug to the same endpoint. Your key needs the
public:read scope, which every key has by default.
curl https://showmytrades.com/api/v1/accounts/dark-algo \
-H "Authorization: Bearer smt_live_YOUR_KEY"
You get the same shape, minus anything the owner has chosen to hide.