Data API

Signals

Radar events as they happen, curated baskets, and the numbers behind the whole dataset.

Radar

GET/v1/radar

Recent notable entries by proven wallets — the polling equivalent of the live stream.

Query parameters

NameTypeDescription
limitintEvents to return, newest first.
Try it/v1/radar?limit=5

Kept in this browser only, and reused on every page. Never sent anywhere but the API.

Response
{
  "radar_events": [
    {
      "ts": "2026-08-02T11:41:09Z",
      "wallet": "0x6011...",
      "score": 88.4,
      "archetype": "information_trader",
      "market": "Will X happen by December?",
      "category": "politics",
      "side": "Yes",
      "entry_cents": 44.0,
      "kind": "entry"
    }
  ],
  "meta": { "limit": 1 },
  "system": { }
}

Response fields

NameTypeDescription
tsstringWhen the event happened, UTC.
walletstringThe Safe proxy address behind the trade.
scorefloatThat wallet’s skill score at the time — how much the event is worth reading.
sidestringOutcome bought.
entry_centsfloatPrice paid, in cents.
kindstringEvent type, e.g. an entry rather than an exit.

Radar is a poll. If you want the same information without asking repeatedly, use Streaming instead — it costs far fewer credits at any useful refresh rate.

Baskets

GET/v1/baskets

Groups of wallets assembled to be followed together, with realistic copy returns already modelled.

Try it/v1/baskets

Kept in this browser only, and reused on every page. Never sent anywhere but the API.

Response
{
  "baskets": [
    {
      "key": "durable-edge",
      "name": "Durable Edge",
      "description": "Wallets whose edge has survived being copied.",
      "members_count": 24,
      "basket_score": 81.2,
      "weighted_sharpe": 2.1,
      "pnl_30d_weighted": 184220.0,
      "capacity_usdc": 420000.0,
      "rebalance": "weekly",
      "copy_realistic_return_pct": 9.4,
      "avg_capture": 0.62,
      "members_with_copyfit": 19,
      "members": ["0x6011...", "0x9a3d..."]
    }
  ],
  "meta": { }
}

Response fields

NameTypeDescription
basket_scorefloatComposite quality of the group as a group, not the average of its members.
capacity_usdcfloatRoughly how much money this basket absorbs before the edge degrades. The number most people ignore and should not.
copy_realistic_return_pctfloatModelled return after slippage and delay — not the members’ raw PnL.
avg_capturefloatFraction of the members’ edge a copier actually captures, 0–1.
rebalancestringHow often membership is recomputed.
Copy returns are modelled, not promised. copy_realistic_return_pctalready accounts for slippage and delay, which is why it is far below the members’ headline PnL. Treat capacity_usdc as a ceiling: past it, you are the one moving the price.

Stats

GET/v1/stats

Dataset-wide counters. Cheap, and useful as a health check.

Try it/v1/stats

Kept in this browser only, and reused on every page. Never sent anywhere but the API.

Response
{
  "wallets_tracked": 1756282,
  "proven_traders": 205944,
  "trading_now": 12812,
  "observed_copy_delay_s": 251.33,
  "top_30d_pnl": {
    "value": 8049886.14,
    "name": "DEEDDIT",
    "archetype": "retail"
  },
  "meta": { "note": "wallets_tracked is an exact count(*), refreshed periodically." }
}

Response fields

NameTypeDescription
wallets_trackedintEvery wallet in the dataset — an exact count, not an estimate.
proven_tradersintWallets with enough resolved history to be ranked.
trading_nowintWallets active in the current window.
observed_copy_delay_sfloatMeasured median delay between a tracked wallet trading and its copiers following. The realistic floor on any copy strategy.
/v1/stats is uncached and aggregates across the whole dataset, so a cold call can take a few seconds while a warm one returns in milliseconds. Fine for a dashboard; do not put it in a request path.