{"openapi":"3.1.0","info":{"title":"DENPA API","version":"1.0.0","description":"The Denpa broadcast network API. Attention and money are the same signal.\n\n## Generative Channel Protocol\n\nEvery channel on the network is a fork of the base transmission protocol. You define the manifest — the signal runs.\n\nDenpa treats `.m3u` playlist construction and interactive video as a creative practice. A generative channel is not a stream submission — it is a persistent broadcast identity on the network, with its own manifest, signal state, and market surface.\n\n**To fork a channel:**\n1. Submit a channel definition via `POST /api/v1/channels/fork` with a name, manifest URL or inline playlist, and signal class\n2. The network assigns a channel ID and registers the manifest\n3. Your channel enters the broadcast rotation and begins accumulating signal weight\n4. Update your manifest at any time via `PUT /api/v1/channels/{id}/manifest`\n\n**Manifest format:** Standard `.m3u8` / HLS extended playlist. Interactive segments may include `#DENPA-SIGNAL` and `#DENPA-PRIME` tags to declare market-linked breakpoints. These tags are parsed by the broadcast engine and surface as tradeable events.\n\n**Signal classes:** `GENERATIVE` (algorithmic / synthesized) · `LIVE` (real-time RTMP) · `CURATED` (editorial sequence) · `INTERACTIVE` (viewer-state-driven)\n\nPublic endpoints require no auth. Agent endpoints require an API key obtained via `POST /api/v1/agent/keys`.","contact":{"name":"Denpa","url":"https://web-production-112ca.up.railway.app/developers"}},"servers":[{"url":"https://api-production-802f5.up.railway.app","description":"Production"}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Agent API key. Obtain via POST /api/v1/agent/keys using SIWE authentication."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error code"},"message":{"type":"string","description":"Human-readable message"}},"required":["error"]},"LeaderboardRow":{"type":"object","properties":{"id":{"type":"string"},"rank":{"type":"integer","minimum":1},"name":{"type":"string"},"sport":{"type":"string"},"probability":{"type":"number","minimum":0,"maximum":100,"description":"Win probability 0–100%"},"volume":{"type":"number","description":"USD volume traded"},"volDelta":{"type":"number","description":"USD volume change since last tick"},"momentum":{"type":"integer","description":"Rank delta — positive = moved up"},"isPrime":{"type":"boolean","description":"PRIME volatility breakout state"}},"required":["id","rank","name","sport","probability","volume","volDelta","momentum","isPrime"]},"Market":{"type":"object","properties":{"marketId":{"type":"string"},"showId":{"type":"string"},"question":{"type":"string"},"yesPrice":{"type":"number","minimum":0,"maximum":1},"noPrice":{"type":"number","minimum":0,"maximum":1},"volume":{"type":"number"},"active":{"type":"boolean"},"prime":{"type":"boolean"}}},"FeedState":{"type":"object","properties":{"source":{"type":"string","description":"Active broadcast source ID"},"prime":{"type":"boolean","description":"PRIME state active"},"topSignal":{"type":"string","description":"Top ranked signal name"},"volume":{"type":"number","description":"Total USD traded this session"},"timestamp":{"type":"string","format":"date-time"}}},"PrimeStatus":{"type":"object","properties":{"active":{"type":"boolean"},"volatilityIndex":{"type":"number","minimum":0,"maximum":100},"remainingSeconds":{"type":"number","nullable":true},"triggeredAt":{"type":"string","format":"date-time","nullable":true}},"required":["active","volatilityIndex"]},"ApiKey":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"key":{"type":"string","description":"Raw key — only returned on creation"},"permissions":{"type":"array","items":{"type":"string","enum":["read","trade","prime:trigger","overlay"]}},"createdAt":{"type":"string","format":"date-time"},"lastUsedAt":{"type":"string","format":"date-time","nullable":true}}},"Quote":{"type":"object","properties":{"marketId":{"type":"string"},"side":{"type":"string","enum":["YES","NO"]},"size":{"type":"number"},"price":{"type":"number"},"priceImpact":{"type":"number"},"fee":{"type":"number"},"total":{"type":"number"}}},"Channel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"shortName":{"type":"string"},"city":{"type":"string"},"genres":{"type":"array","items":{"type":"string"}},"isLive":{"type":"boolean"},"showTitle":{"type":"string","nullable":true},"streamUrl":{"type":"string","nullable":true},"youtubeChannelId":{"type":"string","nullable":true}}},"GenerativeChannel":{"type":"object","description":"A forked broadcast channel with its own manifest and signal identity on the network.","properties":{"id":{"type":"string","description":"Network-assigned channel ID"},"name":{"type":"string","description":"Channel name — appears in the broadcast schedule and leaderboard"},"signalClass":{"type":"string","enum":["GENERATIVE","LIVE","CURATED","INTERACTIVE"],"description":"Transmission class — determines how the broadcast engine routes signal events"},"manifestUrl":{"type":"string","format":"uri","nullable":true,"description":"External .m3u8 manifest URL"},"manifestInline":{"type":"string","nullable":true,"description":"Inline .m3u8 playlist content (alternative to manifestUrl)"},"status":{"type":"string","enum":["PENDING","ACTIVE","IDLE","SUSPENDED"],"description":"Transmission status — PENDING during review, ACTIVE when on air"},"signalWeight":{"type":"number","description":"Current attention weight on the network (0–1)"},"primeEnabled":{"type":"boolean","description":"Whether PRIME breakpoints in the manifest are active"},"createdAt":{"type":"string","format":"date-time"},"owner":{"type":"string","description":"Ethereum address of the channel operator"}},"required":["id","name","signalClass","status"]},"ChannelForkRequest":{"type":"object","description":"Request body for forking a new generative channel.","properties":{"name":{"type":"string","description":"Channel name"},"signalClass":{"type":"string","enum":["GENERATIVE","LIVE","CURATED","INTERACTIVE"]},"manifestUrl":{"type":"string","format":"uri","description":"URL to your .m3u8 manifest. Must be publicly reachable. Mutually exclusive with manifestInline."},"manifestInline":{"type":"string","description":"Inline .m3u8 playlist content. Stored and served by the network. Mutually exclusive with manifestUrl."},"primeEnabled":{"type":"boolean","default":false,"description":"Parse #DENPA-PRIME tags in the manifest to surface market-linked breakpoints."},"genres":{"type":"array","items":{"type":"string"},"description":"Signal genre tags (e.g. [\"electronic\", \"generative\"])"}},"required":["name","signalClass"]},"ManifestSegment":{"type":"object","description":"A single segment entry within a channel's .m3u8 manifest.","properties":{"uri":{"type":"string","format":"uri"},"duration":{"type":"number","description":"Segment duration in seconds"},"title":{"type":"string","nullable":true},"signalTag":{"type":"string","nullable":true,"description":"#DENPA-SIGNAL tag value — links this segment to a named market signal"},"primeTag":{"type":"boolean","description":"#DENPA-PRIME tag — marks this segment as a volatility breakpoint"}},"required":["uri","duration"]}}},"paths":{"/health":{"get":{"tags":["System"],"operationId":"getHealth","summary":"Service health check","responses":{"200":{"description":"Service runtime, build, and dependency health","content":{"application/json":{"schema":{"type":"object","properties":{"service":{"type":"string"},"status":{"type":"string","enum":["ok","degraded"]},"ready":{"type":"boolean"},"buildVersion":{"type":"string"},"dbAvailable":{"type":"boolean"},"redisOnline":{"type":"boolean"},"wsMode":{"type":"string","enum":["dedicated_port","shared_http_server"]},"wsPath":{"type":"string","nullable":true},"eventBusMode":{"type":"string","enum":["uninitialized","redis_streams","in_memory"]},"queueMode":{"type":"string","enum":["waves"]},"cloudflareStreamConfigured":{"type":"boolean"},"cloudflareCustomerSubdomainConfigured":{"type":"boolean"},"degradedReasons":{"type":"array","items":{"type":"string"}},"build":{"type":"object","properties":{"sha":{"type":"string","nullable":true},"shortSha":{"type":"string","nullable":true},"branch":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"environment":{"type":"string"},"service":{"type":"string"},"buildTime":{"type":"string","format":"date-time","nullable":true}}},"runtime":{"type":"object","properties":{"nodeVersion":{"type":"string"},"uptimeSec":{"type":"integer"},"startedAt":{"type":"string","format":"date-time"},"wsMode":{"type":"string","enum":["dedicated_port","shared_http_server"]},"wsPath":{"type":"string","nullable":true},"eventBusMode":{"type":"string","enum":["uninitialized","redis_streams","in_memory"]},"queueMode":{"type":"string","enum":["waves"]}}},"dependencies":{"type":"object","properties":{"db":{"type":"object","properties":{"ok":{"type":"boolean"},"lastReadyAt":{"type":"string","format":"date-time","nullable":true},"lastFailureAt":{"type":"string","format":"date-time","nullable":true},"lastFailureReason":{"type":"string","nullable":true}}},"redis":{"type":"object","properties":{"ok":{"type":"boolean"},"lastReadyAt":{"type":"string","format":"date-time","nullable":true},"lastFailureAt":{"type":"string","format":"date-time","nullable":true},"lastFailureReason":{"type":"string","nullable":true}}}}},"capabilities":{"type":"object","properties":{"queueMode":{"type":"string","enum":["waves"]},"cloudflareStreamConfigured":{"type":"boolean"},"cloudflareCustomerSubdomainConfigured":{"type":"boolean"}}},"checkedAt":{"type":"string","format":"date-time"},"timestamp":{"type":"string","format":"date-time"}},"required":["service","status","ready","buildVersion","dbAvailable","redisOnline","wsMode","wsPath","eventBusMode","queueMode","cloudflareStreamConfigured","cloudflareCustomerSubdomainConfigured","degradedReasons","build","runtime","dependencies","capabilities","checkedAt","timestamp"]}}}}}}},"/prime/status":{"get":{"tags":["Broadcast"],"operationId":"getPrimeStatus","summary":"Current PRIME state","description":"PRIME is the volatility breakout condition. Triggers when volatility index ≥ 80.","responses":{"200":{"description":"PRIME status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrimeStatus"}}}}}}},"/api/v1/feed":{"get":{"tags":["Broadcast"],"operationId":"getFeed","summary":"Current broadcast state","description":"Active source, PRIME flag, top signal, and session volume.","responses":{"200":{"description":"Feed state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FeedState"}}}}}}},"/api/v1/leaderboard":{"get":{"tags":["Market"],"operationId":"getLeaderboard","summary":"Signal leaderboard","description":"Ranked signal sources by probability and attention weight.","parameters":[{"name":"showId","in":"query","schema":{"type":"string"},"description":"Show ID (defaults to demo-show)"}],"responses":{"200":{"description":"Leaderboard rows","content":{"application/json":{"schema":{"type":"object","properties":{"rows":{"type":"array","items":{"$ref":"#/components/schemas/LeaderboardRow"}}}}}}}}}},"/api/v1/markets":{"get":{"tags":["Market"],"operationId":"getMarkets","summary":"Active Polymarket markets","description":"Live prediction markets with current YES/NO prices.","parameters":[{"name":"showId","in":"query","schema":{"type":"string"}},{"name":"fresh","in":"query","schema":{"type":"integer","enum":[0,1]},"description":"Bypass cache"}],"responses":{"200":{"description":"Markets","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Market"}}}}}}}},"/api/v1/schedule":{"get":{"tags":["Broadcast"],"operationId":"getSchedule","summary":"Upcoming broadcast schedule","description":"UTC time slots for upcoming culture and sports events.","responses":{"200":{"description":"Schedule entries","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"slot":{"type":"string","format":"date-time"},"title":{"type":"string"},"source":{"type":"string"},"genre":{"type":"string"}}}}}}}}}},"/api/v1/history":{"get":{"tags":["Market"],"operationId":"getHistory","summary":"Signal history curve","description":"Historical probability series and PRIME events for a signal.","parameters":[{"name":"eventId","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":120}}],"responses":{"200":{"description":"Signal history","content":{"application/json":{"schema":{"type":"object","properties":{"points":{"type":"array","items":{"type":"object","properties":{"t":{"type":"string","format":"date-time"},"prob":{"type":"number"},"prime":{"type":"boolean"}}}}}}}}}}}},"/api/v1/channels/live":{"get":{"tags":["Broadcast"],"operationId":"getLiveChannels","summary":"Live radio channels","description":"Partner broadcast channels currently on air.","responses":{"200":{"description":"Live channels","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Channel"}}}}}}}},"/api/v1/signals/curated":{"get":{"tags":["Signals"],"operationId":"getCuratedSignals","summary":"AI-curated Polymarket signals","description":"Claude-ranked Polymarket signals filtered for cultural relevance.","parameters":[{"name":"limit","in":"query","schema":{"type":"integer","default":20}},{"name":"category","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Curated signals","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/api/v1/polymarket/search":{"get":{"tags":["Signals"],"operationId":"searchPolymarket","summary":"Search Polymarket markets","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":10}}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/api/v1/agent/keys":{"post":{"tags":["Agent"],"operationId":"createApiKey","summary":"Create API key","description":"Create a new API key. Requires SIWE (Sign-In With Ethereum) authentication.","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Key label"},"permissions":{"type":"array","items":{"type":"string","enum":["read","trade","overlay"]}}},"required":["name"]}}}},"responses":{"201":{"description":"API key created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"get":{"tags":["Agent"],"operationId":"listApiKeys","summary":"List API keys","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"API keys for authenticated user","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}}}}}}}},"/api/v1/agent/keys/{id}":{"delete":{"tags":["Agent"],"operationId":"deleteApiKey","summary":"Revoke API key","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Key revoked"},"404":{"description":"Not found"}}}},"/api/v1/agent/markets":{"get":{"tags":["Agent"],"operationId":"listAgentMarkets","summary":"List all active markets","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Active markets","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Market"}}}}}}}},"/api/v1/agent/markets/{showId}":{"get":{"tags":["Agent"],"operationId":"getAgentMarket","summary":"Market for a specific show","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"showId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Market","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Market"}}}}}}},"/api/v1/agent/markets/{showId}/orderbook":{"get":{"tags":["Agent"],"operationId":"getOrderbook","summary":"Orderbook snapshot","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"showId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Orderbook","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/v1/agent/markets/{showId}/trades":{"get":{"tags":["Agent"],"operationId":"getTrades","summary":"Trade history","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"showId","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Trades","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}}}}},"/api/v1/agent/quote":{"post":{"tags":["Agent"],"operationId":"getQuote","summary":"Get trade quote","description":"Simulate a trade and return price impact. Does not execute.","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"marketId":{"type":"string"},"side":{"type":"string","enum":["YES","NO"]},"size":{"type":"number","description":"USD amount"}},"required":["marketId","side","size"]}}}},"responses":{"200":{"description":"Quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Quote"}}}}}}},"/api/v1/agent/trade":{"post":{"tags":["Agent"],"operationId":"executeTrade","summary":"Execute trade","description":"Execute a market order on Polymarket. Requires `trade` permission on API key.","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"marketId":{"type":"string"},"side":{"type":"string","enum":["YES","NO"]},"size":{"type":"number","description":"USD amount"},"slippagePct":{"type":"number","default":0.02,"description":"Max slippage (default 2%)"}},"required":["marketId","side","size"]}}}},"responses":{"200":{"description":"Trade executed","content":{"application/json":{"schema":{"type":"object","properties":{"orderId":{"type":"string"},"filled":{"type":"number"},"avgPrice":{"type":"number"},"status":{"type":"string","enum":["FILLED","PARTIAL","PENDING"]}}}}}},"402":{"description":"Insufficient credits"},"403":{"description":"Missing trade permission"}}}},"/api/v1/agent/credits":{"get":{"tags":["Agent"],"operationId":"getCredits","summary":"Wave credits balance","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Credits","content":{"application/json":{"schema":{"type":"object","properties":{"balance":{"type":"number"},"currency":{"type":"string"}}}}}}}}},"/api/v1/stream/submit":{"post":{"tags":["Overlay"],"operationId":"submitStream","summary":"Submit stream to segment queue","description":"Add an HLS, MP4, or iframe source to the broadcast queue. Requires API key.","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"segmentId":{"type":"string","enum":["a","b","c","d","e","f"]},"showId":{"type":"string"},"type":{"type":"string","enum":["hls","mp4","iframe"]}},"required":["url","segmentId","showId","type"]}}}},"responses":{"200":{"description":"Queued"},"401":{"description":"Unauthorized"}}}},"/api/v1/channels/generative":{"get":{"tags":["Generative"],"operationId":"listGenerativeChannels","summary":"List all generative channels","description":"Returns every forked channel registered on the network, regardless of transmission status.","parameters":[{"name":"status","in":"query","schema":{"type":"string","enum":["PENDING","ACTIVE","IDLE","SUSPENDED"]},"description":"Filter by transmission status"},{"name":"signalClass","in":"query","schema":{"type":"string","enum":["GENERATIVE","LIVE","CURATED","INTERACTIVE"]}},{"name":"limit","in":"query","schema":{"type":"integer","default":20}},{"name":"offset","in":"query","schema":{"type":"integer","default":0}}],"responses":{"200":{"description":"Generative channels","content":{"application/json":{"schema":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/GenerativeChannel"}},"total":{"type":"integer"}}}}}}}}},"/api/v1/channels/fork":{"post":{"tags":["Generative"],"operationId":"forkChannel","summary":"Fork a new generative channel","description":"Register a new broadcast channel on the network. Supply either `manifestUrl` (external .m3u8) or `manifestInline` (raw playlist). The channel enters PENDING state during network review, then transitions to ACTIVE. Once ACTIVE it is eligible for the broadcast rotation and leaderboard weight.","security":[{"ApiKeyAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChannelForkRequest"},"examples":{"generative":{"summary":"Algorithmic synthesized channel","value":{"name":"NULL SIGNAL","signalClass":"GENERATIVE","manifestUrl":"https://example.com/null-signal/index.m3u8","primeEnabled":true,"genres":["generative","noise"]}},"interactive":{"summary":"Viewer-state-driven interactive channel","value":{"name":"FIELD STUDY 001","signalClass":"INTERACTIVE","manifestInline":"#EXTM3U\n#EXT-X-VERSION:3\n#EXTINF:10.0,SEGMENT A\nhttps://example.com/seg-a.ts\n#DENPA-PRIME\n#EXTINF:10.0,SEGMENT B\nhttps://example.com/seg-b.ts","primeEnabled":true,"genres":["interactive","video art"]}}}}}},"responses":{"201":{"description":"Channel forked — enters PENDING state","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerativeChannel"}}}},"400":{"description":"Invalid manifest or missing required fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/channels/{id}":{"get":{"tags":["Generative"],"operationId":"getGenerativeChannel","summary":"Get channel state","description":"Returns current transmission status, signal weight, and manifest reference for a channel.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerativeChannel"}}}},"404":{"description":"Channel not found"}}}},"/api/v1/channels/{id}/manifest":{"get":{"tags":["Generative"],"operationId":"getChannelManifest","summary":"Get channel manifest","description":"Returns the parsed .m3u8 manifest for a channel, including any #DENPA-SIGNAL and #DENPA-PRIME segment tags.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Manifest segments","content":{"application/json":{"schema":{"type":"object","properties":{"channelId":{"type":"string"},"version":{"type":"integer"},"segments":{"type":"array","items":{"$ref":"#/components/schemas/ManifestSegment"}},"rawPlaylist":{"type":"string","description":"Raw .m3u8 content"},"updatedAt":{"type":"string","format":"date-time"}}}}}},"404":{"description":"Channel not found"}}},"put":{"tags":["Generative"],"operationId":"updateChannelManifest","summary":"Update channel manifest","description":"Replace the manifest for an existing channel. Supply a new `manifestUrl` or `manifestInline`. Changes take effect on the next broadcast engine poll cycle (≤ 30s).","security":[{"ApiKeyAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"manifestUrl":{"type":"string","format":"uri"},"manifestInline":{"type":"string"},"primeEnabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Manifest updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerativeChannel"}}}},"401":{"description":"Unauthorized"},"403":{"description":"Not channel owner"},"404":{"description":"Channel not found"}}}},"/api/v1/channels/{id}/signal":{"get":{"tags":["Generative"],"operationId":"getChannelSignalState","summary":"Get channel signal state","description":"Returns real-time signal weight, PRIME status, and market linkages for a channel. Signal weight reflects the share of network attention currently allocated to this channel.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Signal state","content":{"application/json":{"schema":{"type":"object","properties":{"channelId":{"type":"string"},"signalWeight":{"type":"number","description":"Network attention share (0–1)"},"prime":{"type":"boolean","description":"PRIME breakout active on this channel"},"rank":{"type":"integer","nullable":true,"description":"Leaderboard rank if market-linked"},"linkedMarkets":{"type":"array","items":{"type":"string"},"description":"Polymarket market IDs linked via #DENPA-SIGNAL manifest tags"},"timestamp":{"type":"string","format":"date-time"}}}}}}}}},"/api/v1/analytics":{"get":{"tags":["Overlay"],"operationId":"getAnalytics","summary":"Session analytics","description":"Duration, trade volume, and PRIME conversion rates for your integration.","security":[{"ApiKeyAuth":[]}],"responses":{"200":{"description":"Analytics","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"tags":[{"name":"System","description":"Health and status"},{"name":"Broadcast","description":"Live broadcast state — feed, schedule, PRIME, channels"},{"name":"Market","description":"Prediction market data — leaderboard, markets, history"},{"name":"Signals","description":"Signal intelligence — Polymarket search, curated signals"},{"name":"Agent","description":"Programmatic trading — API keys, quotes, execution (API key required)"},{"name":"Overlay","description":"Broadcast integration — stream submission, analytics (API key required)"},{"name":"Generative","description":"Generative channel protocol — fork, manifest, and signal management.\n\nEvery channel on the network is a fork of the base transmission protocol. You define the manifest. The signal runs.\n\n`.m3u8` playlist construction and interactive video are a creative practice here. A channel is not a stream — it is a persistent broadcast identity: its own manifest, its own signal weight, its own surface in the attention market.\n\nUse `#DENPA-SIGNAL <market-id>` in your playlist to link a segment to a live Polymarket market. Use `#DENPA-PRIME` to declare a volatility breakpoint — when that segment airs and the volatility index crosses 80, PRIME activates network-wide."}]}