Skip to content

테이블 ​

테이블 현황을 조회하고, 독립운영 오퍼레이터는 자기 전용 테이블을 만들어 설정합니다.

  • 공용 테이블: 본사가 운영하며 여러 오퍼레이터의 플레이어가 함께 앉습니다. 조회만 할 수 있고 설정은 바꿀 수 없습니다.
  • 전용 테이블: 한 오퍼레이터가 만든 테이블로, 그 오퍼레이터의 플레이어만 로비에서 보고 앉을 수 있습니다. 다른 오퍼레이터에게는 보이지 않습니다. 만들기는 independent(독립운영) 오퍼레이터만 할 수 있습니다(운영 방식).

GET /tables 를 뺀 나머지는 관리 화면용입니다.

GET /tables ​

GET {API_BASE}/operator/v1/tables?game_code=live_holdem

이 오퍼레이터가 볼 수 있는 운영 중 테이블(공용 + 자기 전용)과, 전용 테이블 만들기에 쓰는 기본 틀 · 수수료 기본값을 줍니다.

사이트에 테이블을 보여 줄 때

목록에는 이 오퍼레이터에 켜지지 않은 게임의 테이블, 사용 통화가 아닌 테이블, 사이트 베팅 한도 밖의 테이블도 함께 옵니다. 플레이어에게 보여 줄 때는 offered: true 인 테이블만 쓰세요. offered: false 인 테이블은 POST /launch 로 보내도 게임 화면에서 입장이 거절됩니다.

offered 는 게임 로비 출력(hide_menu · hide_tables) 설정은 반영하지 않습니다. 사이트 화면에서도 같은 게임을 숨기려면 GET /games 의 lobby 값을 함께 보세요.

쿼리 ​

파라미터타입필수설명
game_codestring이 게임의 테이블만. 비우면 전체

응답 ​

200 OK

json
{
  "tables": [
    {
      "table_id": "tbl_019a0f3c8e1f7a2b9c4d5e6f7a8b9c0d",
      "game_code": "live_holdem",
      "name": "Live Hold'em 25/50",
      "names": { "ko": "라이브 홀덤 25/50", "en": "Live Hold'em 25/50" },
      "currency": "PHP",
      "limits": { "sb": 2500, "bb": 5000, "ante": 0, "min_buy_in": 200000, "max_buy_in": 1000000 },
      "seats": { "max": 7, "taken": 3 },
      "players": 3,
      "status": "open",
      "snapshot_url": "https://{API_HOST}/dealer/v1/snapshots/tbl_019a0f3c8e1f7a2b9c4d5e6f7a8b9c0d",
      "dedicated": false,
      "offered": true,
      "clonable": true,
      "studio": true,
      "sort_order": 5,
      "rake_kind": "pct_cap",
      "rake_bp": 500,
      "rake_cap": 50000,
      "timers": [ { "key": "action_ms", "ms": 15000, "default_ms": 15000 } ],
      "rake_rule": { "no_flop_no_drop": true, "rake_floor": false }
    },
    {
      "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
      "game_code": "live_holdem",
      "name": "ACME VIP 50/100",
      "names": { "ko": "ACME VIP 50/100", "en": "ACME VIP 50/100" },
      "currency": "PHP",
      "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 },
      "seats": { "max": 7, "taken": 0 },
      "players": 0,
      "status": "open",
      "private": { "state": "standby", "start": 1792371600000, "end": 1792375200000 },
      "dedicated": true,
      "offered": true,
      "clonable": true,
      "studio": false,
      "sort_order": 0,
      "settings": {
        "PHP": { "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 }, "rake_bp": 500, "rake_cap": 50000 },
        "USD": { "limits": { "sb": 100, "bb": 200, "ante": 0, "min_buy_in": 8000, "max_buy_in": 40000 }, "rake_bp": 500, "rake_cap": 1000 },
        "KRW": { "limits": { "sb": 1000, "bb": 2000, "ante": 0, "min_buy_in": 80000, "max_buy_in": 400000 }, "rake_bp": 500, "rake_cap": 10000 }
      },
      "rake_kind": "pct_cap",
      "rake_bp": 500,
      "rake_cap": 50000,
      "live": { "dealing": "auto", "paused": false },
      "timers": [ { "key": "action_ms", "ms": 20000, "default_ms": 15000 } ],
      "rake_rule": { "no_flop_no_drop": true, "rake_floor": true },
      "card_design": { "back": "rlive", "back_color": "red" }
    }
  ],
  "can_create": true,
  "templates": [
    {
      "game_code": "live_holdem",
      "allowed": true,
      "available": true,
      "currency": "PHP",
      "limits": { "sb": 2500, "bb": 5000, "ante": 0, "min_buy_in": 200000, "max_buy_in": 1000000 },
      "seats": { "max": 7, "taken": 0 },
      "studio": true,
      "settings": { "PHP": { "limits": { "sb": 2500, "bb": 5000, "ante": 0, "min_buy_in": 200000, "max_buy_in": 1000000 }, "rake_bp": 500, "rake_cap": 50000 } },
      "rake_kind": "pct_cap",
      "rake_bp": 500,
      "rake_cap": 50000,
      "rake_rule": { "no_flop_no_drop": true, "rake_floor": false }
    },
    { "game_code": "live_baccarat", "allowed": false, "available": true, "currency": "PHP", "limits": { "min_bet": 10000, "max_bet": 5000000, "tie_max": 500000 }, "studio": true }
  ],
  "rake_defaults": { "rake_bp": 500, "caps": { "PHP": 50000 }, "no_flop_no_drop": true, "rake_floor": true }
}

tables[] — 모든 테이블에 있는 필드 ​

필드타입설명
table_idstring테이블 ID(tbl_ + 32자리 16진수). POST /launch 의 table_id 로 씁니다.
game_codestring게임 코드
namestring테이블 이름(원본)
namesobject언어별 이름 {ko, en, zh, ja, th, vi}. 화면 언어 이름이 없으면 name 을 쓰세요.
currencystring테이블 운영 통화. 이 통화의 플레이어만 앉습니다.
limitsobject테이블 한도(최소 단위 정수). 키는 게임마다 다릅니다(예: 홀덤 sb bb ante min_buy_in max_buy_in, 바카라 min_bet max_bet tie_max).
seatsobject좌석 {max, taken}. 좌석이 있는 게임만 있고, 좌석이 없는 뱅크형 게임은 필드가 없습니다.
playersinteger지금 참여 인원(좌석 게임은 착석 수, 뱅크형은 테이블 접속자 수)
statusstringopen · maintenance
privateobject프라이빗 예약이 걸린 테이블만 있습니다. state: standby(예약 시작 5분 전부터 — 비밀번호로만 입장) · private(진행 중), start · end: 예약 시각(Unix 밀리초). 프라이빗 테이블 참고
snapshot_urlstring딜러 영상이 있는 라이브 테이블만 있습니다. 아래 영상 스냅숏 참고
dedicatedboolean이 오퍼레이터의 전용 테이블인지
offeredboolean이 사이트 플레이어에게 보이고 입장할 수 있는지(켜진 게임 · 사용 통화 · 사이트 베팅 한도 안)
clonableboolean이 테이블을 원본으로 전용 테이블을 만들 수 있는지(POST /tables 의 from)
studioboolean딜러 스튜디오 테이블(영상 송출)인지. 복제하면 영상 없는 자동 딜링 테이블이 됩니다.
sort_orderinteger같은 게임 안의 로비 정렬 순서(작을수록 앞)
rake_kindstring레이크 모양. pct_cap(홀덤 · 오마하 · 라이브 홀덤) · bp(스피드 홀덤 · 섯다 · 바둑이 · 맞고 · 고스톱 · 통잇). 레이크가 없는 게임(바카라 · 블랙잭 · 레드독)은 필드가 없습니다.
rake_bpinteger운영 통화의 레이크 비율(bp, 500 = 5%). 레이크 있는 게임만
rake_capinteger운영 통화의 판당 최고 수수료(최소 단위, 0 = 상한 없음). 레이크 있는 게임만
timersarray고칠 수 있는 배팅 · 차례 시간 [{key, ms, default_ms}]. PUT /tables/{table_id}/timers 참고
rake_ruleobject레이크 규칙 {no_flop_no_drop?, rake_floor}. 레이크 있는 게임만. no_flop_no_drop 은 홀덤 계열만 있습니다.

tables[] — 전용 테이블에만 있는 필드 ​

필드타입설명
settingsobject통화별 한도 · 레이크 {통화: {limits, rake_bp?, rake_cap?}}. 운영 통화 외의 통화는 운영 통화 값을 환산해 채워 둡니다. PUT /tables/{table_id}/settings 로 고칩니다.
liveobject딜링 방식 · 일시정지 {dealing: "auto" | "manual", paused}. 라이브 홀덤 · 스피드 홀덤만
card_designobject테이블에서 따로 고른 카드 디자인 {face?, back?, back_color?}. 빈 칸은 오퍼레이터 기본값을 따릅니다. 라이브 홀덤 · 스피드 홀덤만

최상위 필드 ​

필드타입설명
can_createboolean전용 테이블을 만들 수 있는 운영 방식인지(independent 면 true)
templatesarray켜진 게임마다 하나씩, 테이블 만들기 기본 틀. 아래 표 참고
rake_defaultsobject이 오퍼레이터의 수수료 기본값 {rake_bp?, caps?, no_flop_no_drop?, rake_floor?}. 새 테이블의 레이크 처음 값입니다. 오퍼레이터 설정 참고

templates[]

필드타입설명
game_codestring게임 코드
allowedboolean이 게임으로 테이블을 만들 수 있는지(독립운영 + 본사 허용)
availableboolean기본 틀이 있는지. false 면 아래 필드가 없고 이 게임은 game_code 로 만들 수 없습니다.
currency · limits · seats · studio · settings · rake_kind · rake_bp · rake_cap · rake_rule기본 틀의 값. 뜻은 tables[] 와 같습니다. limits 의 키가 POST /tables 에 보낼 한도 키입니다.

영상 스냅숏 ​

snapshot_url 은 라이브 테이블 딜러 영상의 최신 캡처 한 장(JPEG)입니다. 사이트 로비의 테이블 카드에 미리보기로 쓸 수 있습니다.

GET {API_BASE}/dealer/v1/snapshots/{table_id}
  • 인증 없이 열리는 공개 주소입니다. 다른 오리진에서 <img> 로 바로 넣을 수 있습니다.
  • 영상을 송출하는 동안 약 1분마다 바뀝니다. 같은 주소는 30초 캐시되므로, 화면에서는 1분마다 ?t=<시각> 처럼 쿼리를 바꿔 다시 받으세요.
  • 아직 캡처가 없거나 마지막 캡처가 5분보다 오래되면(송출 중지) 404 입니다. 이때는 사이트 자체 그림으로 대신하세요.
  • 영상이 없는 자동 딜링 테이블에는 snapshot_url 이 없습니다.

오류 ​

인증 · 공통 오류만 있습니다(오류 코드).

전용 테이블 공통 ​

아래 엔드포인트(POST /tables 제외)는 경로의 table_id 가 이 오퍼레이터의 열린 전용 테이블이어야 합니다.

HTTPerror.code원인
404TABLE_NOT_FOUND테이블이 없거나, 닫혔거나, 다른 오퍼레이터의 전용 테이블
403TABLE_NOT_OWNED공용 테이블(본사가 관리 — 바꿀 수 없음)
400INVALID_REQUESTJSON 오류 또는 필드 오류(details.fields)
400INVALID_CONFIG게임 엔진이 이 설정을 받지 않음(message 에 사유)
  • 한도 · 레이크 · 타이머 · 레이크 규칙 변경은 진행 중인 판은 옛 값으로 끝나고 다음 판부터 적용됩니다.
  • 금액은 모두 최소 단위 정수이고, 금액 1단위(10^exponent, GET /currencies)의 배수만 받습니다.
  • 모든 변경은 변경 이력에 남고, 응답 헤더 X-Audit-Id 로 되돌릴 수 있습니다.

POST /tables ​

POST {API_BASE}/operator/v1/tables

전용 테이블을 만듭니다. 독립운영만 쓸 수 있고, 본사가 이 오퍼레이터에 테이블 만들기를 허용한 게임만 됩니다(GET /games 의 table_create, GET /tables 의 templates[].allowed).

원본을 둘 중 하나로 고릅니다.

  • from: 볼 수 있는 테이블(공용 또는 자기 전용, clonable: true)을 복제
  • game_code: 그 게임의 기본 틀(templates[], available: true)로 만들기

새 테이블은 원본의 세부 설정(타이머 등)을 따르고, 이름 · 통화 · 한도 · 좌석 수 · 정렬 · 레이크만 바꿉니다. 딜러 스튜디오 테이블(studio: true)을 원본으로 쓰면 영상 없는 자동 딜링 테이블로 만들어집니다.

요청 필드 ​

필드타입필수설명
fromstring둘 중 하나복제할 테이블 ID(tbl_…)
game_codestring둘 중 하나기본 틀로 만들 게임 코드(from 이 있으면 무시)
namesobject필수언어별 이름 {ko, en, zh, ja, th, vi}. en 또는 ko 중 하나는 있어야 하고, 각 60자 이하. 비운 언어는 영어 이름(없으면 한국어 이름)으로 채웁니다.
currencystring필수운영 통화. 오퍼레이터 사용 통화 중 하나
limitsobject필수한도 {키: 금액}. 아래 한도 규칙
max_seatsinteger좌석 수. 원본에 좌석이 있는 게임만. 게임이 받지 않는 값이면 INVALID_CONFIG
sort_orderinteger로비 정렬 순서. 비우면 원본 값
rake_bpinteger레이크 비율(bp, 0~2000 = 0~20%). 레이크 있는 게임만
rake_capinteger판당 최고 수수료(0 이상, 0 = 상한 없음). 레이크 있는 게임만
no_flop_no_dropboolean플랍 전에 끝난 핸드는 레이크를 떼지 않음. 홀덤 계열(홀덤 · 오마하 · 라이브 홀덤)만
rake_floorboolean한 판 레이크의 1단위 미만을 버림(₱142.50 → ₱142). 레이크 있는 게임만
  • 레이크 칸을 비우면 수수료 기본값(rake_defaults)을, 그것도 없으면 원본 테이블 값을 따릅니다.
  • 레이크가 없는 게임(바카라 · 블랙잭 · 레드독)에 레이크 칸을 보내면 그 칸이 오류입니다.
  • 운영 통화가 아닌 다른 통화의 한도 · 레이크는 환산해 채워 두며, 만든 뒤 PUT /tables/{table_id}/settings 로 고칩니다.

한도 규칙 ​

limits 는 POST /tables 와 PUT /tables/{table_id}/settings 에서 같은 규칙으로 검사합니다.

  • 원본 테이블(또는 기본 틀) limits 의 키를 모두, 그 키만 보냅니다. 값이 0 인 키(예: 홀덤 ante)도 빼면 안 됩니다.
  • 값은 0 이상이고, 원본 값이 0 보다 큰 키는 0 보다 커야 합니다.
  • 금액 1단위의 배수여야 합니다.
  • min_X ≤ max_X(예: min_buy_in ≤ max_buy_in), sb ≤ bb 여야 합니다.
  • 테이블의 베팅 크기가 그 통화의 사이트 베팅 한도 안이어야 합니다(밖이면 만들어도 자기 플레이어에게 보이지 않으므로 거절합니다).

잘못된 칸은 details.fields 에 limits.<키> 로 옵니다.

요청 예시 ​

json
{
  "from": "tbl_019a0f3c8e1f7a2b9c4d5e6f7a8b9c0d",
  "names": { "en": "ACME VIP 50/100", "ko": "ACME VIP 50/100" },
  "currency": "PHP",
  "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 },
  "sort_order": 0,
  "rake_bp": 500,
  "rake_cap": 50000,
  "no_flop_no_drop": true,
  "rake_floor": true
}

응답 ​

201 Created

json
{ "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718" }

만든 테이블은 바로 운영에 올라가 GET /tables 와 플레이어 로비에 나타납니다.

오류 ​

HTTPerror.code원인
403TABLE_CREATE_FORBIDDENprepaid 오퍼레이터이거나, 테이블 만들기가 허용되지 않은 게임
404TABLE_NOT_FOUNDfrom 테이블이 없거나, 닫혔거나, 다른 오퍼레이터의 전용 테이블
404GAME_NOT_FOUND게임이 이 오퍼레이터에 켜져 있지 않음(from · game_code 를 모두 비운 경우 포함)
404TEMPLATE_NOT_FOUND그 게임의 기본 틀이 없음(templates[].available: false)
400TEMPLATE_NOT_ALLOWED원본 한도가 복제할 수 없는 모양
400INVALID_REQUESTdetails.fields: names.<언어> · currency · limits.<키> · max_seats · rake_bp · rake_cap · no_flop_no_drop · rake_floor
400INVALID_CONFIG게임 엔진이 이 설정을 받지 않음(좌석 수 등)
500TABLE_OPEN_FAILED저장 뒤 테이블을 띄우지 못함(만들어지지 않은 것으로 처리됩니다)
503UNAVAILABLE테이블 만들기를 지금 쓸 수 없음

PATCH /tables/{table_id} ​

PATCH {API_BASE}/operator/v1/tables/{table_id}

전용 테이블의 이름과 정렬 순서를 바꿉니다. 한도 · 레이크는 PUT …/settings, 운영 통화는 PUT …/currency 로 바꿉니다.

요청 필드 ​

필드타입필수설명
namesobject필수언어별 이름. POST /tables 의 names 와 같은 규칙. 보낸 값으로 전체 교체합니다.
sort_orderinteger로비 정렬 순서. 비우면 그대로
json
{ "names": { "en": "ACME VIP 100/200" }, "sort_order": 1 }

응답 ​

204 No Content. 로비 이름은 바로 바뀝니다.

오류 ​

전용 테이블 공통 오류. 필드 오류는 names.<언어>(60자 초과, 또는 en · ko 모두 비면 names.en).

POST /tables/{table_id}/close ​

POST {API_BASE}/operator/v1/tables/{table_id}/close

전용 테이블을 닫습니다. 본문은 필요 없습니다(빈 본문 또는 {} 로 서명).

  • 앉아 있던 플레이어는 진행 중인 판이 끝나면 캐시아웃됩니다(뱅크형 게임에서 정산되지 않은 판은 무효 · 환불). 돈은 평소처럼 지갑 콜백으로 돌아갑니다.
  • 닫은 테이블은 목록에서 사라지고 Operator API 로 다시 열 수 없습니다. 다시 쓰려면 새로 만드세요.

응답 ​

204 No Content

오류 ​

전용 테이블 공통 오류.

PUT /tables/{table_id}/settings ​

PUT {API_BASE}/operator/v1/tables/{table_id}/settings

전용 테이블의 통화 하나의 한도 · 레이크를 저장합니다. 테이블은 운영 통화 하나로 돌지만, 통화마다 설정을 따로 적어 두었다가 운영 통화를 바꿀 때 그 통화의 값을 씁니다.

  • currency 가 운영 통화면 운영 중인 테이블에 바로 알려 다음 판부터 적용합니다.
  • 운영 통화가 아니면 저장만 합니다.

요청 필드 ​

필드타입필수설명
currencystring필수오퍼레이터 사용 통화 중 하나
limitsobject필수한도. 테이블 지금 limits 와 같은 키 — 한도 규칙
rake_bpinteger레이크 있는 게임은 필수레이크 비율(bp, 0~2000)
rake_capinteger판당 최고 수수료(0 이상, 비우거나 0 = 상한 없음)

레이크가 없는 게임은 rake_bp · rake_cap 을 무시합니다.

json
{
  "currency": "PHP",
  "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 },
  "rake_bp": 450,
  "rake_cap": 40000
}

응답 ​

200 OK

json
{
  "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
  "currency": "PHP",
  "settings": {
    "PHP": { "limits": { "sb": 5000, "bb": 10000, "ante": 0, "min_buy_in": 400000, "max_buy_in": 2000000 }, "rake_bp": 450, "rake_cap": 40000 },
    "USD": { "limits": { "sb": 100, "bb": 200, "ante": 0, "min_buy_in": 8000, "max_buy_in": 40000 }, "rake_bp": 500, "rake_cap": 1000 },
    "KRW": { "limits": { "sb": 1000, "bb": 2000, "ante": 0, "min_buy_in": 80000, "max_buy_in": 400000 }, "rake_bp": 500, "rake_cap": 10000 }
  }
}
필드타입설명
table_idstring테이블 ID
currencystring테이블 운영 통화(요청한 통화가 아님)
settingsobject저장 뒤 전체 통화별 설정

오류 ​

전용 테이블 공통 오류. 필드 오류: currency · limits.<키>(사이트 베팅 한도 밖 포함) · rake_bp · rake_cap.

PUT /tables/{table_id}/currency ​

PUT {API_BASE}/operator/v1/tables/{table_id}/currency

전용 테이블의 운영 통화를 바꿉니다. 그 통화의 settings 값이 한도 · 레이크가 되고 테이블을 다시 띄웁니다.

  • 아무도 앉아 있지 않을 때만 바꿀 수 있습니다(앉은 사람이 있으면 409 TABLE_BUSY).
  • 지금 운영 통화와 같은 값을 보내면 아무것도 바꾸지 않고 200 입니다.

요청 필드 ​

필드타입필수설명
currencystring필수새 운영 통화. 오퍼레이터 사용 통화 중 하나
json
{ "currency": "USD" }

응답 ​

200 OK — { "table_id", "currency"(새 운영 통화), "settings" } (PUT …/settings 응답과 같은 모양)

오류 ​

HTTPerror.code원인
409TABLE_BUSY앉아 있는 플레이어가 있음
400INVALID_REQUESTdetails.fields: currency
400INVALID_CONFIG그 통화 설정을 게임 엔진이 받지 않음
500TABLE_OPEN_FAILED테이블을 다시 띄우지 못함

그 밖에 전용 테이블 공통 오류.

PUT /tables/{table_id}/live ​

PUT {API_BASE}/operator/v1/tables/{table_id}/live

전용 라이브 홀덤 · 스피드 홀덤 테이블의 딜링 방식과 일시정지를 바꿉니다. 보낸 값만 바꿉니다.

필드타입필수설명
dealingstringauto(자동 딜링 — 영상 · 딜러 없이 서버가 카드를 냄) · manual(딜러가 카드를 스캔하고 영상을 송출)
pausedbooleantrue 면 새 판을 시작하지 않음(진행 중인 판은 끝까지)
  • 일시정지는 바로, 딜링 방식은 진행 중인 판이 끝난 뒤 적용됩니다.
  • manual 로 바꾸면 그 테이블은 딜러툴이 영상을 송출하고 카드를 스캔하는 테이블이 됩니다. 딜러 · 딜러툴 준비는 딜러를 보세요.
json
{ "dealing": "auto", "paused": true }

응답 ​

200 OK

json
{ "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718", "dealing": "auto", "paused": true }

오류 ​

HTTPerror.code원인
400UNSUPPORTED_GAME라이브 홀덤 · 스피드 홀덤이 아닌 테이블
400INVALID_REQUESTdetails.fields: dealing(auto · manual 이 아님)

그 밖에 전용 테이블 공통 오류.

PUT /tables/{table_id}/timers ​

PUT {API_BASE}/operator/v1/tables/{table_id}/timers

전용 테이블의 배팅 · 차례 시간을 바꿉니다. 보낸 키만 바꿉니다.

필드타입필수설명
timersobject필수{키: 밀리초}. 하나 이상. 값은 3000~300000(3~300초), 1000 의 배수

게임별 키(지금 값과 기본값은 GET /tables 의 timers 에 있습니다)

게임키
홀덤 · 오마하 · 라이브 홀덤action_ms(차례 시간)
스피드 홀덤 · 바카라bet_ms(배팅 시간)
블랙잭bet_ms(배팅 시간), decision_ms(결정 시간)
맞고 · 고스톱turn_ms
섯다turn_ms, select_ms
바둑이turn_ms, draw_ms
통잇draw_ms, play_ms, fight_ms
레드독bet_ms, raise_ms
  • 차례가 있는 게임은 다음 차례 · 배팅 창부터, 라운드 게임(스피드 홀덤 · 블랙잭 · 바카라)은 판 사이에(판 중이면 그 판이 끝난 뒤) 새 시간이 적용됩니다. 이미 돌고 있는 카운트다운은 그대로입니다.
json
{ "timers": { "action_ms": 20000 } }

응답 ​

200 OK

json
{
  "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
  "timers": [ { "key": "action_ms", "ms": 20000, "default_ms": 15000 } ]
}

오류 ​

전용 테이블 공통 오류. 필드 오류: timers(비었음) · timers.<키>(이 게임에 없는 키, 범위 밖, 1000 의 배수 아님).

PUT /tables/{table_id}/rake-rule ​

PUT {API_BASE}/operator/v1/tables/{table_id}/rake-rule

전용 테이블의 레이크 규칙을 바꿉니다. 레이크가 있는 게임만 됩니다. 보낸 값만 바꾸며, 하나 이상 보내야 합니다.

필드타입필수설명
no_flop_no_dropboolean플랍 전에 끝난 핸드는 레이크를 떼지 않음. 홀덤 계열(홀덤 · 오마하 · 라이브 홀덤)만
rake_floorboolean한 판 레이크의 금액 1단위 미만을 버림(₱142.50 → ₱142). 레이크 있는 모든 게임
json
{ "rake_floor": true }

응답 ​

200 OK

json
{
  "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
  "rake_rule": { "no_flop_no_drop": true, "rake_floor": true }
}

오류 ​

전용 테이블 공통 오류. 필드 오류: rake_rule(레이크가 없는 게임, 또는 두 값을 모두 비움) · no_flop_no_drop(홀덤 계열이 아님).

PUT /tables/{table_id}/card-design ​

PUT {API_BASE}/operator/v1/tables/{table_id}/card-design

전용 라이브 홀덤 · 스피드 홀덤 테이블의 카드 디자인을 따로 고릅니다. 화면 설정이라 게임 진행에는 영향이 없고, 플레이어가 다음에 테이블에 들어올 때 반영됩니다.

필드타입필수설명
facestring앞면: texas · studio
backstring뒷면: texas · rlive
back_colorstring뒷면 색: blue · red · black (색을 고를 수 있는 뒷면 rlive 에만 쓰입니다)
  • 요청은 전체 교체입니다. 비우거나 뺀 칸은 오퍼레이터 기본값(GET /card-design) → 시스템 기본값 순으로 따릅니다. 모두 비우면 테이블 지정을 지웁니다.
  • 선택지와 각 디자인은 오퍼레이터 설정을 보세요.
json
{ "back": "rlive", "back_color": "red" }

응답 ​

200 OK

json
{
  "table_id": "tbl_019a1b2c3d4e7f50a1b2c3d4e5f60718",
  "card_design": { "back": "rlive", "back_color": "red" }
}

오류 ​

전용 테이블 공통 오류. 필드 오류: card_design(라이브 홀덤 · 스피드 홀덤이 아님) · face · back · back_color(선택지에 없는 값).

문서 v1.0.0 · Operator API v1