curl --request GET \
--url https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state \
--header 'Authorization: Bearer <token>'import requests
url = "https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"tableId": 1,
"gameId": "game-001",
"gameState": "STATUS_HOLE",
"bettingStage": 0,
"numberOfHands": 4,
"numberOfSeats": 6,
"jackpotValue": 1250,
"hands": [
"AcKd",
"QsJs",
"8h7c",
"5d2c"
],
"flopCard1": "Ah",
"flopCard2": "3s",
"flopCard3": "9d",
"turnCard": null,
"riverCard": null,
"seats": [
{
"seatId": 1,
"playerId": "abc123",
"playerName": "Simon",
"seatBalance": 500,
"avatarImageUrl": "/avatars/user_square.jpg"
}
],
"bets": [
{
"playerId": "abc123",
"bettingStage": 0,
"seatIndex": 0,
"handIndex": 0,
"betAmount": 50,
"recordedOdds": 1.6
}
],
"handOdds": [
{
"handIndex": 0,
"bettingStage": 0,
"handStatus": "IN_PLAY_FAVOURITE",
"winPercentage": 62.4,
"drawPercentage": 2.1,
"odds": 1.6
}
]
}{
"error": "betAmount must be a positive number."
}{
"error": "Missing or invalid Authorization header."
}Get game state
Returns the full current game state for a table, including:
- Current game state and betting stage
- All four hands (once dealt)
- Community cards (flop, turn, river) as they are revealed
- Per-hand odds panels for the current and previous stages
- All seats and their balances
- All bets placed in the current game
Equivalent to get_game_state_object in the legacy C# server.
curl --request GET \
--url https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state \
--header 'Authorization: Bearer <token>'import requests
url = "https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://hedgeem-server.qeetoto.com/api/tables/{tableId}/state")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"tableId": 1,
"gameId": "game-001",
"gameState": "STATUS_HOLE",
"bettingStage": 0,
"numberOfHands": 4,
"numberOfSeats": 6,
"jackpotValue": 1250,
"hands": [
"AcKd",
"QsJs",
"8h7c",
"5d2c"
],
"flopCard1": "Ah",
"flopCard2": "3s",
"flopCard3": "9d",
"turnCard": null,
"riverCard": null,
"seats": [
{
"seatId": 1,
"playerId": "abc123",
"playerName": "Simon",
"seatBalance": 500,
"avatarImageUrl": "/avatars/user_square.jpg"
}
],
"bets": [
{
"playerId": "abc123",
"bettingStage": 0,
"seatIndex": 0,
"handIndex": 0,
"betAmount": 50,
"recordedOdds": 1.6
}
],
"handOdds": [
{
"handIndex": 0,
"bettingStage": 0,
"handStatus": "IN_PLAY_FAVOURITE",
"winPercentage": 62.4,
"drawPercentage": 2.1,
"odds": 1.6
}
]
}{
"error": "betAmount must be a positive number."
}{
"error": "Missing or invalid Authorization header."
}Authorizations
Supabase Auth JWT. Obtain via Supabase Auth sign-in.
Path Parameters
Unique numeric table identifier
x >= 11
Response
Current game state
Full game state for a Texas Hedge'Em table at a point in time. This is the primary object consumed by the game client (gameClient/).
1
"game-001"
The lifecycle state of a Texas Hedge'Em game. States progress linearly: SETUP → START → HOLE → FLOP → TURN → RIVER.
UNCHANGED, INVALID_CARD, CARD_ALREADY_DEALT, STATUS_SETUP, STATUS_START, STATUS_MANUAL_DEALING_HOLE, STATUS_HOLE, STATUS_FLOP_CARD1, STATUS_FLOP_CARD2, STATUS_FLOP_CARD3, STATUS_FLOP, STATUS_TURN, STATUS_RIVER "STATUS_HOLE"
The current betting stage.
-1NON_BETTING — no bets accepted (river, setup)0HOLE — betting on hole cards1FLOP — betting on flop cards2TURN — betting on turn card
-1, 0, 1, 2 0
Number of simultaneous hands in play (typically 4)
4
Total seat capacity at this table
6
Current jackpot value in chips
1250
The four hole card pairs as card strings (e.g. "AcKd"). Null before STATUS_HOLE. See Card Notation.
["AcKd", "QsJs", "8h7c", "5d2c"]
First community card. Null before STATUS_FLOP.
"Ah"
"3s"
"9d"
Turn card. Null before STATUS_TURN.
null
River card. Null before STATUS_RIVER.
null
Show child attributes
Show child attributes
All bets placed in the current game
Show child attributes
Show child attributes
Odds panel data for each hand at each betting stage. The game client uses this to render betting panels.
Show child attributes
Show child attributes