Notell API Docs
Русский

Features

Target outcomes

A target outcome tells the platform: on this player's n-th paid spin in this game, produce a round whose win is about X times the bet. It is meant for test scenarios, promotions and QA.

  • Available for games with target_outcomes: true in /games/health (433 of 446 games).
  • Methods are POST /gameActions.do; the call needs partner, api_key and an allowlisted IP. The admin panel has a Target outcomes screen (Admin: operations).
  • The round is always the game's own natural outcome, generated for this one entry; the board and features are never constructed by hand and the result is not revealed in advance.

Methods#

methodFieldsAnswer
outcome_scheduleplayer_id, symbol, multiplier, kind?, spin_number?, expires_at?, external_id?, comment?{"status":"ok","outcome":{…}}
outcome_getoutcome_id or external_id{"status":"ok","outcome":{…}}
outcome_listplayer_id?, symbol?, status?{"status":"ok","outcomes":[…]} (at most 200, newest first)
outcome_canceloutcome_id or external_id{"status":"ok","outcome":{…}}
bash
curl -s -X POST https://notell-api.com/gameActions.do \
  -H 'Content-Type: application/json' \
  -d '{
    "method": "outcome_schedule",
    "partner": "YOUR_PARTNER_ID",
    "api_key": "YOUR_API_KEY",
    "player_id": "player-123",
    "symbol": "gates-of-olympus",
    "multiplier": 50,
    "kind": "bonus",
    "spin_number": 3,
    "external_id": "qa-case-17",
    "comment": "QA: big bonus on spin 3"
  }'
FieldRules
player_id1–128 printable characters
symbolGame id with target_outcomes: true (GAME_NOT_FOUND, FORCED_OUTCOMES_UNSUPPORTED)
multiplierTarget win as a multiple of the spin's bet: a positive number (or numeric string) with up to 2 decimals. Not above the game's maximum win (MULTIPLIER_ABOVE_MAX_WIN, INVALID_MULTIPLIER)
kindspin (default): a win without a feature. bonus: a win that comes with a feature (natural trigger, or a feature buy when the player buys). bonus needs a game with a feature (GAME_HAS_NO_BONUS, INVALID_KIND)
spin_numberWhich paid spin of the player, 1–100000, default 1 (INVALID_SPIN_NUMBER)
expires_atISO 8601 with a zone; default now + 7 days; minimum now + 1 hour; maximum now + 90 days (INVALID_EXPIRY)
external_idYour id, unique in the project (DUPLICATE_EXTERNAL_ID)
commentFree text up to 500 characters

The outcome object#

json
{
  "outcome_id": "5a3e…",
  "external_id": "qa-case-17",
  "player_id": "player-123",
  "symbol": "gates-of-olympus",
  "provider": "pragmatic",
  "kind": "bonus",
  "multiplier": "50",
  "spin_number": 3,
  "paid_spins_since": 0,
  "status": "pending",
  "variants": [],
  "comment": "QA: big bonus on spin 3",
  "created_at": "2026-10-15T10:00:00.000Z",
  "expires_at": "2026-10-22T10:00:00.000Z",
  "applied_at": null,
  "round_id": null
}

multiplier is returned as a string. variants names the kinds of round the platform found (for example a regular spin and a bought feature). round_id is filled once the entry has been applied.

Statuses#

StatusMeaning
pendingThe platform is still searching for a suitable round. Paid spins are not counted yet
readyA round was found. Paid spins of the player in this game are now counted towards spin_number
unreachableNo round was found within the search budget (for example x50 in a regular spin of a game that cannot pay that much). Choose another multiplier or kind
appliedThe round was played; applied_at and round_id are set
expiredexpires_at passed before the entry was applied
cancelledCancelled by the operator or the admin

outcome_cancel cancels entries that are pending, ready or unreachable; for other statuses it returns the entry unchanged.

How a spin is chosen#

  • The count starts when the entry becomes ready. Only the player's paid spins in that game count; free-spin rounds do not.
  • The spin_number-th counted spin wins multiplier × the spin's bet, with a tolerance of ±2 %. The multiplier is independent of the bet size.
  • When a spin does not fit the entry (for example an ante bet, or a bonus buy for a spin entry, or no suitable round), the entry is postponed to the next paid spin.
  • Several entries are allowed. Entries due on the same spin fire one per spin, oldest first.
  • If the game asks the player to choose after the debit, the target applies to every option.

Interplay with RTP and the wallet#

  • Forced rounds are marked and excluded from the player's adaptive RTP window (RTP management).
  • The round_info notifications of a forced round carry "forced": true (Wallet callbacks).
  • Gamble after a forced win is allowed in the games that offer it.

Errors#

UNAUTHORIZED, IP_NOT_ALLOWED, INVALID_REQUEST, GAME_NOT_FOUND, FORCED_OUTCOMES_UNSUPPORTED, GAME_HAS_NO_BONUS, INVALID_MULTIPLIER, MULTIPLIER_ABOVE_MAX_WIN, INVALID_SPIN_NUMBER, INVALID_KIND, INVALID_EXPIRY, DUPLICATE_EXTERNAL_ID, OUTCOME_NOT_FOUND — see the error reference.

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