API documentation
Interactive API reference (OpenAPI / Swagger) is available once you have access. Your API base URL and a direct link to the docs are shown in the client portal after you sign in. A future option is a public read-only schema snapshot on this page for pre-signup evaluation—contact us if you need it prioritized.
Signal API is an events-first service: /v1/events is the primary feed (RSS clusters plus optional Polymarket/Kalshi as events), /v1/news serves LLM-synthesized articles grounded on those event clusters, and markets/proposals sit on the same graph. Eventa is a named slice—see below and Eventa service page.
Events API
Endpoints: /v1/events/latest (RSS/clustered events by default), /v1/events/trending, /v1/events/by-country, /v1/events/by-category, /v1/events/{event_id}. Responses may include interest_score, has_temporal_event, and event_time_hint after the LLM pipeline has scored the cluster. Auth: X-API-Key or api_key. Polymarket: GET /v1/markets/polymarket. Kalshi (when enabled): GET /v1/markets/kalshi. Optional merge: include_polymarket=true or include_kalshi=true on /v1/events/latest — Polymarket rows may include polymarket_clob_midpoint; Kalshi rows use implied_probability only (YES price / mid).
Health / readiness: GET /ready returns last_successful_ingestion_at, ingestion_stale, and status of ready or degraded (stale ingestion; still HTTP 200 for liveness probes). See also the Events API service page.
Eventa API
Eventa is multilingual curated RSS (when the API host enables bounded global Eventa ingestion) plus filtered proposal reads. It uses the same clustered events as Live—there is no separate Eventa events path. Read clusters with the usual /v1/events/latest, /v1/events/trending, /v1/events/by-country, /v1/events/by-category, and GET /v1/events/{event_id}. Same X-API-Key / api_key as other /v1/* routes.
Eventa-only route for proposals: GET /v1/eventa/proposals — optional language, region, country (cluster country), proposal_kind (yes_no, up_down, threshold — LLM more_less/bigger_smaller map to threshold; see llm_hypothesis_type for the original), min_impact, min_confidence, min_interest, status. Unfiltered list: GET /v1/markets/proposals.
News Synthesis API
LLM articles grounded on event-cluster facts (same graph as /v1/events). Read: /v1/news/latest, /v1/news/by-country, /v1/news/by-category, /v1/news/{article_id}. Editorial POST routes exist for trusted operators—see News service page. Filters: language, country, confidence, date range.
Markets API
GET /v1/markets/proposals, POST /v1/markets/proposals (optional Eventa fields: cluster_id, proposal_kind, direction_hint, impact_score, confidence, interest_score, language, region, assets), GET /v1/markets/polymarket (Gamma fields, clob_midpoint when live scan runs), GET /v1/markets/kalshi (Kalshi Trade API snapshot). Same API key. Crypto payment. Polymarket architecture: docs/POLYMARKET_GAMMA_AND_CLOB.md.