GetCopyTradeMasters¶
Endpoint¶
GET /copytrade/masters
Authorization¶
Requires SESSION_CUSTOMER.
Description¶
Returns public enabled masters and masters owned by the authenticated customer.
The response includes marketplace statistics calculated by the backend from the master's closed trade history and daily equity snapshots. The endpoint supports the standard filter format, including filters and sorting by calculated statistics for the selected statistics period.
Statistics are maintained server-side and are intended for marketplace ranking
and discovery. PNL-based metrics use closed market trades only. pnl_history
is a cumulative realized PNL curve, ordered from oldest day to newest day. ROI
and max drawdown are based on daily equity snapshots and therefore represent
daily snapshot-based values, not intraday drawdown.
Request Parameters¶
All parameters are optional.
| Name | Type | Description |
|---|---|---|
limit |
int | Page size. Default 100, maximum 500 |
offset |
int | Page offset. Default 0 |
where |
array | Standard where filters |
whereNot |
array | Standard negative filters |
whereIn |
array | Standard include-by-list filters |
whereNotIn |
array | Standard exclude-by-list filters |
whereBetween |
array | Standard range filters |
whereNotBetween |
array | Standard negative range filters |
orderBy |
array | Sort definition |
stats_period |
string | Statistics period. Allowed values: 7D, 30D, 90D, 365D. Default 30D |
period |
string | Alias for stats_period |
Filter Fields¶
Master fields:
| Field | Type |
|---|---|
id |
int |
login |
int |
enabled |
int |
strategy_name |
string |
visibility |
string |
allowed_follower_modes |
int |
show_trade_history |
int |
show_followers |
int |
created_time |
int64 |
updated_time |
int64 |
Statistics fields:
| Field | Type | Description |
|---|---|---|
stats.roi |
number | ROI percent for the selected period |
stats.pnl |
number | Net realized PNL for the selected period |
stats.win_rate |
number | Winning closed trades percent for the selected period |
stats.max_drawdown |
number | Max drawdown percent from daily equity snapshots for the selected period |
stats.avg_pnl_per_trade |
number | Average net PNL per closed trade for the selected period |
stats.trades |
int | Closed market trades for the selected period |
The server also accepts the same statistics fields without the stats. prefix
for compatibility, for example roi and stats.roi are equivalent.
Request Example¶
{
"stats_period": "90D",
"where": [
["stats.roi", ">=", 5],
["stats.win_rate", ">=", 55],
["stats.trades", ">=", 10],
["stats.max_drawdown", "<=", 20]
],
"orderBy": [["stats.pnl", "desc"]],
"limit": 50,
"offset": 0
}
Response¶
{
"rows": [
{
"id": 1,
"login": 100001,
"enabled": 1,
"strategy_name": "Conservative FX",
"description": "Low risk major pairs strategy",
"visibility": "public",
"allowed_follower_modes": 2,
"show_trade_history": 1,
"show_followers": 1,
"created_time": 1778160000,
"updated_time": 1778160000,
"stats": {
"period": "30D",
"period_days": 30,
"roi": 8.42,
"pnl": 1240.5,
"win_rate": 61.54,
"max_drawdown": 7.8,
"avg_pnl_per_trade": 47.71,
"trades": 26,
"pnl_history": [
0,
120.5,
85.5,
85.5,
165.75
]
}
}
],
"count": 1
}
pnl_history contains one cumulative realized PNL value per day for the
selected period, ordered from oldest to newest. Days without closed trades repeat
the previous value.
Example:
- day 1: closed PNL
20-> history value20; - day 2: closed PNL
12-> history value32; - day 3: no closed trades -> history value
32; - day 4: closed PNL
-5-> history value27.
The array length matches period_days: 7 values for 7D, 30 for 30D, 90 for
90D, and 365 for 365D. The response example is shortened for readability.
Errors¶
| HTTP | Error | Description |
|---|---|---|
401 |
INVALID_CUSTOMER_SESSION |
Customer session is missing or invalid |