Krok Odds

Other Sports API endpoints

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

9 of 22 endpoints · all categories · get a free API key

GET/api/v1/boxing/fight-resultsFree tier

Boxer career fight-results ledger (record, KO count, full fight list) by boxer slug or the most recently updated boxers.

Tier detail: Live but unpopulated: the route responds 200 with an empty list because no data flows into it yet (verified 2026-10-08). Treat as unavailable until rows appear.

Gated on the 'gameday' feature (not 'multisport') even though it's a static career record, not a live gameday signal — likely a copy/paste from another handler. No cold-archive fallback; hand-rolled auth preamble (predates the standard v1 route factory helper) so it has no explicit the credit cost/refund-on-empty logic.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key. Also accepted as ?apikey= or ?api_key=.
boxer_slugstringNo–Exact boxer slug; when set, does a direct single-document lookup instead of a listing query and ignores since/limit ordering.
sincestring (ISO date)No–Only return boxers updated on/after this date. Clamped to the key's historical-window entitlement.
limitintegerNo50Max rows. Capped at 50 (free) / 2000 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/boxing/fight-results?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "boxer_slug": "marcus-oyelaran",
      "name": "Marcus Oyelaran",
      "total_fights": 24,
      "wins": 21,
      "losses": 2,
      "draws": 1,
      "no_contests": 0,
      "ko_wins": 15,
      "fights": [
        {
          "opponent": "Diego Salazar",
          "date": "2026-08-15",
          "result": "W",
          "method": "KO",
          "round": 6
        },
        {
          "opponent": "Kwame Boateng",
          "date": "2026-05-02",
          "result": "W",
          "method": "UD",
          "round": 12
        }
      ],
      "updated_at": "2026-09-02T11:14:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "free",
    "limit": 50,
    "requested_limit": 50,
    "boxer_slug": "marcus-oyelaran",
    "since": null,
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 50,
      "remaining": 942,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/cricket/inningsFree tier

Cricsheet ball-by-ball derived per-player batting/bowling innings lines.

Returns 400 'sport_key, match_type, or season parameter required' if none supplied. When only match_type or season is given, over-fetches limit*6 rows and filters client-side, so results can be sparse relative to the requested limit on a narrow slice.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
sport_keystringYes–Filter by internal sport/competition key. If set, this is the single indexed equality filter; match_type/season are applied in-memory afterward.
match_typestringYes–e.g. 'T20', 'ODI', 'Test'. Used as the indexed filter only when sport_key is absent.
seasonstringYes–Season label, e.g. '2026'. Stored/compared as a string, not a number.
limitintegerNo100Max rows. Capped at 100 (free) / 500 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/cricket/innings?X-API-Key=value&sport_key=aussierules_afl&match_type=value"
Example response
{
  "success": true,
  "data": [
    {
      "id": "bbl2026-m34-innings-rt-smith",
      "sportKey": "cricket_big_bash",
      "matchType": "T20",
      "season": "2026",
      "matchId": "bbl2026-m34",
      "player": "R. Thomson-Smith",
      "team": "Perth Scorchers",
      "battingRuns": 62,
      "battingBalls": 41,
      "fours": 6,
      "sixes": 3,
      "wickets": 0,
      "oversBowled": 0,
      "runsConceded": 0,
      "fetchedAt": "2026-09-02T13:05:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "free",
    "limit": 100,
    "requested_limit": 100,
    "sport_key": "cricket_big_bash",
    "match_type": null,
    "season": null,
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 100,
      "remaining": 3,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/cricket/liveAPI plan

Recent/live cricket match snapshots (from the general the cricket match archive archive, most-recently-fetched first).

Named 'live' but gated on 'historical' (paid-only) and reads a plain archive table sorted by fetchedAt DESC — no is-live/status filter server-side, so callers must filter status client-side. Free tier cannot access this endpoint at all.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
sportKeystringNo–Filter by sport/competition key.
limitintegerNo100Max rows. Capped at 20 (free) / 50 (api) — note the config cap is far below the parse default of 100.
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/cricket/live?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "id": "cm-2026-09-03-ind-vs-eng",
      "sportKey": "cricket_test_match",
      "status": "in_progress",
      "homeTeam": "India",
      "awayTeam": "England",
      "venue": "Wankhede Stadium, Mumbai",
      "session": "Day 3, Session 2",
      "score": {
        "home": "312/6",
        "away": "not yet batted"
      },
      "fetchedAt": "2026-09-03T03:55:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 50,
    "requested_limit": 100,
    "sportKey": "cricket_test_match",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 50,
      "remaining": 1998,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/cycling/resultsAPI plan

Historical cycling race results (stage/GC placings).

Tier detail: Live but unpopulated: the route responds 200 with an empty list because no data flows into it yet (verified 2026-10-08). Treat as unavailable until rows appear.

Paid-only ('historical' feature). No date-range param — only exact race-name match; free tier gets a 402 regardless of params.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
racestringNo–Exact race name filter.
limitintegerNo100Max rows. Capped at 20 (free) / 50 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/cycling/results?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "race": "Vuelta a Espana",
      "stage": 18,
      "date": "2026-09-02",
      "rider": "Tobias Halvorsen",
      "team": "Visma | Lease a Bike",
      "position": 1,
      "time": "4:12:08",
      "gc_position": 2,
      "fetchedAt": "2026-09-02T18:40:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 20,
    "requested_limit": 100,
    "race": "Vuelta a Espana",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 20,
      "remaining": 1997,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/cycling/ridersAPI plan

Cycling rider profiles/roster records.

Both name and team filters are exact-match equality, no partial/fuzzy search.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
namestringNo–Exact rider name filter.
teamstringNo–Exact team name filter.
limitintegerNo100Max rows. Capped at 50 (free) / 200 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/cycling/riders?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "name": "Tobias Halvorsen",
      "team": "Visma | Lease a Bike",
      "nationality": "Norway",
      "dob": "1999-04-11",
      "specialty": "Climber",
      "fetchedAt": "2026-08-30T09:00:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 50,
    "requested_limit": 100,
    "name": null,
    "team": "Visma | Lease a Bike",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 50,
      "remaining": 1996,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/cycling/startlistsAPI plan

Cycling race startlists by race and date.

Both filters exact-match; no range query for date.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
racestringNo–Exact race name filter.
datestring (YYYY-MM-DD)No–Exact date filter.
limitintegerNo100Max rows. Capped at 20 (free) / 50 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/cycling/startlists?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "race": "Vuelta a Espana",
      "date": "2026-09-03",
      "stage": 19,
      "riders": [
        {
          "name": "Tobias Halvorsen",
          "team": "Visma | Lease a Bike",
          "bib": 21
        },
        {
          "name": "Elia Fontaine",
          "team": "UAE Team Emirates",
          "bib": 1
        }
      ],
      "fetchedAt": "2026-09-03T00:30:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 20,
    "requested_limit": 100,
    "race": "Vuelta a Espana",
    "date": "2026-09-03",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 20,
      "remaining": 1995,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/esports/leaguesAPI plan

Esports league/competition metadata.

Simple single-filter listing, no search-by-name.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
sportKeystringNo–Filter by sport/game key, e.g. 'esports_lol'.
limitintegerNo100Max rows. Capped at 50 (free) / 200 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/esports/leagues?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "sportKey": "esports_lol",
      "leagueId": "lck-2026-summer",
      "name": "LCK 2026 Summer",
      "region": "Korea",
      "game": "League of Legends",
      "season": "2026 Summer",
      "fetchedAt": "2026-08-28T05:00:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 50,
    "requested_limit": 100,
    "sportKey": "esports_lol",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 50,
      "remaining": 1994,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/esports/matchesAPI plan

Esports match schedule/results, ordered by start time ascending.

Ordered by $.beginAt ASC (upcoming-first), unlike most sibling endpoints which order DESC by fetchedAt.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
sportKeystringNo–Filter by sport/game key.
statusstringNo–Match status filter, e.g. 'not_started', 'running', 'finished'.
limitintegerNo100Max rows. Capped at 50 (free) / 200 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/esports/matches?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "sportKey": "esports_csgo",
      "matchId": "blast-premier-fall-2026-m12",
      "status": "not_started",
      "league": "BLAST Premier Fall Groups 2026",
      "teamA": "Team Vitality",
      "teamB": "Natus Vincere",
      "beginAt": "2026-09-04T10:00:00.000Z",
      "bestOf": 3,
      "fetchedAt": "2026-09-03T02:00:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 50,
    "requested_limit": 100,
    "sportKey": "esports_csgo",
    "status": "not_started",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 50,
      "remaining": 1993,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}
GET/api/v1/esports/teamsAPI plan

Esports team profiles/roster metadata.

Same skeleton as esports/leagues, single equality filter on sportKey.

Query parameters
NameTypeRequiredDefaultDescription
X-API-KeystringYes–API key.
sportKeystringNo–Filter by sport/game key.
limitintegerNo100Max rows. Capped at 50 (free) / 200 (api).
Example request
curl \
  -H "X-API-Key: YOUR_KEY" \
  "https://krokodds.com.au/api/v1/esports/teams?X-API-Key=value"
Example response
{
  "success": true,
  "data": [
    {
      "sportKey": "esports_lol",
      "teamId": "t1",
      "name": "T1",
      "region": "Korea",
      "roster": [
        "Zeus",
        "Oner",
        "Faker",
        "Gumayusi",
        "Keria"
      ],
      "fetchedAt": "2026-08-25T06:00:00.000Z"
    }
  ],
  "meta": {
    "count": 1,
    "tier": "api",
    "limit": 50,
    "requested_limit": 100,
    "sportKey": "esports_lol",
    "timestamp": "2026-09-03T04:00:00.000Z",
    "rate_limit": {
      "limit": 50,
      "remaining": 1992,
      "reset": "2026-10-01T00:00:00.000Z"
    }
  }
}

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.

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.

Prediction Markets3 endpoints

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