Other Sports — Golf, soccer & US sports
The golf, soccer & us sports half of the Other Sports reference — every route with its parameters, credit cost and a worked example.
9 of 22 endpoints · all categories · get a free API key
GET/api/v1/golf/rankingsAPI plan
Golf world/tour rankings by player.
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.
No tour/date param — single collection covers all rankings snapshots, latest by fetchedAt.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| player | string | No | – | Exact player 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/golf/rankings?X-API-Key=value"{
"success": true,
"data": [
{
"player": "Ludvig Karlberg",
"rank": 4,
"points": 8.42,
"events_played": 19,
"tour": "PGA Tour",
"fetchedAt": "2026-09-01T12:00:00.000Z"
}
],
"meta": {
"count": 1,
"tier": "api",
"limit": 50,
"requested_limit": 100,
"player": "Ludvig Karlberg",
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 50,
"remaining": 1991,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/golf/skillsAPI plan
Golf strokes-gained / approach-shot skill ratings by player.
`source=approach` switches to a different underlying collection (golf_approach_skills) with an approach-shot-specific shape — document both variants.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| source | string | No | skills | Which dataset: 'skills' (golf_player_skills) or 'approach' (golf_approach_skills). 400 if any other value. |
| player | string | No | – | Exact player 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/golf/skills?X-API-Key=value"{
"success": true,
"data": [
{
"player": "Ludvig Karlberg",
"sg_total": 2.14,
"sg_off_tee": 0.61,
"sg_approach": 0.88,
"sg_around_green": 0.34,
"sg_putting": 0.31,
"fetchedAt": "2026-08-30T09:00:00.000Z"
}
],
"meta": {
"count": 1,
"tier": "api",
"limit": 50,
"requested_limit": 100,
"source": "skills",
"player": "Ludvig Karlberg",
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 50,
"remaining": 1990,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/golf/statsAPI plan
Golf player statistical projections (most recent snapshot).
No query filters at all besides limit — collection is 'the golf projections store' despite the route name 'stats'; there is no player/event filter param.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API 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/golf/stats?X-API-Key=value"{
"success": true,
"data": [
{
"player": "Ludvig Karlberg",
"event": "BMW Championship",
"projected_finish": 6,
"win_prob": 0.041,
"top10_prob": 0.32,
"made_cut_prob": 0.91,
"fetchedAt": "2026-08-29T15:00:00.000Z"
}
],
"meta": {
"count": 1,
"tier": "api",
"limit": 50,
"requested_limit": 100,
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 50,
"remaining": 1989,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/leaderboards/soccerFree tier
Soccer league top-scorers or top-assists leaderboard for a league+season.
Data shape differs from every other endpoint here: `data` is a single object (not an array) containing a `players` array. Backing docs are chunked (>1MB document size limit split into `{docId}_c{i}` chunk docs) and reassembled server-side; the primary store path falls back to the secondary store on any read error. If the doc doesn't exist, returns success:true with data:null and count:0 (not a 404).
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| kind | string | No | topscorers | 'topscorers' or 'topassists'. Any other value returns 400. |
| league_id | string | Yes | – | League id, e.g. '39' (Premier League). Required — 400 if missing. |
| season | string | Yes | – | Season year, e.g. '2026'. Required — 400 if missing. |
| limit | integer | No | 100 | Max players returned. Capped at 100 (free) / 5000 (api). |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/leaderboards/soccer?X-API-Key=value&league_id=abc123&season=value"{
"success": true,
"data": {
"league_id": "39",
"league": "Premier League",
"season": "2026",
"kind": "topscorers",
"players": [
{
"rank": 1,
"player": "Erling Haaland",
"team": "Manchester City",
"goals": 9,
"appearances": 4
},
{
"rank": 2,
"player": "Alexander Isak",
"team": "Liverpool",
"goals": 7,
"appearances": 4
}
],
"count": 2,
"updated_at": "2026-09-02T22:00:00.000Z"
},
"meta": {
"count": 2,
"tier": "free",
"limit": 100,
"requested_limit": 100,
"kind": "topscorers",
"league_id": "39",
"season": "2026",
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 100,
"remaining": 946,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/mma/fightsFree tier
MMA fight card entries/results by fight id or recently-updated window.
Same hand-rolled auth preamble pattern as boxing/fight-results and gated on 'gameday' rather than 'multisport'.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| fight_id | string | No | – | Exact fight id; does a direct single-document lookup, ignoring since/limit. |
| since | string (ISO date) | No | – | Only fights 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/mma/fights?X-API-Key=value"{
"success": true,
"data": [
{
"fight_id": "ufc-306-fontaine-vs-reyes",
"date": "2026-09-06",
"time": "22:00",
"slug": "ufc-306",
"status": "scheduled",
"is_main": true,
"category": "Welterweight",
"fighters": [
{
"name": "Diego Fontaine",
"record": "19-3-0"
},
{
"name": "Marcus Reyes",
"record": "17-2-0"
}
],
"league": "UFC",
"country": "USA",
"updated_at": "2026-09-02T20:00:00.000Z"
}
],
"meta": {
"count": 1,
"tier": "free",
"limit": 50,
"requested_limit": 50,
"fight_id": null,
"since": null,
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 50,
"remaining": 938,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/nfl/scheduleFree tier
NFL full-season schedule with teams, venues, kickoff times, and starting QBs.
The only endpoint in this batch built on the newer the standard auth guard/v1Success helper (adds X-Krok-Data-Source: derived header and license:'krokodds-derived' in meta). Explicit the credit cost=1 passed to the standard auth guard. Sorted by gameday then gametime.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| season | integer | No | current calendar year | Season year. 400 if non-numeric when provided. |
| week | integer | No | – | Week number filter. 400 if non-numeric when provided. |
| team | string | No | – | Case-insensitive team name substring OR exact abbreviation match, checked against both home and away. |
| limit | integer | No | 100 | Max rows, 1-500. |
curl \
-H "X-API-Key: YOUR_KEY" \
"https://krokodds.com.au/api/v1/nfl/schedule?X-API-Key=value"{
"success": true,
"data": [
{
"id": "2026-w1-kc-bal",
"game_id": "2026090400",
"season": 2026,
"season_type": "REG",
"week": 1,
"gameday": "2026-09-04",
"weekday": "Thursday",
"gametime": "20:20",
"away_team": "Kansas City Chiefs",
"away_abbr": "KC",
"home_team": "Baltimore Ravens",
"home_abbr": "BAL",
"stadium": "M&T Bank Stadium",
"location": "Baltimore, MD",
"result": null,
"overtime": false,
"away_qb": "Patrick Mahomes",
"home_qb": "Lamar Jackson"
}
],
"meta": {
"count": 1,
"tier": "free",
"license": "krokodds-derived",
"season": 2026,
"week": 1,
"team": null,
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 100,
"remaining": 950,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/soccer/bundesligaAPI plan
OpenLigaDB Bundesliga / 2.Bundesliga / DFB-Pokal match results — fallback settlement source for German-football props.
the credit cost=5 (archive-tier weight) despite the endpoint label being a plain fixtures list. `league` is mandatory. season/matchday applied in-memory after an 8x over-fetch when combined with league.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| league | string | Yes | – | One of 'bl1' (Bundesliga), 'bl2' (2. Bundesliga), 'dfb' (DFB-Pokal). Required — 400 if missing or invalid. |
| season | integer | No | – | Start-year of the season, e.g. 2025 for 2025/26. |
| matchday | integer | No | – | Matchday/round number within the season. |
| 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/soccer/bundesliga?X-API-Key=value&league=value"{
"success": true,
"data": [
{
"matchId": 68321,
"date": "2026-08-30T13:30:00.000Z",
"matchday": "3. Spieltag",
"homeTeam": "Bayer 04 Leverkusen",
"awayTeam": "Borussia Dortmund",
"homeGoals": 2,
"awayGoals": 2,
"homeGoalsHT": 1,
"awayGoalsHT": 1,
"finished": true,
"location": "BayArena, Leverkusen"
}
],
"meta": {
"count": 1,
"tier": "api",
"limit": 100,
"requested_limit": 100,
"league": "bl1",
"season": 2025,
"matchday": 3,
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 100,
"remaining": 1985,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/soccer/closing-oddsAPI plan
a public results feed settled soccer matches with a licensed bookmaker + a licensed bookmaker opening AND closing prices (Asian handicap, O/U 2.5) — the CLV reference dataset.
Tier detail: api (paid) — 'closing_lines' is NOT in the free-tier feature set
the credit cost=5 on the API plan ('closing_lines' is paid-only) — free-tier callers are refused before the credits are spent. 400 if neither league/league_code nor season is provided. from/to are plain string comparisons against a YYYY-MM-DD date field, not true date-range queries at the DB layer.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| league | string | Yes | – | League code (e.g. 'E0' for EPL). Also accepted as league_code. |
| league_code | string | Yes | – | Alias for league. |
| season | string | Yes | – | Season label, e.g. '2025-2026'. |
| from | string (YYYY-MM-DD) | No | – | Inclusive start date filter (in-memory, string comparison on date). |
| to | string (YYYY-MM-DD) | No | – | Inclusive end date filter (in-memory, string comparison on date). |
| 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/soccer/closing-odds?X-API-Key=value&league=value&league_code=value"{
"success": true,
"data": [
{
"id": "fdcouk-e0-2025-2026-020",
"date": "2026-08-30",
"time": "17:30",
"league_code": "E0",
"season": "2025-2026",
"home_team": "Arsenal",
"away_team": "Tottenham",
"ftr": "H",
"htr": "D",
"ft_home_goals": 2,
"ft_away_goals": 1,
"b365_open": {
"home": 1.65,
"draw": 4,
"away": 5.5
},
"b365_close": {
"home": 1.58,
"draw": 4.1,
"away": 6
},
"pinnacle_open": {
"home": 1.68,
"draw": 3.95,
"away": 5.3
},
"pinnacle_close": {
"home": 1.6,
"draw": 4.05,
"away": 5.8
},
"asian_handicap": {
"line": -0.75,
"home_close": 1.95,
"away_close": 1.97
},
"over_under_25": {
"over_close": 1.85,
"under_close": 2
}
}
],
"meta": {
"count": 1,
"tier": "free",
"limit": 100,
"requested_limit": 100,
"league_code": "E0",
"season": null,
"from": "2026-08-01",
"to": null,
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 100,
"remaining": 944,
"reset": "2026-10-01T00:00:00.000Z"
}
}
}GET/api/v1/soccer/fixturesAPI plan
Soccer fixtures/results by sport key and status, ordered by kickoff time ascending.
Ordered by $.utcDate ASC (upcoming-first), like esports/matches, unlike the DESC-by-fetchedAt convention used by most other collection routes.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| X-API-Key | string | Yes | – | API key. |
| sportKey | string | No | – | Filter by sport/competition key, e.g. 'soccer_epl'. |
| status | string | No | – | Match status filter, e.g. 'SCHEDULED', 'IN_PLAY', '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/soccer/fixtures?X-API-Key=value"{
"success": true,
"data": [
{
"sportKey": "soccer_epl",
"matchId": "epl-2026-gw4-avl-che",
"status": "SCHEDULED",
"utcDate": "2026-09-06T14:00:00.000Z",
"homeTeam": "Aston Villa",
"awayTeam": "Chelsea",
"venue": "Villa Park",
"matchday": 4
}
],
"meta": {
"count": 1,
"tier": "api",
"limit": 50,
"requested_limit": 100,
"sportKey": "soccer_epl",
"status": "SCHEDULED",
"timestamp": "2026-09-03T04:00:00.000Z",
"rate_limit": {
"limit": 50,
"remaining": 1980,
"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.