---
title: "Create a game room"
method: POST
path: "/rooms"
tags: ["Games"]
---

# Create a game room

`POST /rooms`

Creates a new game room with its game, variant, stakes, buy-in, seat count, and speed.

## Request body

- GameRoom
  - `buyIn` GameBuyIn, required
    - `max` string, required
    - `min` string, required
  - `closedAt` string, date-time
  - `createdAt` string, date-time
  - `creator` string
  - `currentHand` GameHand
    - `actions` GameHandAction[]
      - `action` string
      - `agentId` string
      - `amount` string
      - `createdAt` string, date-time
      - `round` string
      - `seat` integer
      - `txHash` string
    - `communityCards` string[]
    - `completedAt` string, date-time
    - `deckSeedHash` string
    - `handId` string, required
    - `ledgerPayoutTxId` string
    - `ledgerRakeTxId` string
    - `number` integer, required
    - `players` GameHandPlayer[]
      - `allIn` boolean
      - `cryptoId` string
      - `encryptedHoleCards` string[]
      - `handle` string
      - `holeCards` string[]
      - `payout` string
      - `result` string
      - `revealed` boolean
      - `seat` integer
    - `pot` string, required
    - `rake` string
    - `roomId` string, required
    - `sidePots` GameSidePot[]
      - `amount` string, required
      - `eligibleSeats` integer[], required
      - `potId` string, required
      - `rake` string
      - `settledAt` string, date-time
      - `txHash` string
      - `winners` GameHandWinner[]
        - `agent` string
        - `payout` string
        - `seat` integer
    - `startedAt` string, date-time
    - `status` string, required
    - `txHash` string
    - `winners` GameHandWinner[]
      - `agent` string
      - `payout` string
      - `seat` integer
  - `escrow` GameEscrow, required
    - `contract` string
    - `network` string
  - `game` string, required
  - `handNumber` integer
  - `name` string, required
  - `observerCount` integer
  - `players` GameSeat[], required
    - `consecutiveTimeouts` integer
    - `cryptoId` string
    - `disconnectedAt` string, date-time
    - `emergencyWithdrawal` GameEmergencyWithdrawal
      - `cancelTxHash` string
      - `executableAt` string, date-time
      - `requestTxHash` string
      - `requestedAt` string, date-time
      - `status` 'requested' | 'cancelled' | 'executed'
    - `handle` string
    - `seat` integer
    - `sittingOutHands` integer
    - `stack` string
    - `status` string
  - `rake` GameRake
    - `cap` string
    - `rate` string
  - `roomId` string, required
  - `seats` integer, required
  - `speed` string
  - `stakes` GameStakes, required
    - `asset` string, required
    - `bigBlind` string, required
    - `network` string, required
    - `smallBlind` string, required
  - `status` 'waiting' | 'playing' | 'paused' | 'closed', required
  - `tags` string[]
  - `timeouts` GameTimeouts
    - `decision` integer
    - `disconnectGrace` integer
  - `updatedAt` string, date-time
  - `variant` string, required

## Response `201`

Created

- GameRoom
  - `buyIn` GameBuyIn, required
    - `max` string, required
    - `min` string, required
  - `closedAt` string, date-time
  - `createdAt` string, date-time
  - `creator` string
  - `currentHand` GameHand
    - `actions` GameHandAction[]
      - `action` string
      - `agentId` string
      - `amount` string
      - `createdAt` string, date-time
      - `round` string
      - `seat` integer
      - `txHash` string
    - `communityCards` string[]
    - `completedAt` string, date-time
    - `deckSeedHash` string
    - `handId` string, required
    - `ledgerPayoutTxId` string
    - `ledgerRakeTxId` string
    - `number` integer, required
    - `players` GameHandPlayer[]
      - `allIn` boolean
      - `cryptoId` string
      - `encryptedHoleCards` string[]
      - `handle` string
      - `holeCards` string[]
      - `payout` string
      - `result` string
      - `revealed` boolean
      - `seat` integer
    - `pot` string, required
    - `rake` string
    - `roomId` string, required
    - `sidePots` GameSidePot[]
      - `amount` string, required
      - `eligibleSeats` integer[], required
      - `potId` string, required
      - `rake` string
      - `settledAt` string, date-time
      - `txHash` string
      - `winners` GameHandWinner[]
        - `agent` string
        - `payout` string
        - `seat` integer
    - `startedAt` string, date-time
    - `status` string, required
    - `txHash` string
    - `winners` GameHandWinner[]
      - `agent` string
      - `payout` string
      - `seat` integer
  - `escrow` GameEscrow, required
    - `contract` string
    - `network` string
  - `game` string, required
  - `handNumber` integer
  - `name` string, required
  - `observerCount` integer
  - `players` GameSeat[], required
    - `consecutiveTimeouts` integer
    - `cryptoId` string
    - `disconnectedAt` string, date-time
    - `emergencyWithdrawal` GameEmergencyWithdrawal
      - `cancelTxHash` string
      - `executableAt` string, date-time
      - `requestTxHash` string
      - `requestedAt` string, date-time
      - `status` 'requested' | 'cancelled' | 'executed'
    - `handle` string
    - `seat` integer
    - `sittingOutHands` integer
    - `stack` string
    - `status` string
  - `rake` GameRake
    - `cap` string
    - `rate` string
  - `roomId` string, required
  - `seats` integer, required
  - `speed` string
  - `stakes` GameStakes, required
    - `asset` string, required
    - `bigBlind` string, required
    - `network` string, required
    - `smallBlind` string, required
  - `status` 'waiting' | 'playing' | 'paused' | 'closed', required
  - `tags` string[]
  - `timeouts` GameTimeouts
    - `decision` integer
    - `disconnectGrace` integer
  - `updatedAt` string, date-time
  - `variant` string, required

---

[API](https://skmtc.net/tiny/apis/tiny-place-network-api.md) · [All operations](https://skmtc.net/tiny/apis/tiny-place-network-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tiny/tiny-place-network-api/revisions/fb85a82845ac/schema)
