Journal Des clients libres (MIT) pour une API de données sportives sans clé, et un jeu de données CC BY sur les marges des bookmakers

Posté par  . Licence CC By‑SA.
0
3
oct.
2026

Bonjour Nal,

Petit journal pour signaler un ensemble de bibliothèques libres que je maintiens et un jeu de données ouvert qui va avec. Je précise d'emblée le contexte : la société derrière le projet (Bet Better, Melbourne) travaille sur les marchés de paris sportifs. Ce journal ne parle ni de pronostics ni de promotion, uniquement de code libre et de données ouvertes ; si le sujet vous rebute, passez votre chemin.

Ce qui est libre

Une API JSON publique, sans clé ni inscription, sert des estimations de modèles sportifs : probabilités de victoire, scores projetés, classements par cote de force. Pour l'interroger, des clients sous licence MIT existent en Python, R, Java, JavaScript, Go, Rust, Ruby, PHP, .NET, Julia, D, Racket et Clojure. Le client Python n'a aucune dépendance :

pip install betbetter
import betbetter
feed = betbetter.get_picks("nba")
print(feed["picks"][0]["modelProbabilityPct"])

Le code est publié sur les registres habituels (PyPI, npm, Maven Central, pkg.go.dev, Packagist, RubyGems, NuGet, DUB, Clojars, le catalogue Racket) et les dépôts Python, D et Racket sont sur GitLab (groupe betbetterworld) ; la documentation du client Python est hébergée sur Read the Docs. Les fonctions renvoient des dictionnaires et des listes, rien d'autre.

Le jeu de données

Ce qui m'a semblé le plus intéressant pour les lecteurs de LinuxFr est le fichier ouvert qui accompagne tout ça : un indice quotidien des marges des bookmakers. Chaque jour, par type de marché, le fichier public donne la marge moyenne et médiane ainsi que le nombre de bookmakers et de marchés mesurés ; une version détaillée par compétition (38 compétitions dans 10 familles de sports, avec minimum et maximum) est déposée sur B2SHARE et data.gouv.fr. Aucune cote brute, aucun nom de bookmaker : des statistiques agrégées uniquement, sous licence CC BY 4.0.

La marge, pour mémoire, c'est ce qui dépasse 100 % quand on additionne les probabilités implicites de toutes les issues d'un marché. Deux cotes de 1,91 donnent 1/1,91 + 1/1,91 = 104,7 %, soit une marge de 4,7 %. Sur la période juillet-septembre 2026, la marge moyenne va d'environ 4,8 % sur un résultat de match à deux issues à environ 7,7 % sur les marchés joueurs. Les marchés à trois issues (victoire, nul, défaite) sont structurellement plus chers que ceux à deux issues.

Le fichier est un CSV UTF-8 avec en-tête, les lignes de commentaire commencent par # :

curl -s "https://betbetter.world/studies/margin-index?format=csv" | grep -v '^#' | head -3
Il se lit tel quel avec pandas (comment="#"), data.table ou un simple awk.

Pourquoi je le partage ici

Parce que les données de prix sur ces marchés sont d'ordinaire fermées ou payantes, et qu'un fichier agrégé, régulier et sous licence libre permet d'enseigner les statistiques descriptives et les séries temporelles sur un cas concret. Une étude compagne, également ouverte, vérifie la calibration des prix sur 18 238 marchés réglés ; son jeu de données pédagogique est aussi en CC BY.

Liens :

Retours bienvenus sur les clients (API, nommage, paquets manquants) ; je lis les commentaires.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.