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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. Also accepted as ?apikey= or ?api_key=. |
| boxer_slug | string | No | – | Exact boxer slug; when set, does a direct single-document lookup instead of a listing query and ignores since/limit ordering. |
| since | string (ISO date) | No | – | Only return boxers updated on/after this date. Clamped to the key's historical-window entitlement. |
| limit | integer | No | 50 | Max rows. Capped at 50 (free) / 2000 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/boxing/fight-results?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| sport_key | string | Yes | – | Filter by internal sport/competition key. If set, this is the single indexed equality filter; match_type/season are applied in-memory afterward. |
| match_type | string | Yes | – | e.g. 'T20', 'ODI', 'Test'. Used as the indexed filter only when sport_key is absent. |
| season | string | Yes | – | Season label, e.g. '2026'. Stored/compared as a string, not a number. |
| limit | integer | No | 100 | Max rows. Capped at 100 (free) / 500 (api). |
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"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| sportKey | string | No | – | Filter by sport/competition key. |
| limit | integer | No | 100 | Max rows. Capped at 20 (free) / 50 (api) — note the config cap is far below the parse default of 100. |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/cricket/live?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| race | string | No | – | Exact race name filter. |
| limit | integer | No | 100 | Max rows. Capped at 20 (free) / 50 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/cycling/results?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| name | string | No | – | Exact rider name filter. |
| team | string | No | – | Exact team name filter. |
| limit | integer | No | 100 | Max rows. Capped at 50 (free) / 200 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/cycling/riders?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| race | string | No | – | Exact race name filter. |
| date | string (YYYY-MM-DD) | No | – | Exact date filter. |
| limit | integer | No | 100 | Max rows. Capped at 20 (free) / 50 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/cycling/startlists?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| sportKey | string | No | – | Filter by sport/game key, e.g. 'esports_lol'. |
| limit | integer | No | 100 | Max rows. Capped at 50 (free) / 200 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/esports/leagues?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| sportKey | string | No | – | Filter by sport/game key. |
| status | string | No | – | Match status filter, e.g. 'not_started', 'running', 'finished'. |
| limit | integer | No | 100 | Max rows. Capped at 50 (free) / 200 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/esports/matches?X-API-Key=value"{
"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.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| sportKey | string | No | – | Filter by sport/game key. |
| limit | integer | No | 100 | Max rows. Capped at 50 (free) / 200 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/esports/teams?X-API-Key=value"{
"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
Per-event head-to-head odds, alternate lines, best prices across books, player props, live state and AI-generated summaries.
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.
The full Australian racing stack — thoroughbred, harness and greyhound. Meetings and runner fields, form, sectionals, ratings, market movers, exchange arbs, tote pools and results.
Raw per-bookmaker prices as scraped, before any analysis layer. `/scraped-odds/*` paths are aliases of the equivalent `/odds-feed/*` route.
Sport reference data, team form guides, league standings, injury reports and weather-impact analysis.
AI-generated betting tips with confidence scores and historical accuracy tracking.
Ranked leaderboards built on top of the stat feeds — per-sport player leaders for a chosen stat, season and view.
ATP/WTA rankings, upcoming fixtures, match results, Elo ratings and surface-specific stats.
Deep archives — player and team game logs, shot charts, AFL/NRL historical data. Paid API plan only.
Static lookup data for building your own UI — players, venues, headshots, team logos and sport/league metadata.
Account and billing endpoints, bulk export, SSE streaming, webhook management and API health.
Odds history, steam-move detection, player prop stats/results, injuries, weather and other supporting feeds.
Polymarket and Kalshi sentiment plus a universal prediction-market catalogue and resolutions feed.