betr_sgm_price
Price a same-game multi from BetR by combining two or more selections from one match to get a correlation-adjusted quote, including combinations BetR hasn't pre-built.
Instructions
PRICE A SAME GAME MULTI you choose — give it two or more selections from one BetR match, get the correlation-adjusted combined price. Prices combinations BetR has not pre-built (for the ones it has, see betr_pop_sgm_bet_data).
Returns: {Price: 2.2, ErrorNo: 0} — that is the WHOLE body on success; there is no echo of the legs. VERIFIED live 2026-08-27 against AFL Western Bulldogs v Collingwood (MasterEventId 2255977), unauthenticated.
THE PRICE IS NOT THE PRODUCT OF THE LEGS. Measured on that fixture, BetR's adjustment ran from -9.7% to +4.9% and went BOTH ways: Bulldogs (1.95) with Under 139.5 (6.25) priced 11.00 against a naive 12.19, while the same 1.95 with Under 201.5 (1.10) priced 2.25 against a naive 2.145. Never multiply the legs.
DO NOT SEND FixedWin. The site does, and the server treats the value you send as a FLOOR on the answer: send 99.0 on any leg and the response is {Price: 99.0, ErrorNo: 0} — a fabricated quote reported as a clean success. Omitting it returned the true price in every case tested, so the field is pure downside.
BETR REFUSES A REDUNDANT LEG INSTEAD OF DROPPING IT (ErrorNo 4527), which is the safe behaviour and the opposite of TAB's and PointsBet's — you cannot end up holding a shorter bet than you asked for. But 4527 IS A CATCH-ALL and its wording names only one of its three causes: a leg that another leg implies, the SAME leg twice, and legs from DIFFERENT matches all come back as 'redundant leg in bet'.
Other codes seen live: 4500 = fewer than two legs (unlike Sportsbet and PointsBet, BetR will not price a single one), 4526 = impossible combination (Over 139.5 with Under 139.5), 4503 = a leg could not be resolved, usually a missing EventId or OutcomeId. All arrive as HTTP 200; the engine raises them rather than passing Price: 0 off as a quote.
Example: Price Bulldogs to win with over 139.5 total points {"MasterEventID": 2255977, "Markets": [{"EventId": 91686300, "OutcomeId": 1, "MarketType": "WIN"}, {"EventId": 91712212, "OutcomeId": 13910, "MarketType": "WIN"}]}
Auth: none needed.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Markets | Yes | The legs, AT LEAST TWO, all from the same match: [{"EventId": 91686300, "OutcomeId": 1, "MarketType": "WIN"}, …]. All three come from betr_master_event: EventId is `Events[].EventId` (a MARKET GROUP, not the match), OutcomeId is `Events[].Outcomes[].OutcomeId`, and MarketType is that outcome's `MarketTypeCode`. MARKETTYPE IS LOAD-BEARING AND FAILS SILENTLY — dropping it from a verified pair turned a correct 2.20 into 21 with ErrorNo 0, so a leg missing it is quoted wrong rather than rejected. Copy the outcome's own three fields and nothing else; in particular do NOT add `FixedWin`, which the server trusts as a floor on the answer. | |
| MasterEventID | No | The match id. IGNORED BY THE SERVER — omitting it, sending 0, and misspelling the key all returned the same price — so it neither scopes nor validates the legs; cross-match legs are caught by the leg resolver instead, as a 4527. Send it for symmetry with the site, but never rely on it to constrain anything. |