GET

/api/v1/markets/{slug}/forecast

Q's forecast for a market

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

Parameters

NameInTypeDescription
slugpath, requiredstringMarket slug, nativeMarketId, or marketKey
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.
historyqueryintegerNumber of prior forecasts to include for intraforecast diffing (0-10)

Response fields

FieldTypeMeaning
marketCanonicalMarketWithRelationships
market_slugstring
questionstring
market_oddsnumber
end_datestring
quotientUrlstring
polymarketUrlstringLegacy Polymarket navigation alias. Populated only for Polymarket International rows and null for Polymarket US, Kalshi, and Limitless; use marketUrl for venue-neutral navigation.
forecastForecastRead
historyForecastRead[]Prior forecasts, newest first (per the history param)

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/markets/<slug>/forecast"

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

200 · application/json
{
  "market": {
    "venue": "polymarket",
    "nativeMarketId": "…",
    "nativeEventId": "…",
    "seriesTicker": "…",
    "marketKey": "…",
    "slug": "…",
    "marketUrl": "…",
    "sourceUrl": "…",
    "relationships": {
      "assets": [
        {}
      ],
      "markets": [
        {}
      ],
      "signals": [
        {}
      ],
      "truncated": {
        "assets": false,
        "markets": false,
        "signals": false
      }
    }
  },
  "market_slug": "…",
  "question": "…",
  "market_odds": 0,
  "end_date": "…",
  "quotientUrl": "…",
  "polymarketUrl": "…",
  "forecast": {
    "venue": "polymarket",
    "market": {
      "venue": "polymarket",
      "nativeMarketId": "…",
      "nativeEventId": "…",
      "seriesTicker": "…",
      "marketKey": "…",
      "slug": "…",
      "marketUrl": "…",
      "sourceUrl": "…"
    },
    "id": "…",
    "probability": 0,
    "created_at": "…",
    "headline": "…",
    "bluf": "…",
    "thesis": "…",
    "crux": "…",
    "resolution_pathway": {
      "criteria": "…",
      "crux": "…",
      "deadline": "…",
      "source": "…"
    },
    "delta_from_prior": 0,
    "delta_reasoning": "…",
    "prior_forecast_id": "…",
    "refresh_reason": "…",
    "refresh_triggered_by": "…",
    "conviction_tier": 0,
    "draw_std_log_odds": 0,
    "draw_count": 0,
    "band25": 0,
    "band75": 0,
    "drawdown_risk_72h": {
      "yes": false,
      "no": false
    },
    "crash_risk": {
      "yes": false,
      "no": false
    },
    "relationships": {
      "assets": [
        {}
      ],
      "markets": [
        {}
      ],
      "signals": [
        {}
      ],
      "truncated": {
        "assets": false,
        "markets": false,
        "signals": false
      }
    }
  },
  "history": [
    {
      "venue": "polymarket",
      "market": {
        "venue": "polymarket",
        "nativeMarketId": "…",
        "nativeEventId": "…",
        "seriesTicker": "…",
        "marketKey": "…",
        "slug": "…",
        "marketUrl": "…",
        "sourceUrl": "…"
      },
      "id": "…",
      "probability": 0,
      "created_at": "…",
      "headline": "…",
      "bluf": "…",
      "thesis": "…",
      "crux": "…",
      "resolution_pathway": {
        "criteria": "…",
        "crux": "…",
        "deadline": "…",
        "source": "…"
      },
      "delta_from_prior": 0,
      "delta_reasoning": "…",
      "prior_forecast_id": "…",
      "refresh_reason": "…",
      "refresh_triggered_by": "…",
      "conviction_tier": 0,
      "draw_std_log_odds": 0,
      "draw_count": 0,
      "band25": 0,
      "band75": 0,
      "drawdown_risk_72h": {
        "yes": false,
        "no": false
      },
      "crash_risk": {
        "yes": false,
        "no": false
      },
      "relationships": {
        "assets": [
          {}
        ],
        "markets": [
          {}
        ],
        "signals": [
          {}
        ],
        "truncated": {
          "assets": false,
          "markets": false,
          "signals": false
        }
      }
    }
  ]
}