Notell API Docs
Русский

Integration

Game launch

POST https://notell-api.com/playGame.do creates a session for a player and returns a link to the game client.

Request#

json
{
  "provider": "own",
  "partner": "YOUR_PARTNER_ID",
  "api_key": "YOUR_API_KEY",
  "player_id": "player-123",
  "symbol": "gates-of-olympus",
  "currency": "UAH",
  "gametype": "demo",
  "lang": "de",
  "client_platform": "mobile"
}
FieldRequiredDescription
provideryesAlways "own".
partneryesYour project id.
api_keyyesYour project's API key.
player_idyesYour player id, 1–128 characters.
symbolyesGame id from /games/health (game_id) or the games list. An unknown id gives UNSUPPORTED_GAME (404).
currencyyesUAH, USD, EUR or RUB.
gametypeyesAlways "demo" (see below).
langnoStandard language code, e.g. en, de, pt-BR, zh-Hant. Missing = the project's default language. See Languages.
client_platformnodesktop (default) or mobile. Selects the desktop or mobile client build of Pragmatic Play titles; it has no effect on the other providers.
regionnoRU or NONE. Accepted for compatibility; it does not change the session.

Any other field makes the request fail with INVALID_REQUEST; the old freespins field is refused with PROMO_UNSUPPORTED — use free spins via /gameActions.do. There is no lobby or return-URL parameter: handle navigation back to your site in your own page around the game.

Optional header: Idempotency-Key (see Conventions).

Demo and real mode#

The platform runs in TEST_ONLY mode. gametype must be demo; any other value is answered with HTTP 400 REAL_MODE_DISABLED. The balance used is the one your wallet reports in session_info.

Response#

json
{
  "status": "ok",
  "link": "https://notell-api.com/… (game client address with the session token)",
  "meta": {
    "session_id": "9d0c3f7e-…",
    "currency": "UAH",
    "language": "de"
  }
}
FieldDescription
linkThe URL to open in the player's browser. It contains the session token: hand it only to this player and do not log it.
meta.session_idId of the session; it also appears in your wallet callbacks.
meta.currency, meta.languageThe currency and the standard language code of the session.

The meta object may contain additional informational fields about the game build; ignore the ones you do not know.

What happens during launch#

  1. The key is checked (UNAUTHORIZED otherwise) and the body is validated.
  2. The platform calls your wallet with session_info for the player. If it does not succeed, the launch fails with BALANCE_UNAVAILABLE and no session is created.
  3. The session is stored (it expires 2 hours after creation) and the link is returned.

Relaunching and unfinished rounds#

  • A player with an unfinished round in the same game always continues it: the launch returns a link to the session that owns the round (an expired session is revived with a fresh token and expiry).
  • If you relaunch in a different language while a round is unfinished, the session switches to the new language.
  • If the unfinished round is in a different currency, the launch is answered with ROUND_IN_PROGRESS; launch with the original currency.
  • Repeating the call with the same Idempotency-Key and body returns the same link.

Errors#

CodeHTTPCause
UNAUTHORIZED401Unknown partner or wrong api_key
INVALID_REQUEST400Missing/invalid field, unknown field, player_id empty or longer than 128
UNSUPPORTED_GAME404symbol is not published
UNSUPPORTED_LANGUAGE400lang malformed or not offered by the game
REAL_MODE_DISABLED400gametype is not demo
PROMO_UNSUPPORTED400Legacy freespins field sent
BALANCE_UNAVAILABLE400Your wallet did not answer session_info successfully
ROUND_IN_PROGRESS400Unfinished round in another currency
INVALID_IDEMPOTENCY_KEY / IDEMPOTENCY_CONFLICT400 / 409See Conventions

All codes: error reference.

Documentation for operators and integrators.TEST_ONLY platform: non-withdrawable units, no real payments.