GET

/api/v1/signals

Published Quotient trade signals

Price $0.01 per callAuth x-quotient-api-key or x402Limit 1/s · 30/min · 5,000/day

Parameters

NameInTypeDescription
windowqueryintegerLookback window in hours for the latest forecast update, not signal publication. Active signals may have been published earlier. Default: 24
statusquerystringComma-separated subset of: actionable, unconfirmed, paused, done, retired. Default: actionable, unconfirmed (paused, done, and retired rows are omitted).
sidequery"YES" | "NO"Filter by the signal's trade side
marketquerystringFilter by market slug
venuequery"polymarket" | "polymarket_us" | "kalshi" | "limitless"Optional prediction-market venue filter. Omit it on catalog/feed routes to include every covered venue. On legacy slug or condition-ID lookups, omission retains the Polymarket namespace; prefer marketKey for collision-safe cross-venue lookup.
min_convictionqueryintegerMinimum conviction tier (1-3). Tiers measure the forecaster's ensemble-draw agreement, not spread.
min_capacity_usdquerynumberMinimum near-touch capacity in USD (capacity_usd_at_2c). Signals with unknown capacity pass only via the volume fallback (24h volume >= 5000).
exclude_drawdown_riskquerybooleanWhen true, omit signals whose drawdown_risk_elevated is true. Signals with a null read (no risk-model coverage) are kept — null means unknown, not safe.
exclude_crash_riskquerybooleanDeprecated former name for exclude_drawdown_risk. Accepted for one release; exclude_drawdown_risk wins when both are sent.

Response fields

FieldTypeMeaning
signalsTradeSignalItem[]

Billing and limits

Calls are billed to prepaid credits, or per call over x402. The price above is the reference price; the 402 challenge returned at request time is what a call actually costs.

One request may be in flight at a time, and request starts must be at least one second apart. A rejected 429 is not billed. See rate limits.

curl
curl -H "x-quotient-api-key: qt_…" \
  "https://quotient-api-gateway.onrender.com/api/v1/signals"

Run sends this request with preset parameters on Quotient’s demo key. Your credits are not spent.

200 · application/json
{
  "signals": [
    {
      "id": "3f9d2c1e-6b7a-4f7e-9c2d-1a2b3c4d5e6f",
      "created_at": "2026-08-01T14:15:00Z",
      "published_at": "2026-08-01T14:15:00Z",
      "forecast_updated_at": "2026-08-03T16:20:00Z",
      "is_new_today": false,
      "is_fresh": true,
      "is_active": true,
      "side": "NO",
      "entry_q": 22,
      "entry_pm": 44,
      "entry_spread_pp": 22,
      "window_days": 12,
      "resolves_in_window": false,
      "status": "actionable",
      "retired_reason": null,
      "conviction_tier": 3,
      "conviction": "high",
      "has_band": true,
      "latest_q": 0.22,
      "q_side": "NO",
      "q_value_cents": 78,
      "entry_cost_cents": 56,
      "current_cost_cents": 58,
      "distance_to_convergence_cents": 20,
      "converge_upside_pct": 34,
      "live_priced": true,
      "priced_at": "2026-08-01T16:00:00Z",
      "capacity_usd_at_2c": 3400,
      "capacity_available": true,
      "capacity_basis": "depth-2c",
      "capacity_as_of": "2026-08-01T02:31:00Z",
      "drawdown_risk_elevated": false,
      "crash_risk_elevated": false,
      "market": {
        "venue": "polymarket",
        "nativeMarketId": "789012",
        "nativeEventId": "34567",
        "seriesTicker": null,
        "marketKey": "polymarket:789012",
        "slug": "russia-ukraine-ceasefire-2026",
        "marketUrl": "https://polymarket.com/event/russia-ukraine-ceasefire-2026",
        "sourceUrl": "https://gamma-api.polymarket.com/markets/789012",
        "question": "Will there be a Russia-Ukraine ceasefire in 2026?",
        "condition_id": "0x1234abcd",
        "end_date": "2026-12-31T00:00:00Z",
        "market_odds": 0.42,
        "volume_24h": 120000,
        "quotientUrl": "https://app.quotient.social/market/polymarket%3A789012",
        "polymarketUrl": "https://polymarket.com/event/russia-ukraine-ceasefire-2026"
      }
    }
  ]
}