Sports trading model API
Feed a quant model with closing-line bet365 data for every market
For: Quant bettors, sports-trading model builders, algo-betting developers
The problem
Training a profitable sports-betting model needs thousands of observations of the closing line — the single best predictor of true probability. Without a consistent historical feed, you're guessing. Without low-latency live data, you can't actually place bets when your model fires.
How TickOdds helps
TickOdds' Pro tier gives you 30 days of match history (for back-testing) plus 2,000 req/min and 100 concurrent WebSockets (for production). Run your model against historical closes, deploy the same model against the live feed, and place bets when edge appears.
Recommended: Pro tier
Based on the throughput this workload needs.
See pricing →Workflow
- 1Pull 30 days of match history for back-testing via /api/v1/matches/{fixtureId}/history
- 2Train your model on closing-line-implied probabilities vs. observed outcomes
- 3In production, subscribe to the WebSocket for the sports you care about
- 4When your model's predicted probability diverges enough from the current bet365 price, fire a bet through your book or Betfair account
Code example
python
import pandas as pd
import requests
API = "https://api.tickodds.com/api/v1"
HEADERS = {"X-API-Key": "YOUR_KEY"}
# Historical training: pull 30 days of closing lines
def load_training_data(sport: str):
matches = requests.get(
f"{API}/matches?sport={sport}&status=settled&limit=2000",
headers=HEADERS,
).json()["data"]
rows = []
for m in matches:
history = requests.get(
f"{API}/matches/{m['fixtureId']}/history",
headers=HEADERS,
).json()["data"]
closing = history[-1]
rows.append({
"home": m["home"],
"away": m["away"],
"close_home": closing["odds"]["home"],
"close_away": closing["odds"]["away"],
"winner": m["result"]["winner"],
})
return pd.DataFrame(rows)
df = load_training_data("soccer")
# ... train your model on df ...Related endpoints
- GET /api/v1/matches/{fixtureId}/history
- GET /api/v1/matches
- WS /ws/live