Skip to content

Wire and situations

GET /api/wire?lane=&window=15m|1h|6h|24h&limit≤200
→ { events, updatedAt, window, coverage{…} } always 200, empty on error ⚠ not CORS-open
POST /api/wire/observe admin backstop write · GET → observation status
GET /api/situations?lane=&window=15m|1h|6h|24h&limit≤100
→ { situations, updatedAt, window, coverage{…} } always 200, empty on error CORS-open

A situation is every moving market in one provider event collapsed into a single story. Read peakDelta and markets[]; never sum the deltas — mutually exclusive buckets cancel to zero. criticality: Routine · Elevated · Critical. id is stable across polls.

The protocol feed:

GET {API}/api/v1/signals/external?category=sports|politics|fashion|music_culture[&source=polymarket]
# source=polymarket is the only pin; Kalshi rows arrive by category (music_culture)

category is an exact match (aliases: music, culture, entertainment, sport); anything else returns an empty feed. Polymarket carries sports and politics; Kalshi carries music_culture.

SDK: client.getWire() · client.getSituations() · getMarketFeed({ category | providers }) (module-level, import { getMarketFeed } from "@denpa/sdk").