signaldaemon API reference
← home

signaldaemon API

Narrative & signal intelligence for AI agents, over REST and MCP. Self-serve a key, then call. Every figure is source-attributed; data signals carry their caliber (source / series id).

// 01

Quickstart

rest
# 1 · self-serve a demo key (no signup)
KEY=$(curl -s -X POST https://api.signaldaemon.com/v1/request-key | jq -r .key)

# 2 · the day's ranked narratives + derived signals (cached, instant)
curl -s https://api.signaldaemon.com/v1/narratives \
  -H "x-api-key: $KEY" -d '{"limit":8}'

# 3 · clean narrative feed for a topic
curl -s https://api.signaldaemon.com/v1/feed \
  -H "x-api-key: $KEY" -d '{"query":"restaking","limit":8}'
mcp — agent native
{ "mcpServers": { "signaldaemon": {
  "url": "https://api.signaldaemon.com/mcp",
  "headers": { "x-api-key": "<KEY>" } } } }
// tools: get_market_narratives(limit) · get_clean_feed(query, category, limit)
// 02

Endpoints

method · pathauthdescription
POST /v1/request-key
Mint a demo key (idempotent per IP). Returns key, expires, quota.
POST /v1/narratives
x-api-keyDay's ranked narratives + signals + market snapshot. Cached, instant. Body: {limit}.
POST /v1/feed
x-api-keyClean narrative feed for a query/topic. Body: {query, category?, limit}.
GET /mcp
x-api-keyMCP (Streamable HTTP). Tools: get_market_narratives, get_clean_feed.
GET /v1/preview
Public teaser: top-4 narratives + market snapshot (no sources/full feed).
GET /v1/status
Public: operational status — source count, domains, data freshness.
// 03

Response fields

What each narrative carries (field names are stable):

name            — narrative title
gist            — one-line summary
category        — market · protocol · defi · chain · security · mining_equities ·
                  ai_infra · ai_agents · stablecoins · rwa · exchanges · regulation ·
                  macro · prediction_markets
strength        — cross-source convergence score (higher = more independent,
                  trust-weighted sources converging on the same story now)
distinct_sources / source_diversity / members
momentum        — { members_24h, members_prior } — flow acceleration
divergence      — { code, direction, vs_market, asset, price_change_7d/24h, rel_flow, breadth }
                  code ∈ narrative_price_aligned · narrative_no_flow · neutral · no_asset
                  direction ∈ up · down            — absolute 7d price move
                  vs_market ∈ outperform · underperform — rel_flow sign vs market_7d baseline
                  rel_flow  = asset 7d − market_7d  — narrative vs capital, RELATIVE to regime
                  ⚠ in a crash an asset can be vs_market=outperform yet direction=down
sources         — [ { name, tier } ] — contributing sources (auditable)
representative_items — [ { title, source, url, published_at } ]

// top-level market_snapshot:
market_snapshot — { btc/eth/sol {price,chg_24h,chg_7d}, fear_greed,
                  market_7d, market_regime ∈ crash · range · bull }

// /v1/feed items:
items           — [ { title, source, tier, url, published_at, category, summary } ]
coverage        — covered · thin   (fails safe: says "thin" rather than inventing)
// 04

Quotas & access

Demo key: 200 narratives/day, 5 feed calls/day, valid 7 days, one active key per IP/day. Auth is the x-api-key header. Quotas return HTTP 429 when exceeded.

Higher quota or institutional access — request a key at signaldaemon.com and include your use case & contact.