Skip to content

Consume THE WIRE and SITUATIONS

THE WIRE: markets ranked by how far belief moved in 24h, with lane filters

denpa.ai/wire — rows are moves, not volume; STORIES collapses an event’s buckets into one situation.

/api/wire returns markets ranked by belief movement inside a window. It is not CORS-open — fetch it server-side.

Terminal window
curl "https://denpa.ai/api/wire?lane=&window=1h&limit=50"
# → { events, updatedAt, window, coverage{…} } always 200, empty on error

Lanes (uppercase): POLITICS · CRYPTO · SPORT · CULTURE · MUSIC · TECH · ECONOMY · SCIENCE · WORLD · ENTERTAINMENT. The four buckets sports · politics · fashion · music_culture belong to the protocol feed /api/v1/signals/external only.

A situation is every moving market in one provider event, collapsed into a single story — six Bitcoin price buckets are one situation, not six competing rows. CORS-open.

Terminal window
curl "https://denpa.ai/api/situations?window=24h&limit=30"
# → { situations, updatedAt, window, coverage{…} }
  • Read peakDelta (the biggest mover) and markets[].
  • Never sum a situation’s deltas. Mutually exclusive buckets trade against each other and cancel to zero.
  • criticality is Routine · Elevated · Critical; id is stable across polls.
Terminal window
curl "https://api.denpa.ai/api/v1/signals/external?category=music_culture" # music_culture is served by Kalshi

The categorised universe feed across two exchanges: Polymarket carries sports and politics; Kalshi carries music_culture (~80% of the feed). category is an exact match on the four buckets (music, culture, entertainment, sport are accepted aliases); anything else returns an empty feed, not an error.

const wire = await denpa.getWire({ window: "1h" }); // web origin, server-side
const stories = await denpa.getSituations({ window: "24h" });
import { getMarketFeed } from "@denpa/sdk";
const feed = await getMarketFeed({ category: "music_culture" }); // both exchanges by default