๐Ÿง  How it works - Summary
  1. You generate a session token using command=getGameUrl, by sending your json_request via HTTP POST BODY, to our REST API URL (do not pass this by mistake to the Game Launch API URL)

  2. You build the Game Launch URL using the play_token like indicated below
    EG:https://www.cryptoclub.casino/wwwmisc/API/play_url.php?play_token=ax4sH24aw4123astyy537sdys
    Make sure to replace the URL with your Games Launch API URL provided with the setup settings.

  3. You can embed the URL in your website using an iFrame (recommended) or launch this in a new tab (not recommended)

๐ŸชœStep by step guide

This method relies on sending a set of parameters that will generate a session play token, to our RGS-CWS API.

  1. See Passing data to our API Endpoints if you're not yet familiar with how to send JSON data to our REST API URL.

  2. Use command=getGameUrl and pass the data from the table below.

  3. You should receive the play_token in the response.
    You must then attach the play_token value to your launch game URL, like this:
    {Games Launch API URL}?play_token=โ€ฆ.
    EG:https://www.cryptoclub.casino/wwwmisc/API/play_url.php?play_token=ax4sH24aw4123astyy537sdys
    Please make sure to use the correct URLs given to you by CWS Support. You must replace the URL above with your Games Launch API URL provided with the setup settings.

  4. Once you are able to obtain the play_token, see the Game Launch documentation section

The following parameters, marked with *, need to be included in the request:

Parameter

Mandatory

Description

Accepted values

*command

โœ…

Must have value 'getGameUrl'

(string) getGameUrl

*environment

โœ…

โ€œstagingโ€ or โ€œproductionโ€. Default: production. Use โ€œstagingโ€ for trial integrations.

(string) staging or production

*mode

โœ…

โ€œrealโ€ or โ€œfunโ€

(string) realor fun

*game

โœ…

The unique ID of the game in the RGS-CWS system (see Get List Of Available Games)

(integer) EG:5302

*login

โœ…

Valid username (6โ€“100 alphanum chars). Must NOT start with number;

NOTE: login is NOT case sensitive meaning that HEROPLAYER is the same as heroplayer

(string) EG:"bigjoe789"

*expiry_date

โœ…

Token expiration in Y-m-d H:i:s format; Timezone=GMT (max 60 mins)

(string) EG: "2026-12-25 19:55:07"

*currency

โœ…

Session currency (e.g., USD, GBP, POINT, GC, SC, DOGE, BTC, USDT, etc.). For list of all 3 digit iso codes, click here . If you need more currencies, please contact us.

(string) EG: "DOGE"

*pass

โœ…

User password for this API (min 6 chars, can be hashed); You can pass any value, but do not omit passing it and neither change it. NOTE: pass is NOT case sensitive meaning that HEROPLAYER is the same as heroplayer.
NOTE: Changing this will cause access restricted, so you must never change it.

(string) EG:"j1g3g1ywRR"

*apiusername

โœ…

API Username

(string)

*apipass

โœ…

API Password

(string)

โš ๏ธOPTIONAL! The following parameters are optional:

Parameter

Mandatory

Description

Accepted values

lang

โŒ

Optional. Language (ISO Code); For Social Casino, send en-sc
NOTE: Supported languages are listed at the end of this document

(string) EG: en, en-sc

rg

โŒ

Optional. Responsible Gaming popup interval, in minutes. Set to 0 or 999999 to disable

(integer) EG: 60

hidemenu

โŒ

Optional. 1 = hide the top menu UI (Home,History,Recent Games, Rules,etc.) that usually appears on top left or top right of the game page

(integer) EG:1

paytable_version

โŒ

Optional. Changes the game RTP. Only works for Slot Games.
RTP available:
highest=98%,
high=94%,
medium=90%,
low=85%,
lowest=80%

(string) highest or high or medium or low or lowest

buyfeature_disable

โŒ

Optional. Set this to 1 to hide the BUY FEATURE buttons from the games and to disable this function. Setting this to 1, will disable and suppress any other config done via admin panel/database for Buy Feature Availability. Any other value than 1 will be ignored and it will cause the game to use the default system settings, defined in the admin panel.

(int) EG:1

jackpot_disable

โŒ

Optional. Set this to 1 to DISABLE the jackpots from being won. The jackpots will still appear in the game when value is 1, but cannot be won. Setting this to 1, will disable and suppress any other config done via admin panel/database for Jackpot availability. Any other value than 1 will be ignored and it will cause the game to use the default system settings, defined in the admin panel.

(int) EG:1

max_win_cap

โŒ

Optional. Affects gameโ€™s max exposure, no matter the bet value.

If this value is greater than 0, then the maximum win from any single game round is going to be capped to this value and the exceeding amount will be voided.
EG: If according to the game rules, the player should win 25000$, but the maximum win allowed is set to 10000$, then the player will receive only 10000$. He will receive a message: Congratulations, you have reached the maximum win limit!
This information will also be displayed in the game rules, if this value is >0!

Set to 0 to disable

Progressive Jackpot Wins are not affected by this feature.


Alternatively, the Maximum Win Allowed can also be controlled by adjusting/lowering the Max Bet in each game - for more information on doing this, please contact the developer for support!

(float as string) EG:"5000.00"

totalwon

โŒ

Optional. The starting value for the userโ€™s total daily won amount (max 4 decimals). Used for tracking daily session winnings limit. EG: if this amount + future wins exceed the platform limits, the player cannot play anymore.

(float as string) EG:"812.22"

extradata

โŒ

Optional. Extra data required by some API commands. Ignore for this command.

(string)

custom_data

โŒ

Optional . This value is resent with each request passed to your getbalance/balance_adj endpoints, in parameter custom_data

(string) EG:
raniowgragv2i4y2qqq

exit_url

โŒ

Optional . Full https:// URL for game exit (when user clicks EXIT or HOME)

(string) EG: https://myweb.com/lobby

token_expire_url

โŒ

Optional . Full https:// URL the player is redirected to when a token is invalid โ€” either expired, or already claimed by a different browser/device. Falls back to exit_url if not set. Strongly recommended so players never land on a raw error page.

(string) EG: https://myweb.com/game5203

force_min_bet

โŒ

Optional . Minimum allowed TOTAL bet value.

Slot games โ€” the minimum total bet per spin (total = bet per line ร— paylines). It is converted internally to a per-line coin window (divided by the game's paylines) and the game's bet denominations are filtered to that window (sizes outside are hidden). If no bet size falls inside the window, getGameUrl returns an error โ€” choose a range that allows at least one of the game's bet sizes. Note: on games with a fixed line count the window is computed for the full line count; on games with player-selectable lines the minimum is enforced conservatively so the total bet can never fall below force_min_bet, even at 1 selected line.

Table games โ€” caps the total bet.

Other games (scratch / keno / video poker / plinko / bingo) โ€” applies to the bet value directly.

โš ๏ธ Changed 16 July 2026: on slot games these values were previously applied per line; they now describe the TOTAL bet.

(float as string) EG:"0.50"

force_max_bet

โŒ

Optional . Maximum allowed TOTAL bet value.

Slot games โ€” the maximum total bet per spin (total = bet per line ร— paylines). It is converted internally to a per-line coin window (divided by the game's paylines) and the game's bet denominations are filtered to that window (sizes above it are hidden). If no bet size falls inside the window, getGameUrl returns an error โ€” choose a range that allows at least one of the game's bet sizes. EG: force_max_bet=100000 on a 20-payline slot shows coin sizes up to 5000.00 (5000 ร— 20 lines = 100000 total). Note: if the player selects fewer paylines, the total bet decreases proportionally.

Table games โ€” caps the total bet.

Other games (scratch / keno / video poker / plinko / bingo) โ€” applies to the bet value directly.

โš ๏ธ Changed 16 July 2026: on slot games these values were previously applied per line; they now describe the TOTAL bet.

(float as string) EG:"100.00"

force_minchip

โŒ

Optional โ€” slots and table games only.

Slot games โ€” minimum coin size (bet per line) the player can select. The game's bet sizes are narrowed to this value and above โ€” snapped to the nearest supported bet size within the game's own list; you can narrow the range but never widen it. If no bet size fits the requested window, getGameUrl returns an error.

Table games (roulette / cards / dice) โ€” minimum chip denomination the player can select. Snapped to the nearest supported chip within the game's own chip range โ€” you can narrow the range but never widen it beyond the game's configured chips.

โš ๏ธ On slot games this parameter is IGNORED if force_min_bet or force_max_bet is also sent (the bet-range parameters take precedence).

Ignored on scratch / keno and other non-table games.

(number) โ€” supported chips: 0.01, 0.05, 0.1, 0.25, 1, 5, 10, 25, 100, 500, 1000, 5000, 10000, 25000, 100000. EG:5

force_maxchip

โŒ

Optional โ€” slots and table games only.

Slot games โ€” maximum coin size (bet per line) the player can select. The game's bet sizes are narrowed to this value and below โ€” snapped to the nearest supported bet size within the game's own list; you can narrow the range but never widen it. If no bet size fits the requested window, getGameUrl returns an error.

Table games (roulette / cards / dice) โ€” maximum chip denomination the player can select. Values are snapped to the nearest supported chip within the game's range; out-of-range values are clamped, never rejected.

โš ๏ธ On slot games this parameter is IGNORED if force_min_bet or force_max_bet is also sent (the bet-range parameters take precedence).

Ignored on scratch / keno and other non-table games.

(number) โ€” supported chips: 0.01, 0.05, 0.1, 0.25, 1, 5, 10, 25, 100, 500, 1000, 5000, 10000, 25000, 100000. EG:25

account_email

โŒ

Optional . Defaults to {login}@{yourdomain.com}

(string)

account_name

โŒ

Optional . Defaults to login

(string)

account_dob

โŒ

Optional . Defaults to 1980-01-01

(string)

account_gender

โŒ

Optional

(string)

account_street

โŒ

Optional

(string)

account_city

โŒ

Optional

(string)

account_country

โŒ

Optional

(string)

account_mobiletel

โŒ

Optional

(string)

account_secans

โŒ

Optional . Auto-generates if missing

(string)

show_lobby

โŒ

Optional . Send as 1 to activate. Show themed lobby. This will return our game lobby HTML code so you can embed the entire lobby;

(integer)

games_categories

โŒ

Optional. Comma-separated categories (e.g., slot,table)

slotor tableor cardor scratchor arcadeor racingor videopoker(string)

getbalance_url

โŒ

Optional . Overwrites the webhook URL for getbalance. Must be a valid URL with https:// .Only works if the CWS Provider enabled this. Cannot be enabled in trial.

(string) EG: https://www.myweb.com/getbalance

balance_adj_url

โŒ

Optional . Overwrites the webhook URL for balance adjustments (balance_adj_url). Must be a valid URL with https:// .Only works if the CWS Provider enabled this. Cannot be enabled in trial.

(string) EG: https://www.myweb.com/balance_adj

๐Ÿ“œSample JSON request

(what you send - contains only mandatory data):

{"command": "getGameUrl", "environment": "production", "mode": "real", "game": 6857, "currency": "USD", "login": "demotest", "pass": "123456", "expiry_date": "2027-07-02 14:00:00"}
curl -X POST https://YOUR_API_URL \
  -H "Content-Type: application/json" \
  -d '{
    "command": "getGameUrl",
    "mode": "real",
    "environment": "production",
    "game": 6857,
    "currency": "USD",
    "login": "demotest",
    "pass": "123456",
    "expiry_date": "2027-07-02 14:00:00"
    "apiusername": "yourUsername",
    "apipass": "yourPassword"
  }'
๐Ÿ“ƒSample JSON response

(what the RGS-CWS API will respond)

{"message":"OK","play_token":"7x8qg5890qgw5yq8g5qwaseesSS"}

Please note that the play_token is case sensitive!
Token reuse & lifetime. Each getGameUrl call returns a fresh, single-use play_token. The first browser that opens the token claims it โ€” from then on that same browser can refresh or re-open the game on the same token until it expires (expiry_date, max 60 minutes from generation). The token cannot be replayed from a different browser, device, or user; such an attempt is rejected and the player is redirected to token_expire_url (or exit_url if that is not set). Best practice: request a new play_token for each game launch instead of sharing one token across sessions or devices.

Possible error messages.

RGS-CWS API Response

(located in โ€œmessageโ€ parameter)

MessageDescription

INVALID LOGIN

Login has invalid characters

PASS SHORT

Password is too short (min 6 chars)

EXISTS

Username already exists

OK

Success. Contains id of the player

๐Ÿ—บ๏ธSupported languages

Language code (sent in lang parameter)

Description

en

English

en-sc

English Social (for Social/Sweepstakes)