Skip to main content
GET
/
v1
/
ghost
/
track-record
curl https://api.aioka.io/v1/ghost/track-record
{
  "validatedTrades": 1,
  "totalTrades": 10,
  "winRate": 100.0,
  "totalPnlUsd": 795.28,
  "avgHoldTimeMinutes": 1470.0,
  "bestTradeUsd": 795.28,
  "worstTradeUsd": 0.0,
  "avgPnlPerTrade": 795.28,
  "since": "2026-04-12",
  "trades": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "entryTime": "2026-04-12T20:00:00+00:00",
      "exitTime": "2026-04-13T20:30:00+00:00",
      "entryPrice": 71070.60,
      "exitPrice": 73329.50,
      "holdTimeMinutes": 1470,
      "pnlUsd": 795.28,
      "pnlPercent": 3.18,
      "result": "WIN",
      "mode": "A",
      "tp1Hit": true,
      "exitReason": "TP2 (Final Exit — Remaining 50%)",
      "entryConditions": {
        "councilVerdict": "BUY",
        "rsi": 35.44,
        "emaDistance": 0.6577,
        "confidence": 0.82
      }
    }
  ],
  "equityCurve": [
    {
      "date": "2026-04-13T20:30:00+00:00",
      "cumulativePnl": 795.28,
      "tradeId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "result": "WIN"
    }
  ]
}

Overview

Returns the complete Ghost Trader track record since the Sprint 164 clean-slate restart (2026-04-12 17:55 UTC). Powers the aioka.io/track-record page. Every field is JSON-encoded in camelCase to match the website TypeScript interface one-for-one. Only trades with is_valid = true and status = 'CLOSED' are included. Backfilled, synthetic, and open trades are excluded. /v1/ghost/stats remains the lightweight 5-field homepage widget endpoint — this endpoint is the full-history counterpart. Tier: Public ✅ — No API key required Cache: None Rate limit: None

Response Fields — Aggregates

FieldTypeDescription
validatedTradesintegerNumber of closed validated trades in the history
totalTradesintegerCurrent validation target (10)
winRatefloatPercentage of validated closed trades that were profitable (0.0–100.0)
totalPnlUsdfloatSum of P&L (USD) across all validated closed trades
avgHoldTimeMinutesfloatMean hold duration across all validated trades
bestTradeUsdfloatBest single-trade P&L
worstTradeUsdfloatWorst single-trade P&L
avgPnlPerTradefloatMean P&L per trade
sincestringTrack record restart date ("2026-04-12")
tradesarrayPer-trade detail (see below)
equityCurvearrayCumulative P&L points for charting

Response Fields — Each Trade

FieldTypeDescription
idstringTrade UUID
entryTimestring (ISO 8601)UTC entry timestamp
exitTimestring (ISO 8601)UTC exit timestamp
entryPricefloatBTC price at entry (USD)
exitPricefloatBTC price at exit (USD)
holdTimeMinutesintegerTrade duration in minutes
pnlUsdfloatTotal trade P&L including TP1 partial
pnlPercentfloatPercentage move from entry to exit
resultstring"WIN" or "LOSS"
modestringEntry mode — "A", "B", or "C"
tp1HitbooleanWhether TP1 fired during the trade
exitReasonstringHuman-readable exit cause ("TP2 (Final Exit — Remaining 50%)", "TSL", "Stop Loss", etc.)
entryConditionsobject | nullEntry snapshot — councilVerdict, rsi, emaDistance, confidence

Response Fields — Equity Curve Point

FieldTypeDescription
datestringExit timestamp for this point
cumulativePnlfloatRunning total P&L up to and including this trade
tradeIdstring | nullTrade UUID for cross-reference
resultstring | null"WIN" or "LOSS"
P&L accounting includes both the TP1 partial close and the final exit. A trade where TP1 locked +670andtheremaining50670 and the remaining 50% exited at −268 reports pnlUsd = 401.35.
curl https://api.aioka.io/v1/ghost/track-record
{
  "validatedTrades": 1,
  "totalTrades": 10,
  "winRate": 100.0,
  "totalPnlUsd": 795.28,
  "avgHoldTimeMinutes": 1470.0,
  "bestTradeUsd": 795.28,
  "worstTradeUsd": 0.0,
  "avgPnlPerTrade": 795.28,
  "since": "2026-04-12",
  "trades": [
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "entryTime": "2026-04-12T20:00:00+00:00",
      "exitTime": "2026-04-13T20:30:00+00:00",
      "entryPrice": 71070.60,
      "exitPrice": 73329.50,
      "holdTimeMinutes": 1470,
      "pnlUsd": 795.28,
      "pnlPercent": 3.18,
      "result": "WIN",
      "mode": "A",
      "tp1Hit": true,
      "exitReason": "TP2 (Final Exit — Remaining 50%)",
      "entryConditions": {
        "councilVerdict": "BUY",
        "rsi": 35.44,
        "emaDistance": 0.6577,
        "confidence": 0.82
      }
    }
  ],
  "equityCurve": [
    {
      "date": "2026-04-13T20:30:00+00:00",
      "cumulativePnl": 795.28,
      "tradeId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "result": "WIN"
    }
  ]
}

Response

200 - application/json

Full validated track record

validatedTrades
integer
required
totalTrades
integer
required
winRate
number
required
totalPnlUsd
number
required
avgHoldTimeMinutes
number
required
bestTradeUsd
number
required
worstTradeUsd
number
required
avgPnlPerTrade
number
required
since
string
required
trades
GhostTrackRecordTrade · object[]
required
equityCurve
GhostTrackRecordEquityPoint · object[]
required