Skip to main content

Bet Records

Use Case

Use these endpoints to query the wagering history for your brands and players. Two separate endpoint groups exist:

  • Live/Slots bets (/api/bet) — Round-based bets from Live Casino and Slot game providers.
  • Sports bets (/api/sports-bet) — Pre-match and in-play sports wagers, which may contain multiple selections (legs) within a single bet.

Common use cases include: generating player account statements, reconciling provider settlements, auditing specific transactions, and customer support investigations.


Complete Flow — Live/Slots Bets

Step 1 — List Bets

GET /api/bet/list

Returns a paginated list of Live Casino and Slots bets with optional filters.

Query parameters:

ParameterTypeDefaultConstraintsDescription
pageinteger1≥ 1Page number
sizeinteger201–100Items per page
brand_idintegerOptionalFilter to bets from a specific Brand
player_idintegerOptionalFilter to bets from a specific player
statusintegerOptionalFilter by bet status (see status codes below)
provider_codestringOptionalFilter by game provider code (e.g. "evolution")

Bet status codes:

ValueMeaning
0Pending (round in progress)
1Settled (round completed)
2Cancelled / Rolled back

Example request — all bets for a specific player:

GET /api/bet/list?page=1&size=20&player_id=8801

Example request — settled bets for a brand, filtered by provider:

GET /api/bet/list?page=1&size=50&brand_id=42&status=1&provider_code=evolution

Response:

{
"total": 4820,
"page": 1,
"page_size": 20,
"items": [
{
"id": 120001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 3,
"provider_code": "evolution",
"game_id": 501,
"game_code": "baccarat_main",
"transaction_id": "evo_txn_00112233",
"round_id": "evo_rnd_99887766",
"bet_amount": "10000.00",
"payout_amount": "0.00",
"win_loss": "-10000.00",
"status": 1,
"result_type": 0,
"balance_before": "55200.00",
"balance_after": "45200.00",
"settled_at": "2026-04-06T10:15:32Z",
"created_at": "2026-04-06T10:15:00Z"
}
]
}
FieldDescription
transaction_idUnique transaction identifier from the provider
round_idGame round identifier from the provider
bet_amountAmount wagered
payout_amountAmount paid out (0 for a loss)
win_lossNet result: payout_amount - bet_amount (negative = loss)
result_typeProvider-specific result classification; null if not applicable
balance_before / balance_afterPlayer wallet balance surrounding this bet
settled_atWhen the round was settled; null for pending bets

Step 2 — Get Bet Detail

GET /api/bet/{bet_id}

Returns a single bet record by its internal ID.

Path parameter: bet_id — the numeric ID of the bet.

Response: Single BetResponse object (same shape as items in the list response).

{
"id": 120001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 3,
"provider_code": "evolution",
"game_id": 501,
"game_code": "baccarat_main",
"transaction_id": "evo_txn_00112233",
"round_id": "evo_rnd_99887766",
"bet_amount": "10000.00",
"payout_amount": "0.00",
"win_loss": "-10000.00",
"status": 1,
"result_type": 0,
"balance_before": "55200.00",
"balance_after": "45200.00",
"settled_at": "2026-04-06T10:15:32Z",
"created_at": "2026-04-06T10:15:00Z"
}

404 Not Found is returned if the bet does not exist or belongs to a different team.


Complete Flow — Sports Bets

Step 3 — List Sports Bets

GET /api/sports-bet/list

Returns a paginated list of sports bets with optional filters.

Query parameters:

ParameterTypeDefaultConstraintsDescription
pageinteger1≥ 1Page number
sizeinteger201–100Items per page
brand_idintegerOptionalFilter to bets from a specific Brand
player_idintegerOptionalFilter to bets from a specific player
statusintegerOptionalFilter by bet status (same codes as Live/Slots bets)

Example request:

GET /api/sports-bet/list?page=1&size=20&brand_id=42&status=1

Response:

{
"total": 891,
"page": 1,
"page_size": 20,
"items": [
{
"id": 30001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 12,
"provider_code": "betconstruct",
"bet_id": "bc_bet_44556677",
"odds": "2.50",
"stake": "20000.00",
"payout": "50000.00",
"win_loss": "30000.00",
"parlay": 1,
"status": 1,
"balance_before": "100000.00",
"balance_after": "130000.00",
"settled_at": "2026-04-06T14:30:00Z",
"created_at": "2026-04-06T12:00:00Z"
}
]
}
FieldDescription
bet_idExternal bet identifier from the sports provider
oddsAggregate odds for the bet (may be null for single-leg bets where odds are on the leg)
stakeAmount wagered
payoutAmount paid out (0 for a loss)
win_lossNet result: payout - stake
parlay1 = parlay (multi-leg), 0 = single

Step 4 — Get Sports Bet Detail

GET /api/sports-bet/{sports_bet_id}

Returns a single sports bet with its full leg (selection) details.

Path parameter: sports_bet_id — the numeric ID of the sports bet.

Response:

{
"id": 30001,
"team_id": 7,
"brand_id": 42,
"player_id": 8801,
"provider_id": 12,
"provider_code": "betconstruct",
"bet_id": "bc_bet_44556677",
"odds": "2.50",
"stake": "20000.00",
"payout": "50000.00",
"win_loss": "30000.00",
"parlay": 1,
"status": 1,
"balance_before": "100000.00",
"balance_after": "130000.00",
"settled_at": "2026-04-06T14:30:00Z",
"created_at": "2026-04-06T12:00:00Z",
"lines": [
{
"id": 60001,
"sports_bet_id": 30001,
"line_id": "bc_line_1122",
"event_name": "Manchester United vs Arsenal",
"league_name": "Premier League",
"market": "Match Winner",
"home_name": "Manchester United",
"away_name": "Arsenal",
"odds": "2.50",
"score": "2-1",
"status": 1,
"is_live": 0,
"created_at": "2026-04-06T12:00:00Z"
}
]
}

Leg (line) fields:

FieldDescription
line_idProvider's identifier for this selection
event_nameMatch or event name
league_nameCompetition or league name
marketBetting market (e.g. "Match Winner", "Over/Under 2.5")
home_name / away_nameTeam names
oddsOdds for this specific selection
scoreFinal score string, if applicable
statusLeg settlement status (same codes as bet status)
is_live1 = in-play bet, 0 = pre-match

404 Not Found is returned if the sports bet does not exist or belongs to a different team.


Important Notes

  • Live/Slots and Sports bets are on separate endpoints. Use /api/bet/list for Live Casino and Slots, and /api/sports-bet/list for Sports. There is no single unified list endpoint.
  • size parameter (not page_size) controls items per page for all bet list endpoints. Maximum value is 100.
  • Pending bets (status: 0) have settled_at: null and payout_amount / payout of "0.00" until the round completes.
  • win_loss is negative for losing bets (e.g. -10000.00 means the player lost 10,000).
  • Sports bets with parlay: 1 contain multiple legs in the lines array. Single bets (parlay: 0) typically have one leg.
  • game_id, game_code, round_id, and result_type on Live/Slots bets may be null depending on the provider integration.
  • Results are ordered by most recent first (descending by id).