A point-by-point Markov model with surface-specific serve stats, pressure score-state adjustments, fatigue, and momentum. One GET request returns live probabilities for every match on tour.
One endpoint
Authenticate with a key in the query string and poll /v1/live. Every in-progress match comes back with both players' win probability, the live score, surface, and tournament.
fetch, requests, curlmatch_id you can join onInside the model
Most "live odds" interpolate a pre-match number. We re-solve the match from the current score, every 30 seconds.
Separate serve & return distributions for clay, grass, and hard — Świątek on clay isn't Świątek on grass.
Point-win rates shift by score state. Break points and 40-0 are not the same coin flip.
Discounts serve hold for long matches and quick turnarounds between rounds.
Solves forward from the live set, game, and point score — 40-0 up a break is not the same as 40-0 down.
The feed, rendered
Generate a key, copy four lines, and you're polling live win probabilities. Free tier is 10,000 requests a day.