GET
/api/public/forecast-availability
Check whether Quotient already has a market forecast
Auth x-quotient-api-key or x402
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| market_key | query | string | Preferred canonical marketKey. Mutually exclusive with market_id and slug; do not also provide venue. |
| market_id | query | string | Venue-native market ID. Mutually exclusive with market_key and slug; venue is required. |
| slug | query | string | Market slug. Mutually exclusive with market_key and market_id; venue defaults to polymarket. |
| venue | query | "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. |
Response fields
| Field | Type | Meaning |
|---|---|---|
| tracked | boolean | Whether the market identity currently resolves to a Quotient Market row. |
| available | boolean | Whether a committed stored forecast exists. This check is free. |
| market | CanonicalMarketWithRelationships | |
| question | string | |
| latestForecast | object | Existence metadata only. Probability and research remain in the paid forecast response. |
| read | object | |
| generation | object |
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/public/forecast-availability"200 · application/json
{
"tracked": false,
"available": false,
"market": {
"venue": "polymarket",
"nativeMarketId": "…",
"nativeEventId": "…",
"seriesTicker": "…",
"marketKey": "…",
"slug": "…",
"marketUrl": "…",
"sourceUrl": "…",
"relationships": {
"assets": [
{}
],
"markets": [
{}
],
"signals": [
{}
],
"truncated": {
"assets": false,
"markets": false,
"signals": false
}
}
},
"question": "…",
"latestForecast": {
"id": "…",
"createdAt": "…",
"relationships": {
"assets": [
{}
],
"markets": [
{}
],
"signals": [
{}
],
"truncated": {
"assets": false,
"markets": false,
"signals": false
}
}
},
"read": {
"method": "…",
"endpoint": "…",
"paid": false
},
"generation": {
"method": "…",
"endpoint": "…",
"authentication": "…",
"idempotencyKeyRequired": false,
"body": {
"kind": "…",
"venue": "polymarket",
"market_id": "…"
}
}
}