Open API – Game

bg-line

Game

/Game/Holdem/GetHistory

{
    "userId":"userid", // If null, search for all users.
    "symbol":"USDT", // Cryptocurrencies name, ex) USDT
    "startTime":"",// format(UTC): yyyy-MM-dd HH:mm:ss
    "endTime":"", // format(UTC): yyyy-MM-dd HH:mm:ss
    "page": 1
}

The range of startTime and endTime cannot be more than one quarter, for example, January-March or April-June, and will not provide data older than one year.

Response

historyList:Array(HoldemPlayerLog)

[HoldemPlayerLog]
- roomId:string
- gameIndex:int
- username:string
- symbol:string
- betMoney:decimal
- getMoney:decimal
- seat:int
- blind:string
- cards:Array(string)
- cardHandRank:string
- ranking:int
- rake:decimal
- wrtime:DateTime

/Game/Holdem/GetHistoryDetail

{
    "roomId":"1234567",
    "gameIndex":1234567
}

Response

gameDetail:HoldemGameLog

[HoldemGameLog]
- sequence:long
- symbol:string
- roomId:string
- gameIndex:int
- transactionKey:string
- gameResult:GameResult
- wrtime:DateTime
- playerLogs:Array(HoldemPlayerLog)

[GameResult]
- isShowdown:bool
- cards:Array(string)

[HoldemPlayerLog]
- roomId:string
- gameIndex:int
- username:string
- symbol:string
- betMoney:decimal
- getMoney:decimal
- seat:int
- blind:string
- cards:Array(string)
- cardHandRank:string
- ranking:int
- rake:decimal
- wrtime:DateTime

/Game/Slot/GetHistory

{
    "userId":"userid" // If null, search for all users.
    "startTime":""// format(UTC): yyyy-MM-dd HH:mm:ss
    "endTime":"", // format(UTC): yyyy-MM-dd HH:mm:ss
    "page": 1
}

The range of startTime and endTime cannot be more than one quarter, for example, January-March or April-June, and will not provide data older than one year.

Response

historyList:Array(SlotGameLog)

[SlotGameLog]
- userNickname:stirng
- slotName:string
- pointIn:decimal // Bet
- pointOut:decimal // Get
- beforePoint:decimal
- afterPoint:decimal
- wrtime:DateTime

/Game/Slot/GetInfo

{
    "agentId":"1234567", // Not required
    "includeChildInfo": true or false
}

Response

slotList:Array(SlotInfo)
childInfoList:Array(ChildInfo)

isOperator(bool) : 운영권 획득 여부
isOnOff(bool) : 슬롯 전체에 대한 오픈 여부
rakeRatio(decimal) : 부모가 설정한 슬롯 레이크 
rakebackRatio(decimal) : 설정한 슬롯 레이크백

[SlotInfo]
- id:int // Slot game ID
- name:string // Slot game Name
- state:string // Slot game State, On or Off

[ChildInfo]
-agentId:int
-parentAgentId:int
-isOperator:bool
-isOnOff:bool
-rakeRatio:decimal
-rakebackRatio:decimal

/Game/Slot/SetState

{
    "id":1,
    "state":"On" // On or Off
}

At least 10 slots must remain On.

Response

id:int
name:string
state:string 

/Game/Slot/SetStateAll

{
    "state":"On" // On or Off
}

Sets the entire slot On/Off, regardless of the value set via SetState.

Response

list:Array(Info)

[Info]
- id:int // Slot game ID
- name:string // Slot game Name
- state:string // Slot game State, On or Off

/Game/Slot/SetOperator

{
    "agentId":1234567,
    "allowOperator": true or false
}

Super agents can only grant operations to their immediate subagents

Response

allowOperator:bool

/Game/Slot/SetRake

{
    "agentId":1234567,
    "rake": 0.03 // 0.03 = 30%
}

Cannot be set higher than the rate set by the parent agent. For subordinate agents whose rake value is less than the set rake value, set the rake value of the agent and its immediate subordinate agents to 0.

Response

before:decimal
after:decimal

/Game/Slot/SetRakeback

{
    "agentId":1234567,
    "rakeback": 0.03 // 0.03 = 30%
}

Response

before:decimal
after:decimal

/Game/Tournament/CreateRequest

{
    "tournamentName":"agentTournament",
   
    "isPrivate": 0,
    "ticketOpen": true, // If true, users can directly purchase tickets within the game.
    "commission": 0.2, // 0~0.2

    "startTime":"2025-07-14 08:00:00",
    "enterTime":"2025-07-14 08:10:00",
   
    "ticketPrice": 10, // min 10
    "ticketCost": 1,
    "minPlayer": 6, // min 6
    "maxPlayer": 100, // min 18
   
    "reEntrycount": 5,
    "timechipCount": 1,

    "prizeData":[
        {
            "symbol":"USDT",
            "guarantee": 50,
            // "value":1.0,
            "prizeRank":["1","2","3","4-5","6-10"],
            "prizeRankValue":["0.5","0.25","0.15","0.07","0.03"],
        }
    ],
}

When you request to create a tournament, the total ticket price and the total prize money will be deducted from the Agent’s USDT wallet. Please proceed with caution, as these amounts are non-refundable once the tournament is held.

You can adjust the re-entry time using enterTime.

The total prize money is automatically calculated by ticketPrice and maxPlayer, and the corresponding result value is paid as the prize money, but the prize money can be reduced by the commission.

prizeRank defines the range of ranks that will receive prizes, and prizeRankValue determines the percentage of the prize money distributed to each rank.

Response

{
}

Game/Tournament/CreateHistory

{
}

Response

{
    "history": [
        {
            "seq": 9,
            "agentId": 1019,
            "name": "agentTournament",
            "tournamentSeq": 0,
            "ticketType": 0,
            “commission": 0.150000000000000000,
            "ticketPrice": 10.000000000000000000,
            "ticketCost": 1,
            "ticketOpen": true,
            "minPlayer": 2,
            "maxPlayer": 100,
            "startTime": "2025-05-25T00:00:00",
            "enterTime": "2025-05-25T01:00:00",
            "reEntrycount": 5,
            "timeChipCount": 1,
            "prizeData": [
                {
                    "symbol": "USDT",
                    "guarantee": 100.0,
                    "value": 10.0,
                    "prizeRank": [
                        "1",
                        "2",
                        "3",
                        "4-5",
                        "6-10"
                    ],
                    "prizeRankValue": [
                        "0.5",
                        "0.25",
                        "0.15",
                        "0.07",
                        "0.03"
                    ]
                }
            ],
            "isPrivate": 0,
            "createCost": 1100.000000000000,
            "wrtime": "2025-05-22T07:01:41",
            "status": "Cancel"
        },
        And...
    ],
    "status": 0,
    "code": 0,
    "message": "Success!"
}

Game/Tournament/CreateCancel

{
    "seq": 9
}

Response

{
}

Game/Tournament/BuyTicket

{
    "ticketType": 1001,
    "tournamentSeq": 9,
    "count": 1
}

For this API, you only need to provide one of the following values: ticketType or tournamentSeq.

Response

{
    "ticketType": 1010,
    "beforeTicketCount": 35,
    "afterTicketCount": 50,
    "remainTicket": 50,
    "status": 0,
    "code": 0,
    "message": "Success!"
}

Game/Tournament/AddTicketToUser

Game/Tournament/SubtractTicketFromUser

{
    "userId": "userid",
    "ticketType": 1001,
    "count": 1
}

Response

{
    "ticketType": 1010,
    "beforeAgentTicketCount": 29,
    "afterAgentTicketCount": 28,
    "beforeUserTicketCount": 16,
    "afterUserTicketCount": 17,
    "status": 0,
    "code": 0,
    "message": "Success!"
}

Game/Tournament/AddTicketToAgent

Game/Tournament/SubtractTicketFromAgent

{
    "agentId": 1111,
    "ticketType": 1001,
    "count": 1
}

Response

{
    "ticketType": 1010,
    "beforeAgentTicketCount": 29,
    "afterAgentTicketCount": 28,
    "beforeTargetAgentTicketCount": 0,
    "afterTargetAgentTicketCount": 1,
    "status": 0,
    "code": 0,
    "message": "Success!"
}

Game/Tournament/GetActiveTournamentInfo

{
}

Response

{
    "activeTournamentList": [
        {
            "tournamentSeq": 423359,
            "round": 64,
            "name": "agentTest",
            "startTime": "2025-09-12T07:30:00",
            "ticketType": 1064,
            "ticketsRemaining": 28,
            "ticketsSold": 2,
            "totalTicketCount": 30,
            "ticketOpen": true
        },
    ],
    "ticket": [
        {
            "type": "1083",
            "count": 5
        }
    ],

    "status": 0,
    "code": 0,
    "message": "Success!"
}

Game/Tournament/GetTicketHistory

{
    "ticketType": 1064
    "page": 1 // 30 per page
}

Response

{
    "list": [
        {
            "nickname": "test9",
            "kind": "AgentAPI",
            "type": 1083,
            "value": -1,
            "wrtime": "2025-07-11T08:30:42",
            "transactionCode": 1752222640
        },
        {
            "nickname": "test29",
            "kind": "AgentAPI",
            "type": 1083,
            "value": 1,
            "wrtime": "2025-07-11T08:30:41",
            "transactionCode": 1752222640
        },
        {
            "nickname": "test9",
            "kind": "Buy",
            "type": 1083,
            "value": 5,
            "wrtime": "2025-07-11T07:04:37",
            "transactionCode": 0
        },
        {
            "nickname": "test29",
            "kind": "TournamentJoin",
            "type": 1083,
            "value": -1,
            "wrtime": "2025-07-11T06:19:58",
            "transactionCode": 0
        }
    ],
    "totalCount": 18,
    "status": 0,
    "code": 0,
    "message": "Success!"
}

Game/Tournament/GetTournamentStats

{
    "ticketType": 1234,
    "tournamentSeq": 1234
}

Use one of the values: ticketType or tournamentSeq.

Response

{
    "tournamentData": {
        "tournamentSeq": 425661,
        "ticketType": 1095,
        "joinCount": 8,
        "uniquePlayerCount": 6
    },
    "playerDataList": [
        {
            "ranking": 1,
            "id": "dkimuser05",
            "agentId": 1184,
            "reBuyInCount": 0,
            "prizeAmount": 33.200000000000000000
        },
        {
            "ranking": 2,
            "id": "dkimuser02",
            "agentId": 1180,
            "reBuyInCount": 2,
            "prizeAmount": 13.280000000000000000
        },
        And...
    ],
    "status": 0,
    "code": 0,
    "message": "Success!"
}