Blog Docs Markets Portal Sign up
HomeBlog › Asian Handicap Odds via REST API

Asian Handicap Odds via REST API: Lines, Outcomes, and Settlement

Tutorial 27 May 2026 · 9 min read

Asian handicap (AH) is the second-most-traded market in soccer after 1X2 — and the one that most often gets modeled incorrectly when teams build their first sportsbook. The math is straightforward; the data shape is the part that trips people up.

The two things that make AH different from 1X2

  1. It has a line (e.g. -0.5, +1.5, -0.25) that shifts the result. There are dozens of lines per match.
  2. It has quarter lines (e.g. -0.25, +0.75) where the bet is split across two adjacent half-lines.

How Euro365 models AH on the wire

Asian handicap lives under market ID 1011 (per-line AH) in the soccer market dictionary. The full ladder for one match looks like:

{
  "s5_p18983062": {
    "1011": {
      "s-0.5": { "2037": [180, 0, ...], "2038": [200, 0, ...] },
      "s-0.25": { "2037": [170, 0, ...], "2038": [212, 0, ...] },
      "s0":     { "2037": [160, 0, ...], "2038": [225, 0, ...] },
      "s+0.25": { "2037": [152, 0, ...], "2038": [240, 0, ...] },
      "s+0.5":  { "2037": [145, 0, ...], "2038": [255, 0, ...] }
    }
  }
}

Each "s<line>" key is one row of the ladder. 2037 is "home covers", 2038 is "away covers". The line itself is parsed straight from the key: s+0.5 → +0.5, s-0.25 → -0.25. (Behind the scenes Euro365 fills the outcome's special field from this suffix — see /docs.)

Picking the "main line"

Most sportsbook UIs show one AH price per match in their main grid, then expand to the full ladder on click. The "main line" is the one closest to expected game state — usually the one whose home/away prices are closest to 1.90/1.90.

function pickMainAH(ladder) {
  let best = null, bestSpread = Infinity;
  for (const [key, outs] of Object.entries(ladder)) {
    const h = outs['2037']?.[0] / 100;
    const a = outs['2038']?.[0] / 100;
    if (!h || !a) continue;
    const spread = Math.abs(h - a);
    if (spread < bestSpread) { bestSpread = spread; best = { line: key.slice(1), home: h, away: a }; }
  }
  return best;
}

Settlement: the part that bites first-timers

LineHome wins by NOutcome (bet on home)
-0.51 or moreWin
-0.50 (draw)Lose
0 (draw no bet)1+Win
00Stake refunded (push)
-0.25 (split)1+Win full
-0.250Half lose, half refund
+0.25any drawHalf win, half refund

Quarter-line settlement is what most homemade engines get wrong. The clean implementation: treat -0.25 as half the stake on -0 and half on -0.5, then settle each leg independently. Same for +0.25 = half on 0 + half on +0.5.

Common AH pitfalls

Total Goals (Over/Under) has the same shape

Once you've modeled AH correctly, Over/Under at market 1018 is the same problem with a different outcome label (over/under instead of home/away). The ladder shape, the line parsing, the settlement halves — all identical. Two-for-one.

Get an API key All handicap markets