Skip to main content

What are Arbitrage Bets?

An arbitrage (or “arb”) is a price gap across bookmakers: the best odds for every outcome of a market, taken from different bookmakers, imply a total probability below 100%. The /v3/arbitrage-bets endpoint returns these price gaps for the bookmakers you choose, with the calculated margin and a calculated stake split per leg that gives an equal modelled return at the quoted prices.

How Arbitrage Bets Work

For every prematch market line (for example Totals 2.5 or Spread -1.5), we compare the best prices across bookmakers on each side:
  1. Take the best prices for every outcome of the line
  2. Add up the implied probabilities (1 / odds) of one price per outcome
  3. Keep the combinations where the total is below 1
Formula:
Some details that affect the numbers:
  • Exchange fees are included. On exchanges and prediction markets, the price you keep after commission or taker fees is lower than the quoted price. Those legs carry netOdds, and profitMargin, impliedProbability and optimalStakes are all computed on netOdds.
  • Stakes respect bookmaker limits. When a bookmaker reports a maximum stake for a price, the leg carries maxStake and the whole split is scaled down so no leg goes over it. totalStake is 1000 by default and can be lower when a limit caps it.
  • Prematch only. Opportunities are refreshed every few seconds and removed as soon as a price moves or the match starts.

Query Parameters

Fetching Arbitrage Bets

Filtering

Filters run on our side, so only the opportunities you care about come back.
Validation rules:
  • Providing league without sport returns 400.
  • Unknown sport slug returns 400.
  • Unknown league for a valid sport returns 404.
  • minProfit outside 0 to 100, or not a number, returns 400.

One Combination per Line, or All of Them

The same line often arbs with more than one pair (or trio) of bookmakers. By default you get one row per event, market and line: the combination with the highest profitMargin among those that use only your bookmakers. Adding a bookmaker to bookmakers can therefore change which combination you see for a line. Set allCombinations=true to get every combination for each line, best first. This is useful when one of your accounts is limited at a bookmaker and you want the next best way to cover the same line.

Response Format

Understanding the Response

Scaling Stakes to Your Bankroll

optimalStakes are calculated for totalStake. To stake a different amount, multiply every leg by the same factor, and keep each leg under its maxStake:

Polling for New Opportunities

Opportunities are recalculated every few seconds, but match your polling interval to your rate limit rather than to our refresh rate. Use id to spot new combinations and firstSeenAt to see how long one has been open:

Limitations & Considerations

  • Margins and stakes are calculations at the quoted prices, not guaranteed returns. Prices can move at any time.
  • maxStake is the limit the bookmaker reports; your own account may be limited lower.
  • Bookmakers can void or resettle bets on obvious price errors, so unusually high margins deserve a second look.
  • Bookmakers do not always settle a market the same way (for example overtime rules).

Next Steps

Value Bets

Prices above a fair-odds estimate

Best Practices

Optimize your API usage