Bets API

Risk management endpoins

Bets API endpoints are used as a part of risk management service.

The most important endpoints are below.

Bet Placement Endpoint

Can be used to send bets to Odds88.

The bet will be validated according to related event(s), market(s), selection(s) statuses, odds and liabilities.

The response will contain a recommendation whether to accept or reject the bet.

playerId must be consistent for the same player regardless of the currency that is used.

Places bet from specific player (multi-currency).

put
Authorizations
HTTPRequired

JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"

Path parameters
playerIdstringRequired

Id of player which places a bet.

Body
all ofOptional

Represents bet request.

Responses
200

Returns results of bet placement request.

put
/api/players/{playerId}/Bets/V2
PUT /api/players/{playerId}/Bets/V2 HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 386

{
  "id": "text",
  "player": {
    "deviceId": "text",
    "languageId": "text",
    "ip": "text",
    "segmentId": 1
  },
  "priceChange": 0,
  "items": [
    {
      "eventId": 1,
      "marketId": 1,
      "selectionId": 1,
      "racingSelection": "text",
      "price": 1,
      "betBuilderBetItems": [
        {
          "marketId": 1,
          "selectionId": 1
        }
      ]
    }
  ],
  "alternativeOddsId": "text",
  "alternativePrice": 1,
  "customPayoutMultiplier": 1,
  "betType": 1,
  "amount": {
    "currency": "text",
    "value": 1,
    "precision": 1
  }
}
{
  "payload": {
    "requestId": "text",
    "resultType": 1,
    "createdAt": "2025-12-05T16:59:18.312Z",
    "cancellationStatus": {
      "status": 1,
      "message": "text"
    },
    "betProcessor": 1,
    "rejectInfo": {
      "reason": 0,
      "betItem": {
        "eventId": 1,
        "marketId": 1,
        "selectionId": 1,
        "racingSelection": "text",
        "price": 1,
        "betBuilderBetItems": [
          {
            "marketId": 1,
            "selectionId": 1
          }
        ]
      },
      "message": "text",
      "alternativeOdds": {
        "id": "text",
        "alternativePrice": 1,
        "createdAt": "2025-12-05T16:59:18.312Z",
        "expiredAt": "2025-12-05T16:59:18.312Z"
      },
      "maxBet": {
        "currency": "text",
        "value": 1,
        "precision": 1,
        "exchangeRate": 1
      }
    },
    "acceptedBet": {
      "id": "text",
      "player": {
        "deviceId": "text",
        "languageId": "text",
        "ip": "text",
        "segmentId": 1
      },
      "kind": 1,
      "priceChange": 1,
      "alternativePrice": 1,
      "originalBetId": "text",
      "customPayoutMultiplier": 1,
      "betType": 0,
      "items": [
        {
          "eventId": 1,
          "marketId": 1,
          "selectionId": 1,
          "racingSelection": "text",
          "price": 1,
          "alternativePrice": 1,
          "betBuilderBetItems": [
            {
              "marketId": 1,
              "selectionId": 1
            }
          ]
        }
      ],
      "amount": {
        "currency": "text",
        "value": 1,
        "precision": 1,
        "exchangeRate": 1
      }
    }
  },
  "responseCode": 1,
  "errorMessage": "text"
}

Max Bet Endpoint

Can be used to get the max possible value for a particular bet for a particular player.

The bet will be validated according to related event(s), market(s), selection(s) statuses, odds and liabilities.

The bet will not be saved in Odds88 system, so this endpoint can be called before locking funds on the player's account.

Gets max possible bet size for the specific player (multi-currency).

post
Authorizations
HTTPRequired

JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"

Path parameters
playerIdstringRequired

Id of player which places a bet.

Body
all ofOptional

Represents bet request.

Responses
200

Returns results of max bet calculation.

post
/api/players/{playerId}/Bets/V2/max
POST /api/players/{playerId}/Bets/V2/max HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 386

{
  "id": "text",
  "player": {
    "deviceId": "text",
    "languageId": "text",
    "ip": "text",
    "segmentId": 1
  },
  "priceChange": 0,
  "items": [
    {
      "eventId": 1,
      "marketId": 1,
      "selectionId": 1,
      "racingSelection": "text",
      "price": 1,
      "betBuilderBetItems": [
        {
          "marketId": 1,
          "selectionId": 1
        }
      ]
    }
  ],
  "alternativeOddsId": "text",
  "alternativePrice": 1,
  "customPayoutMultiplier": 1,
  "betType": 1,
  "amount": {
    "currency": "text",
    "value": 1,
    "precision": 1
  }
}
{
  "rejectReason": 1,
  "amount": 1
}

Bet Builder Price Endpoint

Allows to get bet builder odds for the provided combination.

The endpoint will respond with potential odds or rejection information.

Gets bet builder price.

post
Authorizations
HTTPRequired

JWT Authorization header using the Bearer scheme. Example: "Authorization: Bearer {token}"

Path parameters
playerIdstringRequired

Id of player which placed a bet.

Body
all ofOptional

Represents BetBuilder price request.

Responses
200

Returns price for potential betbuilder bet.

post
/api/players/{playerId}/Bets/bet-builder-price
POST /api/players/{playerId}/Bets/bet-builder-price HTTP/1.1
Host: 
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 86

{
  "requestId": "text",
  "segmentId": 1,
  "eventId": 1,
  "bets": [
    {
      "marketId": 1,
      "selectionId": 1
    }
  ]
}
{
  "requestId": "text",
  "price": 1,
  "timeStamp": "2025-12-05T16:59:18.312Z",
  "rejectInfo": {
    "reason": 0,
    "betItem": {
      "eventId": 1,
      "marketId": 1,
      "selectionId": 1,
      "racingSelection": "text",
      "price": 1,
      "betBuilderBetItems": [
        {
          "marketId": 1,
          "selectionId": 1
        }
      ]
    },
    "message": "text",
    "alternativeOdds": {
      "id": "text",
      "alternativePrice": 1,
      "createdAt": "2025-12-05T16:59:18.312Z",
      "expiredAt": "2025-12-05T16:59:18.312Z"
    },
    "maxBet": 1
  }
}

Last updated