{
  "info": {
    "name": "Credora Games API",
    "description": "Complete API collection for Credora Games B2B iGaming platform. Includes Snakes & Ladders, Ludo, Betting, and WebSocket endpoints.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "_exporter_id": "credora-games",
    "version": "1.0.0"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "https://credoragames.com/api",
      "type": "string"
    },
    {
      "key": "game_id",
      "value": "",
      "type": "string"
    },
    {
      "key": "operator_id",
      "value": "your_operator_id",
      "type": "string"
    },
    {
      "key": "user_id",
      "value": "end_user_id",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "Snakes & Ladders",
      "description": "Endpoints for managing Snakes & Ladders games. 4 dealers compete on a 10x10 board (100 squares). Snakes move down, ladders move up. First to 100 wins.",
      "item": [
        {
          "name": "Create New Game",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/games/snakes-ladders/create",
              "host": ["{{base_url}}"],
              "path": ["games", "snakes-ladders", "create"]
            },
            "description": "Initialize a new Snakes & Ladders game session with 4 dealers (Red, Blue, Green, Yellow). All dealers start at position 0."
          },
          "response": [
            {
              "name": "Success",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"game_id\": \"da3f189a-9318-42f5-9932-36e687ecf9fd\",\n  \"game_state\": {\n    \"round_id\": \"da3f189a-9318-42f5-9932-36e687ecf9fd\",\n    \"game_code\": \"snakes_ladders\",\n    \"round_number\": 1,\n    \"current_dealer\": 0,\n    \"dealer_positions\": [\n      { \"dealer_id\": \"dealer_red\", \"color\": \"red\", \"position\": 0, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_blue\", \"color\": \"blue\", \"position\": 0, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_green\", \"color\": \"green\", \"position\": 0, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_yellow\", \"color\": \"yellow\", \"position\": 0, \"status\": \"active\" }\n    ],\n    \"status\": \"open\",\n    \"betting_open\": true\n  }\n}"
            }
          ]
        },
        {
          "name": "Get Game State",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/state",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "state"]
            },
            "description": "Retrieve the current state of an active game including dealer positions, round number, and betting status."
          },
          "response": [
            {
              "name": "Success",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"game_id\": \"uuid\",\n  \"game_state\": {\n    \"current_dealer\": 2,\n    \"dealer_positions\": [\n      { \"dealer_id\": \"dealer_red\", \"color\": \"red\", \"position\": 42, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_blue\", \"color\": \"blue\", \"position\": 28, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_green\", \"color\": \"green\", \"position\": 15, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_yellow\", \"color\": \"yellow\", \"position\": 67, \"status\": \"active\" }\n    ],\n    \"last_roll\": 4,\n    \"betting_open\": false,\n    \"round_number\": 12,\n    \"status\": \"open\"\n  }\n}"
            }
          ]
        },
        {
          "name": "Get Current Odds",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/odds",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "odds"]
            },
            "description": "Retrieve real-time odds for all betting markets. Odds dynamically adjust based on dealer positions."
          },
          "response": [
            {
              "name": "Success",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"game_id\": \"uuid\",\n  \"odds\": {\n    \"winner\": { \"red\": 3.98, \"blue\": 5.5, \"green\": 5.5, \"yellow\": 5.5 },\n    \"next_roll_even_odd\": { \"even\": 1.9, \"odd\": 1.9 },\n    \"next_roll_range\": { \"high\": 1.85, \"low\": 1.85 },\n    \"first_to_ladder\": { \"red\": 3.5, \"blue\": 3.5, \"green\": 3.5, \"yellow\": 3.5 },\n    \"first_to_snake\": { \"red\": 3.5, \"blue\": 3.5, \"green\": 3.5, \"yellow\": 3.5 }\n  }\n}"
            }
          ]
        },
        {
          "name": "Roll Dice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/roll-dice",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "roll-dice"]
            },
            "description": "Execute a dice roll for the current dealer. Returns the dice value, dealer movement, any events (snake/ladder), and updated game state."
          },
          "response": [
            {
              "name": "Normal Move",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"dice_value\": 4,\n  \"dealer\": {\n    \"dealer_id\": \"dealer_red\",\n    \"position\": 14,\n    \"color\": \"red\",\n    \"status\": \"active\"\n  },\n  \"event\": \"ladder\",\n  \"event_details\": \"4 -> 14\",\n  \"game_state\": { \"...\" : \"updated game state\" }\n}"
            }
          ]
        },
        {
          "name": "Open Betting Window",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/open-betting",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "open-betting"]
            },
            "description": "Opens the 15-second betting window for the current round. Players can place bets during this window."
          },
          "response": [
            {
              "name": "Success",
              "status": "OK",
              "code": 200,
              "body": "{ \"status\": \"betting_open\" }"
            }
          ]
        }
      ]
    },
    {
      "name": "Ludo",
      "description": "Endpoints for managing Ludo games. 4 dealers progress through 57 positions. Must eliminate at least one opponent to enter home. First to position 57 wins.",
      "item": [
        {
          "name": "Create Ludo Game",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/games/ludo/create",
              "host": ["{{base_url}}"],
              "path": ["games", "ludo", "create"]
            },
            "description": "Initialize a new Ludo game session. 4 dealers start immediately (no need for 6 to begin)."
          },
          "response": [
            {
              "name": "Success",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"game_id\": \"uuid\",\n  \"game_state\": {\n    \"game_code\": \"ludo\",\n    \"round_number\": 1,\n    \"current_dealer\": 0,\n    \"dealer_positions\": [\n      { \"dealer_id\": \"dealer_red\", \"color\": \"red\", \"position\": 0, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_blue\", \"color\": \"blue\", \"position\": 0, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_green\", \"color\": \"green\", \"position\": 0, \"status\": \"active\" },\n      { \"dealer_id\": \"dealer_yellow\", \"color\": \"yellow\", \"position\": 0, \"status\": \"active\" }\n    ],\n    \"status\": \"open\",\n    \"betting_open\": true\n  }\n}"
            }
          ]
        },
        {
          "name": "Get Game State",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/state",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "state"]
            },
            "description": "Same endpoint as Snakes & Ladders — works for all game types."
          },
          "response": []
        },
        {
          "name": "Get Current Odds",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/odds",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "odds"]
            },
            "description": "Returns winner, next_roll_even_odd, and next_roll_range odds for Ludo. No ladder/snake markets."
          },
          "response": []
        },
        {
          "name": "Roll Dice",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base_url}}/games/{{game_id}}/roll-dice",
              "host": ["{{base_url}}"],
              "path": ["games", "{{game_id}}", "roll-dice"]
            },
            "description": "Roll dice for the current Ludo dealer. May trigger a 'kill' event when landing on an opponent."
          },
          "response": [
            {
              "name": "Kill Event",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"dice_value\": 5,\n  \"dealer\": {\n    \"dealer_id\": \"dealer_blue\",\n    \"position\": 23,\n    \"color\": \"blue\",\n    \"status\": \"active\"\n  },\n  \"event\": \"kill\",\n  \"game_state\": { \"...\" : \"updated game state\" }\n}"
            }
          ]
        }
      ]
    },
    {
      "name": "Betting",
      "description": "Endpoints for placing and retrieving bets. Operators use these to place bets on behalf of their users.",
      "item": [
        {
          "name": "Place Bet",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"game_id\": \"{{game_id}}\",\n  \"market_type\": \"winner\",\n  \"selection\": \"red\",\n  \"stake\": 100.00,\n  \"operator_id\": \"{{operator_id}}\",\n  \"user_id\": \"{{user_id}}\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/bets/place",
              "host": ["{{base_url}}"],
              "path": ["bets", "place"]
            },
            "description": "Place a bet on behalf of a user. Supported market types:\n- `winner` — Selections: red, blue, green, yellow\n- `next_roll_even_odd` — Selections: even, odd\n- `next_roll_range` — Selections: high (4-6), low (1-3)\n- `first_to_ladder` — SNL only: red, blue, green, yellow\n- `first_to_snake` — SNL only: red, blue, green, yellow"
          },
          "response": [
            {
              "name": "Bet Placed",
              "status": "OK",
              "code": 200,
              "body": "{\n  \"id\": \"bet_uuid\",\n  \"game_id\": \"game_uuid\",\n  \"market_type\": \"winner\",\n  \"selection\": \"red\",\n  \"stake\": 100.00,\n  \"odds\": 3.98,\n  \"operator_id\": \"your_operator_id\",\n  \"user_id\": \"end_user_id\",\n  \"status\": \"pending\",\n  \"created_at\": \"2026-01-09T17:30:00Z\"\n}"
            }
          ]
        },
        {
          "name": "Get Game Bets",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/bets/game/{{game_id}}",
              "host": ["{{base_url}}"],
              "path": ["bets", "game", "{{game_id}}"]
            },
            "description": "Retrieve all bets for a specific game, including settlement status and payouts."
          },
          "response": [
            {
              "name": "Bets List",
              "status": "OK",
              "code": 200,
              "body": "[\n  {\n    \"id\": \"bet_uuid\",\n    \"game_id\": \"game_uuid\",\n    \"market_type\": \"winner\",\n    \"selection\": \"red\",\n    \"stake\": 100.00,\n    \"odds\": 3.98,\n    \"status\": \"won\",\n    \"payout\": 398.00,\n    \"created_at\": \"2026-01-09T17:30:00Z\"\n  }\n]"
            }
          ]
        }
      ]
    },
    {
      "name": "Guest System",
      "description": "Guest session management for demo play.",
      "item": [
        {
          "name": "Create Guest Session",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"operator_id\": \"demo\"\n}"
            },
            "url": {
              "raw": "{{base_url}}/guests/create",
              "host": ["{{base_url}}"],
              "path": ["guests", "create"]
            },
            "description": "Create a guest session with $10,000 demo balance. All demo play is tracked under the 'Credora Demo' partner."
          },
          "response": []
        },
        {
          "name": "Get Guest Balance",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base_url}}/guests/{{user_id}}/balance",
              "host": ["{{base_url}}"],
              "path": ["guests", "{{user_id}}", "balance"]
            },
            "description": "Retrieve current balance for a guest user."
          },
          "response": []
        }
      ]
    }
  ]
}
