Get Player Ratings
Market-implied player ratings derived from PREGAME closing prices.
Supported today for table_tennis (and its sub-leagues), where we hold paired 1v1 moneylines from bovada and tenbet.
What the rating is: an iterative ELO fit to the de-vigged implied win probability of the LAST price each book posted BEFORE the listed start time. That is the market's pregame estimate of who is stronger.
What it is not:
- Not an official ITTF or WTT ranking.
- Not a results based rating. A price quoted at or after first serve is an in play price and is excluded, because an in play price encodes who is currently ahead, which is close to encoding the result. On bovada table tennis, 83 percent of the moneyline rows we hold were written after the fixture started, so an endpoint that used "the latest price" was reporting results dressed up as a market estimate. That was the bug this endpoint used to have.
- Not a prediction. It summarises market consensus.
Selection rules, all reported back in the response:
- A fixture is keyed by (home, away, commence_time), so the same two players meeting twice in one day is two fixtures, never one.
- Both sides must have a pregame price or the fixture is dropped.
- The two implied probabilities must sum to a plausible book total (0.98 to 1.30) or the fixture is dropped.
- One fixture counts once, whatever the number of books pricing it.
- A book names the side either bare ("Adam Svoboda") or as a compound market label ("Adam Svoboda v Vaclav Dolezal · Match Winner · Adam Svoboda"); both are read, and the trailing segment must equal a side name exactly. Reading only the bare form used to exclude every tenbet row and then report those fixtures as dropped for having no pregame price, which was a parsing exclusion wearing an in-play exclusion's label. Measured on prod 2026-09-04 over 30 days of table tennis, reading both forms takes usable fixtures from 418 to 8,750.
matches_dropped_inplay_only counts fixtures for which we hold a match-winner price named to a side, but every such price was quoted at or after the start time. It does not count fixtures we hold no match-winner price for at all: those never enter fixtures_seen.
Returns the top limit players by rating, descending. Players below min_matches are excluded as noise.
Cost: 2 credits per call.
Request
- Base URL: https://parlay-api.com
- URL: https://parlay-api.com/v1/sports/{sport_key}/player-ratings
- Auth: one of:
- API key in header X-API-Key
- API key in query parameter apiKey
- HTTP bearer
Path parameters
Query parameters
Minimum matches required for a player to appear
Recency window for source matches
Response
Successful Response
Changes
No recorded changes to this operation across all 1 revision of this API.