sportsbet_price_slip
Get the authoritative current price for a bet slip before placing a bet. Use this price to place a real bet, as placement accepts only a price you assert.
Instructions
PRICE A BET SLIP — the authoritative, current price for selections you are about to back. Call this IMMEDIATELY before sportsbet_place_bet: placement takes a price you assert, not a quote id, so this is the only way to place at a real number.
Returns: {betBuilds:[{betNo, enhancedOdds:[{outcome, priceDecimal, priceNum, priceDen, legType}], betCombinations:[{betType, betTypeName, betMinStake, betNoOfLines, cashoutAvailable, betEnhancedPrice}], vouchers:[]}]} — VERIFIED live 2026-08-27.
THIS IS THE AUTHORITATIVE PRICE, and it is the call to make immediately before placing. sportsbet_place_bet does NOT take a quote id: it takes a price you assert, so the only way to place at a real price is to read it here first and send THAT number. A price remembered from thirty seconds ago is not a price.
betMinStake comes back per combination and was 0.01 on the verified slip — the smallest possible test bet is a cent, not a dollar.
Prices appear twice and in two forms: priceDecimal on each enhanced odd, and priceNum/priceDen which is what placement wants. Carry the fraction across unchanged rather than re-deriving it from the decimal, which rounds.
Auth: works without a key; SPORTSBET_REFRESH_TOKEN unlocks more if set.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| channel | No | Client channel. `cxp` is what the website sends; leave it. | cxp |
| appToken | Yes | Sportsbet's app key — a short constant the web client sends on every /apigw call. Not a personal credential, but not published either; read it from the browser once. Collected by `sportsdata-mcp connect sportsbet`. | |
| betItems | Yes | The slip: [{"betNo": 1, "legs": [{...}]}]. Leg shape matches sportsbet_place_bet — see its description for the parts/externalId structure. | |
| requestId | No | A fresh UUID per call, for Sportsbet's own tracing. Optional here; send a new one each time if you send one at all. | |
| apiVersion | No | Pricing is served at 2.0.0 (placement is 3.0.0). Understating it silently gets you an older schema. | 2.0.0 |
| customerId | Yes | Your own account number. It is also the `custId` claim inside the access token, so it is not extra authority — the gateway just wants it stated. Collected by `connect`. | |
| includeMBS | No | Include minimum bet size information. | |
| outcomeGroups | No | REQUIRED even when empty — omitting it is refused 'Field is required: outcomeGroups'. The declared default now actually reaches the wire (see registry._value_for); before that fix a `default: []` on a body param was decorative. | |
| returnVouchers | No | Include vouchers. | |
| returnFreebetTokens | No | Include eligible freebet tokens. | |
| returnOutcomeDetails | No | Include the outcome detail; useful for confirming you priced what you meant. | |
| returnCashoutAvailable | No | Whether cash-out is offered on the resulting bet. |