tkTickOdds

Matched betting API

Match bet365 free bets against exchange lay odds programmatically

For: Matched-betting services, community tools, private communities

The problem

Matched betting depends on finding bet365 back prices that line up with an exchange lay price. Manually scanning 200 fixtures a day is impossible. You need a programmatic feed that delivers every market, every few minutes, with no restrictions on the sports you're scanning.

How TickOdds helps

TickOdds' Starter tier gives you full prematch coverage across all 30+ sports at 200 req/min — more than enough to power a matched-betting scanner that refreshes every 5–10 minutes. Pair with a Betfair Exchange data feed to compute qualifying-loss and free-bet-conversion percentages.

Recommended: Starter tier

Based on the throughput this workload needs.

See pricing →

Workflow

  1. 1Poll /api/v1/matches every 5 minutes for the full upcoming slate
  2. 2For each match, pull /api/v1/matches/{fixtureId} to get full-depth markets
  3. 3Pair each bet365 back price with the corresponding Betfair lay price
  4. 4Surface matches above a qualifying-loss threshold to your subscribers

Code example

python

import requests
from datetime import datetime

API = "https://api.tickodds.com/api/v1"
HEADERS = {"X-API-Key": "YOUR_KEY"}

def scan_matched_betting():
    r = requests.get(f"{API}/matches?sport=soccer", headers=HEADERS)
    for match in r.json()["data"]:
        detail = requests.get(
            f"{API}/matches/{match['fixtureId']}", headers=HEADERS
        ).json()["data"]
        for market in detail["markets"]:
            back_odds = market["odds"]
            lay_odds = fetch_betfair_lay(market["id"])
            if lay_odds and qualifying_loss(back_odds, lay_odds) < 0.05:
                yield {"match": match["name"], "qualifying_loss_pct": ...}

for opportunity in scan_matched_betting():
    print(opportunity)

Related endpoints

  • GET /api/v1/matches
  • GET /api/v1/matches/{fixtureId}
  • GET /api/v1/competitions/{sportId}/{compId}/matches

Full API reference →