BetFocus odds API

BetFocus prices as structured JSON through one REST API.

BetFocus is a sportsbook with the bookmaker key betfocus. SockOdds is independent and is not affiliated with or endorsed by BetFocus.

Leagues

BetFocus prices are delivered for 12 leagues as of 30 October 2026: ATP Tour, English Premier League, La Liga, Ligue 1, MLB, MLS, College football, NFL, Rugby League World Cup, Rugby League World Cup Women's, Serie A and WTA Tour.

Request BetFocus prices

Filter any odds request to BetFocus with bookmakers=betfocus:

curl -sS "https://api.sockodds.com/v1/odds?league=atp&bookmakers=betfocus&markets=winner&limit=1&starts_after=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
  -H "Authorization: Bearer $SOCKODDS_API_KEY"
const response = await fetch(`https://api.sockodds.com/v1/odds?league=atp&bookmakers=betfocus&markets=winner&limit=1&starts_after=${new Date().toISOString().slice(0, 19)}Z`, {
  headers: { Authorization: `Bearer ${process.env.SOCKODDS_API_KEY}` },
});
console.log(JSON.stringify(await response.json(), null, 2));
import json, os, urllib.request
from datetime import datetime, timezone

request = urllib.request.Request(
    f"https://api.sockodds.com/v1/odds?league=atp&bookmakers=betfocus&markets=winner&limit=1&starts_after={datetime.now(timezone.utc):%Y-%m-%dT%H:%M:%SZ}",
    headers={"Authorization": "Bearer " + os.environ["SOCKODDS_API_KEY"]},
)
with urllib.request.urlopen(request) as response:
    print(json.dumps(json.load(response), indent=2))

Response from a local copy of the API with invented test prices

{
  "data": [
    {
      "id": "ev_000ckk0jphk6",
      "name": "Adam Walton v Adolfo Daniel Vallejo",
      "league": {
        "key": "atp",
        "name": "ATP Tour"
      },
      "scheduled_start": "2026-10-16T09:00:00.000Z",
      "status": "scheduled",
      "participants": [
        {
          "role": "competitor_1",
          "identity": {
            "id": "pl_000ckk0har3n",
            "name": "Adam Walton"
          }
        },
        {
          "role": "competitor_2",
          "identity": {
            "id": "pl_000ckk0msph6",
            "name": "Adolfo Daniel Vallejo"
          }
        }
      ],
      "markets": [
        {
          "id": "mk_rwavh3z10bwb04f4",
          "key": "winner",
          "name": "Winner",
          "period": "full",
          "subject": null,
          "alternate": false,
          "outcomes": [
            {
              "id": "oc_545rvkegasd0p4rr",
              "name": "Adam Walton",
              "side": "competitor_1",
              "line": null,
              "prices": [
                {
                  "bookmaker": "betfocus",
                  "decimal_odds": 1.69,
                  "implied_probability": 0.591716,
                  "available": true,
                  "observed_at": "2026-10-15T07:58:00.000Z"
                }
              ]
            },
            {
              "id": "oc_88374rs2tdd2t7za",
              "name": "Adolfo Daniel Vallejo",
              "side": "competitor_2",
              "line": null,
              "prices": [
                {
                  "bookmaker": "betfocus",
                  "decimal_odds": 2.08,
                  "implied_probability": 0.480769,
                  "available": true,
                  "observed_at": "2026-10-15T07:58:00.000Z"
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "meta": {
    "count": 1,
    "cursor": null
  },
  "links": {
    "next": null
  }
}

Plans

BetFocus is included on Pro. See pricing for the bookmakers each plan includes.

Search across the SockOdds documentation and catalogue.