Krok Odds

Prediction Markets API endpoints

Polymarket and Kalshi sentiment plus a universal prediction-market catalogue and resolutions feed.

3 of 3 endpoints · all categories · get a free API key

GET/api/v1/prediction-markets/sentimentFree tier

Directional sentiment (bullish/bearish/neutral) derived from Polymarket + Kalshi consensus pricing, plus a heuristic market-disagreement flag.

Tier detail: free — 'prediction_markets' IS in the free-tier feature set

Cache: 120s flat (no per-tier split). Only status='open' rows queried. direction: bullish if consensus>0.6, bearish if <0.4, else neutral. disagreement: bid-ask spread>0.15 OR (2+ outcome prices, top two within 0.1 of each other) — reads as inverted/odd logic, worth flagging in docs. Uses the standard auth guard/v1Success helper, not the standard v1 route factory.

Query parameters
NameTypeRequiredDefaultDescription
sport_keystringNo–ILIKE substring match against the market question text (not a structured sport field), e.g. 'NFL', 'AFL', 'EPL'.
categorystringNo–Exact match on platform_category.
sourcestringNoboth'polymarket' or 'kalshi'. 400 on any other value.
limitintegerNo50Clamped 1-200 (MAX_LIMIT=200).
offsetintegerNo0Pagination offset.
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/prediction-markets/sentiment?sport_key=aussierules_afl"
Example response
{
  "success": true,
  "data": [
    {
      "id": "pm_will-chiefs-win-super-bowl-lx",
      "source": "polymarket",
      "question": "Will the Kansas City Chiefs win Super Bowl LX?",
      "category": "sports",
      "consensus_probability": 0.183,
      "volume": 842000,
      "liquidity": 61500,
      "price_direction": "bearish",
      "market_disagreement": false,
      "status": "open",
      "end_date": "2027-02-14",
      "fetched_at": "2026-09-03T03:45:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "license": "krokodds-derived",
    "filter": {
      "sport_key": "NFL",
      "category": null,
      "source": null
    },
    "sentiment_summary": {
      "bearish": 1
    },
    "note": "Prediction market sentiment derived from Polymarket + Kalshi pricing. Direction is heuristic from consensus probability.",
    "limit": 50
  }
}
GET/api/v1/prediction-markets/universalFree tier

Full-catalog Polymarket + Kalshi markets across EVERY category (weather, politics, crypto, economics, sports) — not just sports-matched markets. Synced every 30 min by the market sync scheduled sync.

Cache: 120s flat. Distinct from /api/v1/odds-feed/prediction-markets, which serves the sports-matched subset (the prediction-market store table) — this route is the raw full catalog (the prediction-market catalogue table), not sport-filtered server-side (only via question-text search).

Query parameters
NameTypeRequiredDefaultDescription
sourcestringNo–'polymarket' or 'kalshi'. 400 on invalid value.
categorystringNo–Exact match on platform_category.
statusstringNoopenOne of open|closed|settled|halted. 400 on invalid value.
limitintegerNo50Clamped 1-200.
offsetintegerNo0Pagination offset.
searchstringNo–Case-insensitive ILIKE match on question text.
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/prediction-markets/universal?source=value"
Example response
{
  "success": true,
  "data": [
    {
      "id": "pm_us-fed-rate-cut-september-2026",
      "source": "kalshi",
      "platform_category": "economics",
      "market_id": "FED-RATE-SEP26",
      "question": "Will the Fed cut rates at the September 2026 FOMC meeting?",
      "description": "Resolves YES if the FOMC announces a rate cut at its September 2026 meeting.",
      "outcomes": [
        "Yes",
        "No"
      ],
      "outcome_prices": [
        0.71,
        0.29
      ],
      "status": "open",
      "result": null,
      "volume": 1250000,
      "liquidity": 98000,
      "best_bid": 0.7,
      "best_ask": 0.72,
      "end_date": "2026-09-18",
      "created_at": "2026-07-01T00:00:00.000Z",
      "fetched_at": "2026-09-03T03:30:00.000Z",
      "resolved_at": null
    }
  ],
  "meta": {
    "count": 1,
    "license": "krokodds-proprietary",
    "filter": {
      "source": null,
      "category": "economics",
      "status": "open",
      "search": null
    },
    "pagination": {
      "limit": 50,
      "offset": 0
    },
    "note": "Full-catalog Polymarket + Kalshi markets across every category. Synced every 30 minutes.",
    "limit": 50
  }
}
GET/api/v1/prediction-markets/universal/resolutionsFree tier

Append-only archive of RESOLVED Polymarket + Kalshi markets (final outcome + prices at resolution), with a day-based lookback window.

Cache: 120s flat. Separate the market-resolutions store table (distinct from the prediction-market catalogue) — append-only, never mutated after resolution. No explicit historical-days tier clamp applied to `days` param (unlike historical/* routes' since/from clamp) — same 30/365-day window available to free and api tiers alike.

Query parameters
NameTypeRequiredDefaultDescription
sourcestringNo–'polymarket' or 'kalshi'. 400 on invalid value.
categorystringNo–Exact match on platform_category.
daysintegerNo30Lookback window in days for resolved_at, clamped 1-365.
limitintegerNo50Clamped 1-200.
offsetintegerNo0Pagination offset.
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/prediction-markets/universal/resolutions?source=value"
Example response
{
  "success": true,
  "data": [
    {
      "id": "pm_us-fed-rate-cut-july-2026",
      "source": "kalshi",
      "market_id": "FED-RATE-JUL26",
      "question": "Will the Fed cut rates at the July 2026 FOMC meeting?",
      "platform_category": "economics",
      "outcomes": [
        "Yes",
        "No"
      ],
      "result": "No",
      "final_prices": [
        0.05,
        0.95
      ],
      "volume_at_resolution": 980000,
      "resolved_at": "2026-07-30T18:00:00.000Z",
      "captured_at": "2026-07-30T18:05:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "license": "krokodds-proprietary",
    "filter": {
      "source": "kalshi",
      "category": "economics",
      "days": 30
    },
    "pagination": {
      "limit": 50,
      "offset": 0
    },
    "note": "Resolved Polymarket + Kalshi markets, append-only resolution archive.",
    "limit": 50
  }
}

Other categories

Gameday8 endpoints

Per-event head-to-head odds, alternate lines, best prices across books, player props, live state and AI-generated summaries.

Opportunities7 endpoints

Krok's built-in scanners — arbitrage, positive EV, middles, low-holds, player props and same-game multi (SGM) picks, already devigged against a blended sharp baseline.

Racing23 endpoints

The full Australian racing stack — thoroughbred, harness and greyhound. Meetings and runner fields, form, sectionals, ratings, market movers, exchange arbs, tote pools and results.

Odds Feed16 endpoints

Raw per-bookmaker prices as scraped, before any analysis layer. `/scraped-odds/*` paths are aliases of the equivalent `/odds-feed/*` route.

Sports8 endpoints

Sport reference data, team form guides, league standings, injury reports and weather-impact analysis.

Tips & Predictions4 endpoints

AI-generated betting tips with confidence scores and historical accuracy tracking.

Insights1 endpoint

Ranked leaderboards built on top of the stat feeds — per-sport player leaders for a chosen stat, season and view.

Tennis5 endpoints

ATP/WTA rankings, upcoming fixtures, match results, Elo ratings and surface-specific stats.

Historical7 endpoints

Deep archives — player and team game logs, shot charts, AFL/NRL historical data. Paid API plan only.

Reference7 endpoints

Static lookup data for building your own UI — players, venues, headshots, team logos and sport/league metadata.

Other Sports22 endpoints

Cricket, cycling, esports, Formula 1, golf, MMA, boxing, NFL and soccer coverage beyond the AU staples.

Infrastructure15 endpoints

Account and billing endpoints, bulk export, SSE streaming, webhook management and API health.

Additional Data19 endpoints

Odds history, steam-move detection, player prop stats/results, injuries, weather and other supporting feeds.