Features
Demo mode
Demo mode opens any game as a free-play demo for a visitor who is not logged in on your site. The game, its math and the original client are the same as in a real-wallet session; only the money is virtual. Use it for "Play for fun" buttons and previews.
- No wallet. A demo session never calls your wallet callbacks (
session_info,bet,win,round_info) and writes nothing to your reports, totals or GGR. Its rounds belong to an internal demo project that no report includes. - Isolated demo wallet. The balance is a separate play-money balance in the session currency, 100 000.00 by default. Demo wallets of different projects never mix.
- Same launch method. Demo mode is
POST /playGame.dowithgametype: "fun". The real-wallet mode isgametype: "demo"(the value is nameddemofor historical reasons); see Game launch. - Same behaviour. Bets, wins, free spins inside the game, bonus buys and ante bets work as normal.
- Not available in demo. Operator free spins, target outcomes and personal RTP apply to real-wallet sessions only. The legacy
freespinslaunch field is refused.
Launch a demo game#
POST
/playGame.dogametypefunCreates a demo session and returns a link to the game client. The request is the launch request with gametype: "fun" and the demo fields below.
Request#
curl -s -X POST https://notell-api.com/playGame.do \
-H 'Content-Type: application/json' \
-d '{
"provider": "own",
"partner": "demo-casino",
"api_key": "YOUR_API_KEY",
"symbol": "gates-of-olympus",
"currency": "EUR",
"gametype": "fun",
"player_id": "player-1024",
"demo_balance": "5000.00",
"demo_reset": true,
"lang": "en"
}'{
"provider": "own",
"partner": "demo-casino",
"api_key": "YOUR_API_KEY",
"symbol": "gates-of-olympus",
"currency": "EUR",
"gametype": "fun",
"player_id": "player-1024",
"demo_balance": "5000.00",
"demo_reset": true,
"lang": "en"
}| Field | Type | Required | Description |
|---|---|---|---|
provider, partner, api_key, symbol, currency, lang, client_platform, region | As in Game launch. | ||
gametype | enum | yes | "fun" for demo mode. |
player_id | string | no | 1–128 characters. Only scopes the demo wallet (see below); it is never sent to your wallet. |
demo_balance | money | no | Starting demo balance as a JSON number or a decimal string with at most 2 decimals, from 1.00 to 10 000 000.00. Default: 100000.00. |
demo_reset | boolean | no | Refill the demo wallet to demo_balance at this launch. Meaningful with player_id. Any other type is INVALID_REQUEST. |
demo_balance and demo_reset are accepted only with gametype: "fun"; with gametype: "demo" they fail with INVALID_REQUEST.
Response#
{
"status": "ok",
"link": "https://notell-api.com/… (game client address with the session token)",
"meta": {
"session_id": "9d0c3f7e-2b1a-4c58-a6d3-7e4f1b0c9a28",
"currency": "EUR",
"language": "en",
"gametype": "fun"
}
}| Field | Type | Description |
|---|---|---|
link | string | The URL to open in the player's browser. It contains the session token. |
meta.session_id | string | Id of the demo session. |
meta.currency, meta.language | string | The currency and the language code of the session. |
meta.gametype | string | "fun" for a demo session. |
The meta object also carries informational fields about the game build; ignore the ones you do not know.
Errors#
| Code | HTTP | When |
|---|---|---|
INVALID_DEMO_BALANCE | 400 | demo_balance is outside 1.00–10 000 000.00, is not a number or numeric string, or has more than two decimals. |
INVALID_REQUEST | 400 | demo_reset is not a boolean, player_id is not 1–128 characters, or demo_balance / demo_reset is sent with gametype: "demo". |
DEMO_UNAVAILABLE | 503 | Demo mode is not provisioned on the server. |
Other launch errors (UNAUTHORIZED, UNSUPPORTED_GAME, …) are the same as for any launch.
How the demo wallet behaves#
- Without
player_idevery launch gets a new wallet with a fresh balance. A repeated call with the sameIdempotency-Keyreturns the same session. - With
player_idthe demo wallet is kept for that id (per project and currency) across launches and across games: the balance carries over.demo_reset: truerefills it todemo_balance, and a balance below 1.00 is refilled automatically so the visitor never gets stuck at zero. - Reload. Reloading the game or relaunching with an unfinished round continues that round; the balance is restored from the demo wallet.
See also#
- Game launch: the full launch request.
- Concepts: sessions and rounds.