Examples

Example API responses

Use these to understand the response shape before you integrate. For full field definitions, see the docs.

Snapshot date: 2026-04-29

Bookmakers

List supported bookmakers with stable bookmaker_code values.

GET https://api.ukoddsapi.com/v1/bookmakers
Request
curl "https://api.ukoddsapi.com/v1/bookmakers" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "count": 27,
  "bookmakers": [
    {
      "bookmaker_code": "UO001",
      "name": "10Bet",
      "type": "sportsbook",
      "region": "uk"
    },
    {
      "bookmaker_code": "UO002",
      "name": "888Sport",
      "type": "sportsbook",
      "region": "uk"
    },
    {
      "bookmaker_code": "UO004",
      "name": "Bet365",
      "type": "sportsbook",
      "region": "uk"
    },
    {
      "bookmaker_code": "UO005",
      "name": "Betfair",
      "type": "exchange",
      "region": "uk"
    },
    {
      "bookmaker_code": "UO027",
      "name": "William Hill",
      "type": "sportsbook",
      "region": "uk"
    }
  ],
  "note": "Example only — response is truncated."
}

Football events (fixtures)

Real snapshot of fixtures for the date below. Use the returned event_id to fetch odds/arbitrage.

GET https://api.ukoddsapi.com/v1/football/events?schedule_date=2026-04-29&has_odds=true&per_page=5
Request
curl "https://api.ukoddsapi.com/v1/football/events?schedule_date=2026-04-29&has_odds=true&per_page=5" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "count": 3,
  "events": [
    {
      "event_id": "evt_94ad06f8561592dbbaad3c436915",
      "league_name": "Copa Libertadores",
      "home_team": "Universidad de Venezuela",
      "away_team": "Rosario Central",
      "kickoff_utc": "2026-04-29T00:00:00Z",
      "markets_with_odds": 47,
      "unique_bookmaker_codes": 25
    },
    {
      "event_id": "evt_a233da0dcc79ddcc655905234e09",
      "league_name": "Copa Libertadores",
      "home_team": "Cruzeiro",
      "away_team": "Boca Juniors",
      "kickoff_utc": "2026-04-29T00:30:00Z",
      "markets_with_odds": 1,
      "unique_bookmaker_codes": 1
    },
    {
      "event_id": "evt_7e7c4cdaa824b973e0f3da715e38",
      "league_name": "Copa Libertadores",
      "home_team": "Tolima",
      "away_team": "Coquimbo",
      "kickoff_utc": "2026-04-29T02:00:00Z",
      "markets_with_odds": 2,
      "unique_bookmaker_codes": 1
    }
  ]
}

Event metadata

Fetch canonical event fields for a single event_id.

GET https://api.ukoddsapi.com/v1/football/events/evt_94ad06f8561592dbbaad3c436915
Request
curl "https://api.ukoddsapi.com/v1/football/events/evt_94ad06f8561592dbbaad3c436915" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "event": {
    "event_id": "evt_94ad06f8561592dbbaad3c436915",
    "league_name": "Copa Libertadores",
    "home_team": "Universidad de Venezuela",
    "away_team": "Rosario Central",
    "schedule_date": "2026-04-29",
    "kickoff_utc": "2026-04-29T00:00:00Z",
    "markets_with_odds": 47,
    "unique_bookmaker_codes": 25
  }
}

Event odds

Real snapshot for one event (trimmed to a couple of markets for readability).

GET https://api.ukoddsapi.com/v1/football/events/evt_94ad06f8561592dbbaad3c436915/odds?package=core&odds_format=decimal
Request
curl "https://api.ukoddsapi.com/v1/football/events/evt_94ad06f8561592dbbaad3c436915/odds?package=core&odds_format=decimal" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "event_id": "evt_94ad06f8561592dbbaad3c436915",
  "event_title": "Universidad de Venezuela v Rosario Central",
  "kickoff_utc": "2026-04-29T00:00:00Z",
  "summary": {
    "bookmakers_count": 25
  },
  "markets": [
    {
      "market_id": 3583402376,
      "market_name": "Half Time",
      "market_group": "Win Markets",
      "selection_count": 75,
      "selections": [
        {
          "selection_name": "Rosario Central",
          "line": null,
          "odds": 2.06,
          "bookmaker_code": "UO005",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central",
          "line": null,
          "odds": 2.06,
          "bookmaker_code": "UO017",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central",
          "line": null,
          "odds": 2.05,
          "bookmaker_code": "UO003",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central",
          "line": null,
          "odds": 2.05,
          "bookmaker_code": "UO013",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central",
          "line": null,
          "odds": 2.05,
          "bookmaker_code": "UO019",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central",
          "line": null,
          "odds": 2.05,
          "bookmaker_code": "UO020",
          "status": "ACTIVE"
        }
      ]
    },
    {
      "market_id": 3583402386,
      "market_name": "Double Chance",
      "market_group": "Win Markets",
      "selection_count": 75,
      "selections": [
        {
          "selection_name": "Rosario Central-Draw",
          "line": null,
          "odds": 1.13,
          "bookmaker_code": "UO005",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central-Draw",
          "line": null,
          "odds": 1.13,
          "bookmaker_code": "UO006",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central-Draw",
          "line": null,
          "odds": 1.13,
          "bookmaker_code": "UO017",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central-Draw",
          "line": null,
          "odds": 1.11,
          "bookmaker_code": "UO015",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central-Draw",
          "line": null,
          "odds": 1.11,
          "bookmaker_code": "UO016",
          "status": "ACTIVE"
        },
        {
          "selection_name": "Rosario Central-Draw",
          "line": null,
          "odds": 1.11,
          "bookmaker_code": "UO020",
          "status": "ACTIVE"
        }
      ]
    }
  ]
}

Football specials catalog

Non-fixture topics (manager markets, etc.). Use event_id with the special odds path—not with fixture endpoints.

GET https://api.ukoddsapi.com/v1/football/specials?limit=20
Request
curl "https://api.ukoddsapi.com/v1/football/specials?limit=20" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "sport": "football",
  "kind": "specials_catalog",
  "count": 1,
  "specials": [
    {
      "event_id": "evt_b2c4e6f890abcdef0123456789abcd12",
      "topic": "La Liga",
      "slug": "next-real-madrid-manager",
      "event_title": "Next Real Madrid manager",
      "markets_with_odds": 4,
      "unique_bookmaker_codes": 9
    }
  ],
  "next_cursor": null,
  "note": "Example shape; URLs and IDs vary by deployment."
}

Football special odds

Latest odds for one special id from the specials catalog (same masking as fixture odds; no package parameter).

GET https://api.ukoddsapi.com/v1/football/specials/evt_b2c4e6f890abcdef0123456789abcd12/odds?odds_format=decimal
Request
curl "https://api.ukoddsapi.com/v1/football/specials/evt_b2c4e6f890abcdef0123456789abcd12/odds?odds_format=decimal" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "event_id": "evt_b2c4e6f890abcdef0123456789abcd12",
  "event_title": "Next Real Madrid manager",
  "category": "specials",
  "summary": {
    "markets_count": 1,
    "bookmakers_count": 2
  },
  "markets": [
    {
      "market_name": "Next manager",
      "selections": [
        {
          "selection_name": "Xabi Alonso",
          "odds": 2.5,
          "bookmaker_code": "UO004"
        },
        {
          "selection_name": "Raul",
          "odds": 5,
          "bookmaker_code": "UO018"
        }
      ]
    }
  ],
  "note": "Example only — trimmed for readability."
}

Market catalog (full)

List market keys grouped by category. Use market.key for filters.

GET https://api.ukoddsapi.com/v1/football/markets?package=full
Request
curl "https://api.ukoddsapi.com/v1/football/markets?package=full" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "sport": "football",
  "count": 100,
  "groups": [
    "assists",
    "cards",
    "corners",
    "goals",
    "halves",
    "handicaps",
    "main",
    "misc",
    "passes",
    "scorelines",
    "scorer",
    "shots"
  ],
  "markets": [
    {
      "key": "btts",
      "name": "Both Teams To Score",
      "group": "goals",
      "package": "core"
    },
    {
      "key": "totals",
      "name": "Total Goals Over/Under",
      "group": "goals",
      "package": "full"
    },
    {
      "key": "win-market",
      "name": "Win Market",
      "group": "main",
      "package": "full"
    },
    {
      "key": "asian-handicap",
      "name": "Asian Handicap",
      "group": "handicaps",
      "package": "full"
    },
    {
      "key": "correct-score",
      "name": "Correct Score",
      "group": "scorelines",
      "package": "full"
    },
    {
      "key": "anytime-scorer",
      "name": "Anytime Goalscorer",
      "group": "scorer",
      "package": "full"
    }
  ],
  "note": "Example only — response is truncated."
}

Event best odds

Best price per selection across bookmakers (trimmed).

GET https://api.ukoddsapi.com/v1/football/events/evt_94ad06f8561592dbbaad3c436915/odds/best?odds_format=decimal
Request
curl "https://api.ukoddsapi.com/v1/football/events/evt_94ad06f8561592dbbaad3c436915/odds/best?odds_format=decimal" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "event_id": "evt_94ad06f8561592dbbaad3c436915",
  "captured_at": "2026-04-28T22:31:56.026301Z",
  "event_title": "Universidad de Venezuela v Rosario Central",
  "kickoff_utc": "2026-04-29T00:00:00Z",
  "summary": {
    "markets_count": 47,
    "bookmakers_count": 19
  },
  "markets": [
    {
      "market_name": "Win Market",
      "market_group": "main",
      "selections": [
        {
          "selection_name": "Universidad de Venezuela",
          "odds": 2.7,
          "bookmaker_code": "UO004"
        },
        {
          "selection_name": "Draw",
          "odds": 3.1,
          "bookmaker_code": "UO001"
        },
        {
          "selection_name": "Rosario Central",
          "odds": 2.9,
          "bookmaker_code": "UO005"
        }
      ]
    }
  ],
  "note": "Example only — response is trimmed to one market."
}

Arbitrage (day feed)

Real example response (from docs). Access depends on your plan.

GET https://api.ukoddsapi.com/v1/football/arbitrage?date=2026-04-25&min_profit=0.5&total_stake=300&round_to=1
Request
curl "https://api.ukoddsapi.com/v1/football/arbitrage?date=2026-04-25&min_profit=0.5&total_stake=300&round_to=1" \
  -H "X-Api-Key: YOUR_KEY"
                  
Response (example)
{
  "schema_version": "1.0",
  "sport": "football",
  "date": "2026-04-25",
  "count": 12,
  "showing": 1,
  "min_profit": 0.5,
  "note": "Example day feed response. Showing 1 arbitrage for readability.",
  "arbitrages": [
    {
      "event_id": "evt_cardiff_northampton_2026_04_25",
      "event_title": "Cardiff City vs Northampton",
      "competition": "English League One",
      "home_team": "Cardiff City",
      "away_team": "Northampton",
      "schedule_date": "2026-04-25",
      "kickoff_utc": "2026-04-25T14:00:00Z",
      "captured_at": "2026-04-25T09:04:09.873881Z",
      "market_id": 999,
      "market_name": "Total Away Corners",
      "market_group": "corners",
      "market_type": "2way",
      "description": "Over 1.5 vs Under 1.5",
      "type": "2-way",
      "profit_percentage": 7.55,
      "implied_probability": 92.98,
      "legs": [
        {
          "selection": "Over 1.5",
          "line": "1.5",
          "odds": 1.5,
          "bookmaker_code": "UO027",
          "bookmaker_name": "William Hill",
          "bookmaker_type": "sportsbook",
          "stake_percentage": 71.7
        },
        {
          "selection": "Under 1.5",
          "line": "1.5",
          "odds": 3.8,
          "bookmaker_code": "UO012",
          "bookmaker_name": "BoyleSports",
          "bookmaker_type": "sportsbook",
          "stake_percentage": 28.3
        }
      ],
      "stake_plan": {
        "total_stake": 300,
        "currency": "GBP",
        "round_to": 1,
        "legs": [
          {
            "bookmaker_code": "UO027",
            "bookmaker_name": "William Hill",
            "selection": "Over 1.5",
            "odds": 1.5,
            "stake_amount": 215.09,
            "stake_amount_final": 215,
            "return_amount": 322.5
          },
          {
            "bookmaker_code": "UO012",
            "bookmaker_name": "BoyleSports",
            "selection": "Under 1.5",
            "odds": 3.8,
            "stake_amount": 84.91,
            "stake_amount_final": 85,
            "return_amount": 323
          }
        ],
        "sure_return": 322.5,
        "sure_profit": 22.5,
        "roi_percent": 7.5
      }
    }
  ]
}