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:
| Parameter | Type | Default | Constraints | Description |
|---|---|---|---|---|
page | integer | 1 | ≥ 1 | Page number |
size | integer | 20 | 1–100 | Items per page |
brand_id | integer | — | Optional | Filter to bets from a specific Brand |
player_id | integer | — | Optional | Filter to bets from a specific player |
status | integer | — | Optional | Filter by bet status (see status codes below) |
provider_code | string | — | Optional | Filter by game provider code (e.g. "evolution") |
Bet status codes:
| Value | Meaning |
|---|---|
0 | Pending (round in progress) |
1 | Settled (round completed) |
2 | Cancelled / 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"
}
]
}
| Field | Description |
|---|---|
transaction_id | Unique transaction identifier from the provider |
round_id | Game round identifier from the provider |
bet_amount | Amount wagered |
payout_amount | Amount paid out (0 for a loss) |
win_loss | Net result: payout_amount - bet_amount (negative = loss) |
result_type | Provider-specific result classification; null if not applicable |
balance_before / balance_after | Player wallet balance surrounding this bet |
settled_at | When 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:
| Parameter | Type | Default | Constraints | Description |
|---|---|---|---|---|
page | integer | 1 | ≥ 1 | Page number |
size | integer | 20 | 1–100 | Items per page |
brand_id | integer | — | Optional | Filter to bets from a specific Brand |
player_id | integer | — | Optional | Filter to bets from a specific player |
status | integer | — | Optional | Filter 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"
}
]
}
| Field | Description |
|---|---|
bet_id | External bet identifier from the sports provider |
odds | Aggregate odds for the bet (may be null for single-leg bets where odds are on the leg) |
stake | Amount wagered |
payout | Amount paid out (0 for a loss) |
win_loss | Net result: payout - stake |
parlay | 1 = 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:
| Field | Description |
|---|---|
line_id | Provider's identifier for this selection |
event_name | Match or event name |
league_name | Competition or league name |
market | Betting market (e.g. "Match Winner", "Over/Under 2.5") |
home_name / away_name | Team names |
odds | Odds for this specific selection |
score | Final score string, if applicable |
status | Leg settlement status (same codes as bet status) |
is_live | 1 = 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/listfor Live Casino and Slots, and/api/sports-bet/listfor Sports. There is no single unified list endpoint. sizeparameter (notpage_size) controls items per page for all bet list endpoints. Maximum value is100.- Pending bets (
status: 0) havesettled_at: nullandpayout_amount/payoutof"0.00"until the round completes. win_lossis negative for losing bets (e.g.-10000.00means the player lost 10,000).- Sports bets with
parlay: 1contain multiple legs in thelinesarray. Single bets (parlay: 0) typically have one leg. game_id,game_code,round_id, andresult_typeon Live/Slots bets may benulldepending on the provider integration.- Results are ordered by most recent first (descending by
id).