API reference

Splash

Price-spike and dump events (pumps & crashes) detected on 1-second candles across CEX and DEX.

Planned /v1 event API

The /v1 endpoints documented here are the published event-API contract, but that serving layer is not deployed and these URLs return 404 today. The production machine rail is live separately at /api/v1/data, /mcp, and the authenticated family WebSocket routes. See Live APIs for endpoints that can be called now.

The canonical splash stream deliberately includes sub-threshold spikes (the bots use them for automation); the public feed re-gates on `min_abs_move_pct`, so set it explicitly.

`direction` distinguishes `pump` from `dump`; `move_pct` is signed (the sign mirrors direction). `window_seconds` caps how fast the move happened. Items follow the `umbra.splash.v1` schema.

GET recent

Last ≤500 splash events in memory, filtered.

GET/v1/splash/recent

Tier: Builder+

Query parameters

ParameterTypeDescription
directionstringpump | dump.
min_abs_move_pctfloatMinimum absolute percent move.
max_abs_move_pctfloatMaximum absolute percent move.
max_window_secondsfloatCap on the spike window in seconds.
marketstringspot | futures.
exchangestringExact exchange.
symbolstringExact symbol.
exclude_symbolstringBlacklist a symbol.
min_volume_24h_usdfloatMinimum 24h volume (USD).
delayint (s)Hide events fresher than N seconds. Your tier clamps the minimum (see Access tiers).
limitintMax events to return. Capped server-side (recent ≤ 500, history per-tier).

Response

json
{
  "meta": { "trace": "c_4f2a…", "as_of": 1781000000.42, "count": 1, "delay_seconds": 0 },
  "data": [
    {
      "schema": "umbra.splash.v1",
      "event_id": "3f1b2c4d-5e6f-47a8-9b0c-1d2e3f4a5b6c",
      "event_type": "splash.detected",
      "sequence": null,
      "x_key": "PEPE_USDT:binance:futures:price_spike",
      "detected_at": "2026-07-03T10:00:00.123Z",
      "summary": "PEPE_USDT pumped +11.4% in 42s on binance (futures)",
      "instrument": { "symbol": "PEPE_USDT", "base": "PEPE", "quote": "USDT" },
      "venue": "binance",
      "market": "futures",
      "direction": "pump",
      "move_pct": 11.4,
      "window_seconds": 42,
      "price_start": 0.0000089,
      "price_current": 0.00000994,
      "spot_price": null,
      "futures_price": 0.00000994,
      "volume_24h_usd": 18250000.0,
      "context": { "funding": null, "limits": null, "dex": [] }
    }
  ]
}

GET history

Durable splash event log, keyset-paginated.

GET/v1/splash/history

Tier: Builder+

Query parameters

ParameterTypeDescription
directionstringpump | dump.
min_abs_move_pctfloatMinimum absolute move.
marketstringspot | futures.
sinceint (ts)Return events at or after this unix timestamp.
beforeint (ts)Keyset pagination cursor — return events strictly older than this unix timestamp.
limitintMax events to return. Capped server-side (recent ≤ 500, history per-tier).

Response

json
{ "meta": { "trace": "c_4f2a…", "count": 100, "next_before": 1780990000 }, "data": [ /* splash events */ ] }

WS live

Filtered live splash stream.

WS/v1/splash/live

Tier: builder+

Query parameters

ParameterTypeDescription
directionstringpump | dump.
min_abs_move_pctfloatMinimum absolute move.
max_abs_move_pctfloatMaximum absolute move.
exchangestringExact exchange.
delayint (s)Hide events fresher than N seconds. Your tier clamps the minimum (see Access tiers).

Response

json
// Typed event frame (curated event under "data"):
{ "type": "event", "family": "splash", "received_at": 1781000000.0,
  "data": { "schema": "umbra.splash.v1", "event_id": "3f1b2c4d-…", "x_key": "PEPE_USDT:binance:futures:price_spike",
    "symbol": "PEPE_USDT", "venue": "binance", "market": "futures", "direction": "pump",
    "move_pct": 11.4, "window_seconds": 42, "detected_at": "2026-07-03T10:00:00.123Z" } }

Event fields

Payloads are curated — only the fields below are exposed. New upstream fields never leak by default (allowlist policy). Every response carries a per-consumer trace watermark.

ParameterTypeDescription
directionstringpump | dump.
move_pctfloatSigned percent move over the window (sign mirrors direction).
window_secondsintSeconds the move took.
price_start / price_currentfloatWindow-start and detection-time prices.
spot_price / futures_pricefloat?Per-market prices; null when unknown.
volume_24h_usdfloat24h quote volume (USD).
context.funding / context.limitsobject?Funding rate + next settlement, and contract limits (futures legs, when available).
context.dexarrayDEX pools quoting the base asset (chain, dex_id, pool, liquidity); empty on CEX.