Search

Search across every account published on ShowMyTrades.
GET /api/v1/search/accounts

Searches every published account on ShowMyTrades. No key is needed: without an Authorization header the request runs on the anonymous terms (attribution required, 20 requests per minute per IP). With a key it needs the public:read scope, which every key has by default, and gets the key's limit.

Query parameters

q
string
Free text. Matches the account name and the strategy labels its owner has set.
platform
string
MT4, MT5, cTrader or TradeLocker.
min_gain_percent
number
Minimum time-weighted return.
max_drawdown_percent
number
Maximum drawdown to allow, as a positive number. 20 means "no worse than 20%".
min_age_days
integer
Only accounts with at least this much history. A three-week-old account showing 400% is noise, and this is how you exclude it.
verified
boolean
Only accounts whose track record is read directly from the broker: the Track Record badge on the account page.
identity_verified
boolean
Only accounts whose owner proved full access to the trading account: the Trading Privileges badge. Combine with verified=true for accounts that carry both.
demo
boolean
false for real accounts only, true for demo accounts only. Omit for both. Accounts whose type has not been detected yet (demo: null in the response) are excluded either way.
sort
string
gain, drawdown, age or updated. Prefix with - to reverse: -gain for the highest return first. Defaults to -updated.

Example

Real, verified accounts with at least six months of history that made over 20% without ever drawing down more than 15%:

curl -G https://showmytrades.com/api/v1/search/accounts \
  -d verified=true \
  -d demo=false \
  -d min_age_days=180 \
  -d min_gain_percent=20 \
  -d max_drawdown_percent=15 \
  -d sort=-gain

Add -H "Authorization: Bearer smt_live_YOUR_KEY" for the higher limit of your key.

The same search is available to AI assistants as the search_public_accounts tool of the MCP server, also without a key.
Not yet searchable: broker, traded instrument and magic number. Those live in the trade history rather than on the account record, so they need a different index than the one behind this endpoint. They are planned, not forgotten.

Response

Each result is the same account object as /accounts/{slug}, without the expandable sections. Take the slug and call that endpoint for the full picture.

Response
{
  "data": [
    {
      "type": "account",
      "slug": "dark-algo",
      "name": "Dark Algo (EURUSD) - VT Market",
      "platform": "MT4",
      "currency": "USD",
      "broker": "VT Markets (Pty) Ltd",
      "demo": false,
      "verified": { "identity": false, "track_record": false },
      "performance": {
        "twr_percent": 5.96,
        "absolute_gain_percent": 5.89,
        "max_drawdown_percent": 0.15
      },
      "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 }
}

Each result has its own attribution, linking to that account's page: when you show a result, show its credit. See Attribution.

What search will not do

There is no way to search for people. You can search accounts and read their track records. There is no endpoint that lists or searches traders, and an account never carries its owner's personal name, email or contact details: only the public slug and brand name they chose to show.This is a deliberate boundary, not an oversight: a public track record is something people publish on purpose, a list of people is not.

Private accounts never appear in search, whoever is asking.