URL:     https://linuxfr.org/users/betbetter/journaux/des-clients-libres-mit-pour-une-api-de-donnees-sportives-sans-cle-et-un-jeu-de-donnees-cc-by-sur-les-marges-des-bookmakers
Title:   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
Authors: betbetter
Date:    2026-10-03T00:58:45+02:00
License: CC By-SA
Tags:    api, données_ouvertes, python, statistiques et sport
Score:   0


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 :

- la méthode de mesure et le fichier : https://betbetter.world/studies/margin-index
- les notes de méthode (mesuré contre estimé) : https://betbetter.world/studies/bookmaker-margins
- l'étude de calibration et son jeu de données : https://betbetter.world/studies/market-calibration
- l'API et les clients : https://betbetter.world/api/

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