RADAR API

API Documentation

Programmatic access to every recorded market event, outcome metric and live stream. Available on the PRO plan — generate your key under Account → API keys.

Authentication

All endpoints require your API key as a bearer token. Keys are created per-account.

curl -H "Authorization: Bearer <YOUR_API_KEY>" \
     https://your-radar-host/api/v1/signals?limit=50&minscore=70

REST Endpoints

GET
/api/v1/signals

Filtered signal/event history. Query params: limit, minscore, type, timeframe, age (minutes).

GET
/api/v1/performance/scores

Outcome distribution grouped by radar-score band.

GET
/api/v1/performance/timeframes

Outcome metrics per timeframe (5m/15m/1h/4h).

GET
/api/v1/performance/signal-types

Outcome metrics per signal type.

GET
/api/v1/performance/regimes

Outcome metrics bucketed by market regime.

GET
/api/v1/performance/daily

Daily aggregate performance series.

Response Structure

GET /api/v1/signals

{
  "total": 2284,
  "count": 2,
  "signals": [
    {
      "id": 3871,
      "symbol": "SUPERUSDT",
      "type": "4H_BULLISH_BREAKOUT",
      "badge": "🟢 4H BULLISH BREAK",
      "timeframe": "4h",
      "direction": "LONG",
      "status": "TARGET_HIT",
      "price": 0.1302,
      "entry_price": 0.1140,
      "stop_price": 0.1096,
      "target_price": 0.1238,
      "target_pct": 4.55,
      "support": 0.1096,
      "resistance": 0.1140,
      "volume_24h": 13600000,
      "volume_surge_mult": 11.3,
      "conviction_score": 82,
      "summary": "Macro 4h Bullish Breakout above swing high …",
      "created_at": "2026-08-24T14:29:59+05:30",
      "outcome": {
        "signal_id": 3871,
        "mfe_percent": 6.41,
        "mae_percent": -1.12,
        "realized_percent": 4.53,
        "realized_r": 1.49,
        "time_to_target_sec": 840,
        "time_to_stop_sec": 0,
        "evaluated_at": "2026-08-24T18:33:25Z"
      }
    }
  ]
}

GET /api/v1/performance/*  (all five endpoints share one envelope)

{
  "total": 1842,
  "metrics": {
    "total": 1842, "measured": 1701,
    "target_hit": 1101, "stop_hit": 402, "expired": 198, "invalidated": 0,
    "win_rate": 64.7, "loss_rate": 23.6,
    "avg_r": 0.42, "median_r": 0.31, "total_r": 714.6,
    "profit_factor": 2.18,
    "avg_mfe": 6.4, "avg_mae": -2.1
  },
  "groups": [
    { "label": "<50",   "metrics": { "…": "same metrics shape" } },
    { "label": "90-100", "metrics": { "…": "same metrics shape" } }
  ]
}

Grouping differs per endpoint: score buckets (/performance/scores), timeframe (/performance/timeframes), signal type (/performance/signal-types), market regime (/performance/regimes) or calendar day (/performance/daily). Errors return {"error": "…"} with an appropriate HTTP status.

WebSocket Stream

wss://your-radar-host/ws/v1/signals
Authorization: Bearer <YOUR_API_KEY> (header or ?key= query param)

Pushes JSON events as they are detected: signal.detected · signal.target_hit · signal.stop_hit · signal.expired · signal.updated

Rate Limits

Need an API key?
Available on the PRO plan — USDT billing, cancel anytime.
Account → API Keys