BeatTheBookie data service endpoints

This site provides you a list all available BeatTheBookie data service endpoints, what data is provided and which parameters have to be provided.

Endpoints

/data

The endpoint provides over 10 years of historic data including betting odds for the 1×2 market.

ParameterDefaultValues
divisionno default (mandatory)“2. Bundesliga”, “Serie A”, “La Liga”, “Bundesliga”, “Ligue 1”, “Premier League”, “Championship”, “Serie B”, “La Liga 2”, “Eredivise”, “Liga Portugal”
seasonnonevalues between “2008_2009” till the current season

It returns the statistics for each match of a season. Depending on the division and the season the statistics contains not only base stats but also advanced stats (xG, PPDA, deep) for the home and the away team. The historic bet365 odds are provided for the 1×2 market.

[{
    "division_id": "ebbe640962da284afb5ba2255e9f83f1",
    "division": "Serie A",
    "season_id": "7960fa3a1efa5919fd94059da7f3a119",
    "season": "2019_2020",
    "match_date": "2020-03-08",
    "match_teams": "Parma - Spal",
    "home_team_id": "85bf516cb6ae2cc86249d1e7b9fa890c",
    "home_team": "Parma",
    "away_team_id": "c5df563daf29234b9e42ccf730e5080f",
    "away_team": "Spal",
    "home_goals": 0,
    "away_goals": 1,
    "home_shots": 11,
    "away_shots": 6,
    "home_shots_on_target": 2,
    "away_shots_on_target": 2,
    "home_corners": 4,
    "away_corners": 5,
    "home_yellow": 2,
    "away_yellow": 2,
    "home_red": 0,
    "away_red": 0,
    "home_xgoals": 1.39,
    "away_xgoals": 1.13,
    "home_deep": 6,
    "away_deep": 3,
    "home_ppda": 6.03,
    "away_ppda": 10.19,
    "bet365_home_odds": 2,
    "bet365_draw_odds": 3.4,
    "bet365_away_odds": 3.8
  },
...

Following divisions and seasons are provided via the endpoint:

DivisionBase stats available for…Advanced stats available for
2. BundesligaSince 2008/09Coming soon
BundesligaSince 2008/09 Since 2014/15
Premier League Since 2008/09 Since 2014/15
ChampionshipComing soonComing soon
Serie ASince 2008/09 Since 2014/15
Serie BComing soonComing soon
La LigaSince 2008/09Since 2014/15
La Liga 2Coming soonComing soon
Ligue 1Since 2008/09Since 2014/15
ErediviseComing soonComing soon
Liga PortugalComing soonComing soon

/zip-poisson-model

The endpoint provides data of my good old ZIP Poisson model.

ParameterDefaultValues
modepred“pred” – provides predictions for next matches
“hist” – provides historic matches including predictions
divisionno default (mandatory)“2. Bundesliga”, “Serie A”, “La Liga”, “Bundesliga”, “Ligue 1”, “Premier League”, “Championship”, “Serie B”, “La Liga 2”, “Eredivise”, “Liga Portugal”

It returns the match facts as well as the predictive features (e.g. attack / defence strength) for the teams as well as differt market predictions.

[
  {
    "division_id": "a355facc87c038e88972f99b7c6d388b",
    "division": "2. Bundesliga",
    "season_id": "a290f895d08db6bb30a573aedf784bad",
    "season": "2021_2022",
    "match_date": "2021-08-01",
    "match_teams": "Erzgebirge Aue - St Pauli",
    "home_team_id": "85a7e0e269f59e495ff35ebae520a3fd",
    "home_team": "Erzgebirge Aue",
    "away_team_id": "a34346a46ada46edcae15a6944c3920e",
    "away_team": "St Pauli",
    "home_attacking_strength": 1.09,
    "home_defence_strength": 1.11,
    "away_attacking_strength": 0.88,
    "away_defence_strength": 1.23,
    "home_expected_goals": 2.2,
    "away_expected_goals": 1.3,
    "home_win_prob": 0.5793,
    "draw_prob": 0.2032,
    "away_win_prob": 0.2176,
    "under_15_prob": 0.1508,
    "over_15_prob": 0.8492,
    "under_25_prob": 0.3425,
    "over_25_prob": 0.6575
  },
...

Following divisions and seasons are provided via the endpoint:

DivisionPredictive scopeHistoric scope
2. BundesligaCurrent seasonComing soon
BundesligaCurrent season Since 2014/15
Premier League Current season Since 2014/15
ChampionshipCurrent seasonComing soon
Serie ACurrent season Since 2014/15
Serie BCurrent seasonComing soon
La LigaCurrent seasonSince 2014/15
La Liga 2Current seasonComing soon
Ligue 1Current seasonSince 2014/15
ErediviseCurrent seasonComing soon
Liga PortugalCurrent seasonComing soon

/vanilla-poisson-xg-model

This endpoint provides the predictions of 3 different xG Poisson models compared in this blog post. I decided to provide following models:

  • Short-term: xG EMA10
  • Mid-term: xG EMA20
  • Long-term: xG EMA30

So it’s possible to differ between e.g. the short-term and long-term performance of a team, when analysing a match.

ParameterDefaultValues
modepred“pred” – provides predictions for next matches
“hist” – provides historic matches including predictions
divisionno default (mandatory)2. Bundesliga”, “Serie A”, “La Liga”, “Bundesliga”, “Ligue 1”, “Premier League”, “Championship”, “La Liga 2”, “Eredivise”, “Liga Portugal”

For the upcoming fixtures the endpoint provides the model features and prediction results for all 3 models. The historic fixtures also contains the match statistics for goals and xG.

[
  {
    "division_id": "dff80cb4edd4a90c83a23346b5b9bef0",
    "division": "Bundesliga",
    "season_id": "06b84148ed1c6a06340478bef065f5bc",
    "season": "2021_2022",
    "match_date": "2021-09-11",
    "match_teams": "Leverkusen - Dortmund",
    "home_team_id": "31f296e354f2693c68d01f1570ca3df1",
    "home_team": "Leverkusen",
    "away_team_id": "2728451089b9149bad7b106a792e51f9",
    "away_team": "Dortmund",
    "home_xg_attack_strength_ema10": 1.19,
    "home_xg_attack_strength_ema20": 1.18,
    "home_xg_attack_strength_ema30": 1.2,
    "home_xg_defence_strength_ema10": 1.07,
    "home_xg_defence_strength_ema20": 1.01,
    "home_xg_defence_strength_ema30": 0.97,
    "away_xg_attack_strength_ema10": 1.13,
    "away_xg_attack_strength_ema20": 1.2,
    "away_xg_attack_strength_ema30": 1.23,
    "away_xg_defence_strength_ema10": 0.95,
    "away_xg_defence_strength_ema20": 0.89,
    "away_xg_defence_strength_ema30": 0.86,
    "home_expected_goals_ema10": 1.7,
    "home_expected_goals_ema20": 1.6,
    "home_expected_goals_ema30": 1.5,
    "away_expected_goals_ema10": 1.7,
    "away_expected_goals_ema20": 1.7,
    "away_expected_goals_ema30": 1.7,
    "home_win_prob_ema10": 0.3871,
    "home_win_prob_ema20": 0.3589,
    "home_win_prob_ema30": 0.3574,
    "draw_prob_ema10": 0.2269,
    "draw_prob_ema20": 0.2309,
    "draw_prob_ema30": 0.2331,
    "away_win_prob_ema10": 0.386,
    "away_win_prob_ema20": 0.4102,
    "away_win_prob_ema30": 0.4095,
    "under_15_prob_ema10": 0.1482,
    "under_15_prob_ema20": 0.162,
    "under_15_prob_ema30": 0.1688,
    "over_15_prob_ema10": 0.8518,
    "over_15_prob_ema20": 0.838,
    "over_15_prob_ema30": 0.8312,
    "under_25_prob_ema10": 0.342,
    "under_25_prob_ema20": 0.3651,
    "under_25_prob_ema30": 0.3761,
    "over_25_prob_ema10": 0.658,
    "over_25_prob_ema20": 0.6349,
    "over_25_prob_ema30": 0.6239
  },
...

Following divisions and seasons are provided via the endpoint:

DivisionPredictive scopeHistoric scope
2. BundesligaComing soonComing soon
BundesligaCurrent season Since 2014/15
Premier League Current season Since 2014/15
ChampionshipComing soonComing soon
Serie ACurrent season Since 2014/15
Serie BComing soonComing soon
La LigaCurrent seasonSince 2014/15
La Liga 2Coming soonComing soon
Ligue 1Current seasonSince 2014/15
ErediviseComing soonComing soon
Liga PortugalComing soonComing soon

/ml-poisson-model

This endpoint provides the predictions based on my ML Poisson model:

ParameterDefaultValues
modepred“pred” – provides predictions for next matches
“hist” – provides historic matches including predictions
divisionno default (mandatory)2. Bundesliga”, “Serie A”, “La Liga”, “Bundesliga”, “Ligue 1”, “Premier League”, “Championship”, “La Liga 2”, “Eredivise”, “Liga Portugal”

For the upcoming fixtures the endpoint provides the model features, expected goals and prediction results and the model features.

[
	{
	"division_id":"dff80cb4edd4a90c83a23346b5b9bef0",
	"division":"Bundesliga",
	"season_id":"0c32472f2fc8b5c139688f05a2e862f0",
	"season":"2022_2023",
	"match_date":"2022-10-01",
	"match_teams":"RB Leipzig - Bochum",
	"home_team_id":"91a12d20948437ab748799eeeed825f4",
	"home_team":"RB Leipzig",
	"away_team_id":"e5f7abdc9c96c4b16466b8b55cd74897",
	"away_team":"Bochum",
	"home_xg_for_ema5":1.5214658431,
	"home_xg_against_ema5":1.9022007169,
	"away_xg_for_ema5":0.8977509084,
	"away_xg_against_ema5":2.1966467057,
	"home_expected_goals":1.7,
	"away_expected_goals":1.0,
	"home_win_prob":0.4829,
	"draw_prob":0.2683,
	"away_win_prob":0.2487
	},
...

Following divisions and seasons are provided via the endpoint:

DivisionPredictive scopeHistoric scope
2. BundesligaComing soonComing soon
BundesligaCurrent season Since 2014/15
Premier League Current season Since 2014/15
ChampionshipComing soonComing soon
Serie ACurrent season Since 2014/15
Serie BComing soonComing soon
La LigaCurrent seasonSince 2014/15
La Liga 2Coming soonComing soon
Ligue 1Current seasonSince 2014/15
ErediviseComing soonComing soon
Liga PortugalComing soonComing soon
%d bloggers like this: