Skip to content
Reference / API reference
Reference

API reference

Generated from the OpenAPI document, version 1.0.0. The same document is available to download.

Getting started

GET/v1/pingSigned

Verify signing and clock

Response 200 · Ping
FieldTypeDescription
operator_coderequiredstring
key_idrequiredstring
server_timerequiredstring (date-time)
POST/v1/debug/signatureNot signed

Sandbox only: check a signature step by step (not signed)

Request body · object
FieldTypeDescription
key_idrequiredstring The X-Agg-Key-Id you sent
timestamprequiredstring The X-Agg-Timestamp you sent, Unix seconds
signaturerequiredstring The X-Agg-Signature you sent
methodrequiredstring GET, POST, PUT or DELETE
pathrequiredstring Path and query exactly as sent
bodystring The raw body; absent for a request without one
Response 200 · object
FieldTypeDescription
validboolean
diagnosisstring One sentence: what is wrong, or that nothing is
keyobject
timestampobject
payloadobject
canonical_stringstring timestamp + "." + payload, exactly what is signed
signatureobject
hintsstring[]
404Not a sandbox installation422VALIDATION_FAILED429RATE_LIMITED500UPSTREAM_UNAVAILABLE

Catalogue

GET/v1/gamesSigned

Games you may offer, paged by cursor

Parameters
FieldTypeDescription
type (query)GameType
provider_code (query)string One provider, as GET /v1/providers names it
studio_code (query)stringDeprecated Deprecated: the same filter as provider_code under its older name; wins when both are sent.
country (query)string ISO 3166-1 alpha-2. Leaves out games that cannot be played in that country.
cursor (query)string next_cursor of the previous page
limit (query)integer 1..200, default 50. Above 200 is cut to 200; below 1 is VALIDATION_FAILED.
Response 200 · GamesPage
FieldTypeDescription
gamesrequiredGame[]
next_cursorstring | null Absent or null on the last page
GET/v1/providersSigned

Providers behind the games, whole list

Response 200 · object
FieldTypeDescription
providersrequiredProvider[]
GET/v1/images/{id}Not signed

An image by id (not signed)

Parameters
FieldTypeDescription
id (path)string Image id from an images URL
404No such image
GET/v1/ratesSigned

Your revenue-share percent per provider and band

Response 200 · Rates
FieldTypeDescription
revenue_baseggr | ngr
marketrest_of_world | asia
regulatedboolean
tier_modewhole | progressive
providersobject[]
GET/v1/live-tablesSigned

Live Casino tables on your games as they stand now, limits in one currency

Parameters
FieldTypeDescription
currency (query)string ISO code the limits are wanted in
Response 200 · LiveTables
FieldTypeDescription
currencyrequiredstring
pendingrequiredboolean The currency was asked for the first time just now; its tables arrive within seconds
tablesrequiredLiveTable[]

Wallet integration

POST/v1/test/wallet-validationSigned

Sandbox only: run the wallet test suite against your wallet

Request body · object
FieldTypeDescription
player_idrequiredstring Your test player, with at least 10.00
currencyrequiredstring The currency of that balance
GET/v1/test/wallet-validation/{id}Signed

Sandbox only: a run and every case so far

Parameters
FieldTypeDescription
id (path)string The run id from the start
Response 200 · WalletValidationRun
FieldTypeDescription
idstring (uuid)
statusstring queued, running, passed, failed or error
passedinteger
warnedinteger
failedinteger
skippedinteger
totalinteger
errorstring Why the run could not be carried out
casesobject[]

Sessions

POST/v1/sessionsSigned

Open a game for a player

Request body · CreateSession
FieldTypeDescription
player_idrequiredstring Your reference, up to 120 characters
currencyrequiredstring ISO 4217, fixed for the session
game_idrequiredstring id from GET /v1/games
localestring en, ru-RU, …
lobby_urlstring
ttl_minutesinteger
player_countrystring ISO 3166-1 alpha-2
player_ipstring The player's own address; the country is read off it
player_devicedesktop | mobile
deposit_urlstring
player_namestring Nickname other players see in multiplayer games; never the real name
Response 200 · Session
FieldTypeDescription
session_idrequiredstring
launch_urlrequiredstring Open the game here; never build it yourself
expires_atrequiredstring (date-time)
POST/v1/games/{id}/demoSigned

Fun play without a player or wallet

Parameters
FieldTypeDescription
id (path)string Game id from GET /v1/games
Request body · CreateDemo
FieldTypeDescription
localestring
lobby_urlstring
player_countrystring
player_ipstring
player_devicedesktop | mobile
Response 200 · object
FieldTypeDescription
launch_urlrequiredstring
POST/v1/sessions/{id}/closeSigned

End a session

Parameters
FieldTypeDescription
id (path)string session_id from POST /v1/sessions
Response 200 · ClosedSession
FieldTypeDescription
session_idstring
statusstring
closed_atstring (date-time)

Promotions

POST/v1/free-spinsSigned

Grant free spins; idempotent on reference

Request body · CreateFreeSpins
FieldTypeDescription
player_idrequiredstring
currencyrequiredstring
game_idsrequiredstring[]
quantityrequiredinteger
bet_amountrequiredstring Stake of one spin, from GET /v1/free-spins/bet-options
valid_untilrequiredstring (date-time) In the future, at most 90 days away
referencerequiredstring Your id for the grant; a repeat answers the first grant
Response 200 · FreeSpins
FieldTypeDescription
idstring
free_spins_idstring What your wallet sees on the bets and wins of the series
statusactive | finished | cancelled
player_idstring
currencystring
game_idsstring[]
quantityinteger
bet_amountstring Stake of one spin
valid_untilstring (date-time)
referencestring
created_atstring (date-time)
finished_atstring | null (date-time)
cancelled_atstring | null (date-time)
win_amountstring | null Total paid, for game providers that settle the series in one call
GET/v1/free-spinsSigned

Find a grant by your reference

Parameters
FieldTypeDescription
reference (query)string
Response 200 · FreeSpins
FieldTypeDescription
idstring
free_spins_idstring What your wallet sees on the bets and wins of the series
statusactive | finished | cancelled
player_idstring
currencystring
game_idsstring[]
quantityinteger
bet_amountstring Stake of one spin
valid_untilstring (date-time)
referencestring
created_atstring (date-time)
finished_atstring | null (date-time)
cancelled_atstring | null (date-time)
win_amountstring | null Total paid, for game providers that settle the series in one call
GET/v1/free-spins/bet-optionsSigned

Stakes the game provider accepts for a grant

Parameters
FieldTypeDescription
game_id (query)string
currency (query)string
Response 200 · object
FieldTypeDescription
game_idrequiredstring
currencyrequiredstring
amountsrequiredstring[]
GET/v1/free-spins/{id}Signed

Read a grant

Parameters
FieldTypeDescription
id (path)string Grant id
Response 200 · FreeSpins
FieldTypeDescription
idstring
free_spins_idstring What your wallet sees on the bets and wins of the series
statusactive | finished | cancelled
player_idstring
currencystring
game_idsstring[]
quantityinteger
bet_amountstring Stake of one spin
valid_untilstring (date-time)
referencestring
created_atstring (date-time)
finished_atstring | null (date-time)
cancelled_atstring | null (date-time)
win_amountstring | null Total paid, for game providers that settle the series in one call
POST/v1/free-spins/{id}/cancelSigned

Withdraw a grant still playable; idempotent

Parameters
FieldTypeDescription
id (path)string Grant id
Response 200 · FreeSpins
FieldTypeDescription
idstring
free_spins_idstring What your wallet sees on the bets and wins of the series
statusactive | finished | cancelled
player_idstring
currencystring
game_idsstring[]
quantityinteger
bet_amountstring Stake of one spin
valid_untilstring (date-time)
referencestring
created_atstring (date-time)
finished_atstring | null (date-time)
cancelled_atstring | null (date-time)
win_amountstring | null Total paid, for game providers that settle the series in one call
POST/v1/bonus-campaignsSigned

Place a bonus campaign for your players; idempotent on reference

Request body · CreateBonusCampaign
FieldTypeDescription
typerequiredBonusCampaignType
namerequiredstring Shown to the player in the game
currencyrequiredstring ISO 4217; the game provider may take bonuses in some currencies only
game_idsrequiredstring[]
player_idsrequiredstring[]
valid_fromstring (date-time) Optional; the campaign starts now when absent
valid_untilrequiredstring (date-time) In the future, after valid_from, at most 90 days after it
triggersrequiredBonusTriggers At least one trigger. Each trigger that fires hands the bonus over once more.
spin_countinteger free_spins only, required there
bet_amountstring free_spins and buy_bonus only, required there: stake of one spin, or the price of the bought bonus
prizesBonusPrize[] Drawn types only: exactly 16 for fortune_wheel and treasure_chest, 1 to 100 for golden_dragon; at least one weight above 0
min_cashout_multiplierstring free_spins on crash games: the least multiplier a spin cashes out at, 1.3 to below 100
campaign_limitstring Optional: the total the campaign pays before it ends
referencerequiredstring Your id for the campaign; a repeat answers the first campaign
Response 200 · BonusCampaign
FieldTypeDescription
idrequiredstring
campaign_idrequiredstring What your wallet sees as free_spins_id on the spins this campaign hands over
typerequiredBonusCampaignType
statusrequiredpending | active | ended | failed ended: past valid_until; failed: the game provider refused it, see failure_reason
namestring | null
currencystring | null
game_idsrequiredstring[]
player_idsrequiredstring[]
valid_fromstring | null (date-time)
valid_untilstring | null (date-time)
triggersrequiredobject
spin_countinteger | null
bet_amountstring | null free_spins: stake of one spin
prizesrequiredBonusPrize[]
min_cashout_multiplierstring | null
campaign_limitstring | null The total the campaign pays before it ends
referencestring | null
failure_reasonstring | null Why the game provider refused it, when status is failed
created_atstring | null (date-time)
GET/v1/bonus-campaignsSigned

Find a campaign by your reference, or list the campaigns of one player

Parameters
FieldTypeDescription
reference (query)string Your reference of the campaign; answers that one campaign
player_id (query)string Your player reference; answers the campaigns of that player
Response 200 · BonusCampaign | PlayerBonusCampaigns
GET/v1/bonus-campaigns/optionsSigned

Campaign types and triggers the game provider of a game takes

Parameters
FieldTypeDescription
game_id (query)string id from GET /v1/games
Response 200 · BonusCampaignOptions
FieldTypeDescription
game_idrequiredstring
typesrequiredBonusCampaignType[]
triggersrequiredfirst_game_launch | bet_amount | spin_count | loss_amount[]
GET/v1/bonus-campaigns/{id}Signed

Read a campaign

Parameters
FieldTypeDescription
id (path)string Campaign id
Response 200 · BonusCampaign
FieldTypeDescription
idrequiredstring
campaign_idrequiredstring What your wallet sees as free_spins_id on the spins this campaign hands over
typerequiredBonusCampaignType
statusrequiredpending | active | ended | failed ended: past valid_until; failed: the game provider refused it, see failure_reason
namestring | null
currencystring | null
game_idsrequiredstring[]
player_idsrequiredstring[]
valid_fromstring | null (date-time)
valid_untilstring | null (date-time)
triggersrequiredobject
spin_countinteger | null
bet_amountstring | null free_spins: stake of one spin
prizesrequiredBonusPrize[]
min_cashout_multiplierstring | null
campaign_limitstring | null The total the campaign pays before it ends
referencestring | null
failure_reasonstring | null Why the game provider refused it, when status is failed
created_atstring | null (date-time)
GET/v1/jackpotsSigned

Progressive jackpots open on your games

Response 200 · Jackpots
FieldTypeDescription
updated_atstring (date-time)
jackpotsobject[]
GET/v1/jackpots/winnersSigned

Jackpots your players won lately, newest first

Response 200 · object
FieldTypeDescription
winnersrequiredJackpotWinner[]

Reconciliation

GET/v1/transactions/{id}Signed

One movement as our books hold it

Parameters
FieldTypeDescription
id (path)string transaction_id sent to your wallet
Response 200 · Transaction
FieldTypeDescription
transaction_idstring
typebet | win | rollback
statuscompleted | refused | failed | cancelled | pending
round_idstring
session_idstring
player_idstring
currencystring
amountstring Amount of the movement
reference_transaction_idstring | null For a rollback: what it undid
operator_transaction_idstring | null The id your wallet answered with
created_atstring (date-time)
completed_atstring | null (date-time)
GET/v1/rounds/{id}Signed

Every movement of one round, oldest first

Parameters
FieldTypeDescription
id (path)string round_id sent to your wallet
Response 200 · object
FieldTypeDescription
round_idrequiredstring
transactionsrequiredTransaction[]

Schemas

Error

FieldTypeDescription
errorrequiredUNAUTHORIZED | VALIDATION_FAILED | NOT_FOUND | GAME_UNAVAILABLE | GAME_RESTRICTED_IN_COUNTRY | NO_DEMO | PLAYER_BLOCKED | FREE_SPINS_REFUSED | BONUS_CAMPAIGN_REFUSED | VALIDATION_RUN_REFUSED | ADDRESS_NOT_ALLOWED | RATE_LIMITED | UPSTREAM_UNAVAILABLE
messagerequiredstring
retryablerequiredboolean true: the outcome is unknown, repeat with the same ids
fieldsrequiredobject[] Filled on VALIDATION_FAILED only. field is the snake_case name of the body field or query parameter, or "body" when the body is not valid JSON.

WalletValidationRun

FieldTypeDescription
idstring (uuid)
statusstring queued, running, passed, failed or error
passedinteger
warnedinteger
failedinteger
skippedinteger
totalinteger
errorstring Why the run could not be carried out
casesobject[]

Ping

FieldTypeDescription
operator_coderequiredstring
key_idrequiredstring
server_timerequiredstring (date-time)

Game

FieldTypeDescription
idrequiredstring (uuid) Catalogue id of the title (UUID). What POST /v1/sessions takes. Not what wallet callbacks carry as game_id.
provider_coderequiredstring The provider
coderequiredstring The provider game code, for display and support. Wallet callbacks may carry a different code for the same title.
namerequiredstring
studiostring | null Studio display name
studio_codestring | nullDeprecated Deprecated: repeats provider_code
typerequiredGameType
rtpnumber | null Percentage, e.g. 96.5
thumbnail_urlstring | null
imagesobject
has_demorequiredboolean
restricted_countriesrequiredstring[]
section_codestring | null Pricing section the game belongs to, e.g. live

GamesPage

FieldTypeDescription
gamesrequiredGame[]
next_cursorstring | null Absent or null on the last page

Provider

FieldTypeDescription
provider_coderequiredstring
provider_namerequiredstring
studio_codestringDeprecated Deprecated: repeats provider_code
namestringDeprecated Deprecated: repeats provider_name
logo_urlstring | null
game_countrequiredinteger
imagesobject

Rates

FieldTypeDescription
revenue_baseggr | ngr
marketrest_of_world | asia
regulatedboolean
tier_modewhole | progressive
providersobject[]

Rate

FieldTypeDescription
tier_ordinalinteger
percentnumber A percentage: 12.5 means 12.5%

CreateSession

FieldTypeDescription
player_idrequiredstring Your reference, up to 120 characters
currencyrequiredstring ISO 4217, fixed for the session
game_idrequiredstring id from GET /v1/games
localestring en, ru-RU, …
lobby_urlstring
ttl_minutesinteger
player_countrystring ISO 3166-1 alpha-2
player_ipstring The player's own address; the country is read off it
player_devicedesktop | mobile
deposit_urlstring
player_namestring Nickname other players see in multiplayer games; never the real name

CreateDemo

FieldTypeDescription
localestring
lobby_urlstring
player_countrystring
player_ipstring
player_devicedesktop | mobile

Session

FieldTypeDescription
session_idrequiredstring
launch_urlrequiredstring Open the game here; never build it yourself
expires_atrequiredstring (date-time)

ClosedSession

FieldTypeDescription
session_idstring
statusstring
closed_atstring (date-time)

CreateFreeSpins

FieldTypeDescription
player_idrequiredstring
currencyrequiredstring
game_idsrequiredstring[]
quantityrequiredinteger
bet_amountrequiredstring Stake of one spin, from GET /v1/free-spins/bet-options
valid_untilrequiredstring (date-time) In the future, at most 90 days away
referencerequiredstring Your id for the grant; a repeat answers the first grant

FreeSpins

FieldTypeDescription
idstring
free_spins_idstring What your wallet sees on the bets and wins of the series
statusactive | finished | cancelled
player_idstring
currencystring
game_idsstring[]
quantityinteger
bet_amountstring Stake of one spin
valid_untilstring (date-time)
referencestring
created_atstring (date-time)
finished_atstring | null (date-time)
cancelled_atstring | null (date-time)
win_amountstring | null Total paid, for game providers that settle the series in one call

BonusTriggers

FieldTypeDescription
first_game_launchboolean The player opens one of the games for the first time in the campaign
bet_amountobject[]
spin_countobject[]
loss_amountstring | null Net loss to reach, positive

BonusPrize

FieldTypeDescription
kindrequiredmoney | free_spins free_spins only on a fortune_wheel
amountstring | null money: the amount paid
spinsinteger | null free_spins: how many
bet_amountstring | null free_spins: stake of one spin
weightrequiredinteger

CreateBonusCampaign

FieldTypeDescription
typerequiredBonusCampaignType
namerequiredstring Shown to the player in the game
currencyrequiredstring ISO 4217; the game provider may take bonuses in some currencies only
game_idsrequiredstring[]
player_idsrequiredstring[]
valid_fromstring (date-time) Optional; the campaign starts now when absent
valid_untilrequiredstring (date-time) In the future, after valid_from, at most 90 days after it
triggersrequiredBonusTriggers At least one trigger. Each trigger that fires hands the bonus over once more.
spin_countinteger free_spins only, required there
bet_amountstring free_spins and buy_bonus only, required there: stake of one spin, or the price of the bought bonus
prizesBonusPrize[] Drawn types only: exactly 16 for fortune_wheel and treasure_chest, 1 to 100 for golden_dragon; at least one weight above 0
min_cashout_multiplierstring free_spins on crash games: the least multiplier a spin cashes out at, 1.3 to below 100
campaign_limitstring Optional: the total the campaign pays before it ends
referencerequiredstring Your id for the campaign; a repeat answers the first campaign

BonusCampaign

FieldTypeDescription
idrequiredstring
campaign_idrequiredstring What your wallet sees as free_spins_id on the spins this campaign hands over
typerequiredBonusCampaignType
statusrequiredpending | active | ended | failed ended: past valid_until; failed: the game provider refused it, see failure_reason
namestring | null
currencystring | null
game_idsrequiredstring[]
player_idsrequiredstring[]
valid_fromstring | null (date-time)
valid_untilstring | null (date-time)
triggersrequiredobject
spin_countinteger | null
bet_amountstring | null free_spins: stake of one spin
prizesrequiredBonusPrize[]
min_cashout_multiplierstring | null
campaign_limitstring | null The total the campaign pays before it ends
referencestring | null
failure_reasonstring | null Why the game provider refused it, when status is failed
created_atstring | null (date-time)

PlayerBonusCampaigns

FieldTypeDescription
campaignsrequiredBonusCampaign[] Campaigns naming the player, newest first; empty when there are none

BonusCampaignOptions

FieldTypeDescription
game_idrequiredstring
typesrequiredBonusCampaignType[]
triggersrequiredfirst_game_launch | bet_amount | spin_count | loss_amount[]

LiveTables

FieldTypeDescription
currencyrequiredstring
pendingrequiredboolean The currency was asked for the first time just now; its tables arrive within seconds
tablesrequiredLiveTable[]

LiveTable

FieldTypeDescription
game_idrequiredstring id from GET /v1/games
namestring | null
openrequiredboolean Whether the table takes bets now
new_tableboolean
imagestring | null The provider's current picture of the table
dealerstring | null
min_betnumber | null Lowest bet in the currency asked for, a JSON number
max_betnumber | null Highest bet in the currency asked for, a JSON number
playersinteger | null Players at the table now
seatsinteger | null Seats at a seated table (blackjack); null elsewhere
seats_availableinteger | null
results Recent results in the provider's own shape, which differs by game type
updated_atstring (date-time)

Jackpots

FieldTypeDescription
updated_atstring (date-time)
jackpotsobject[]

JackpotWinner

FieldTypeDescription
jackpot_tier_idstring
player_idstring
amountnumber Amount won, a JSON number (not a string)
currencystring
won_atstring (date-time)
win_typeprogressive | community | fixed
round_idstring The provider's round id

Transaction

FieldTypeDescription
transaction_idstring
typebet | win | rollback
statuscompleted | refused | failed | cancelled | pending
round_idstring
session_idstring
player_idstring
currencystring
amountstring Amount of the movement
reference_transaction_idstring | null For a rollback: what it undid
operator_transaction_idstring | null The id your wallet answered with
created_atstring (date-time)
completed_atstring | null (date-time)

WalletRequest

FieldTypeDescription
actionrequiredgetbalance | bet | win | rollback
transaction_idrequiredstring Idempotency key, "<provider>:<id>". Empty string on getbalance
reference_transaction_idstring | null rollback only: the transaction being undone
session_idrequiredstring
round_idrequiredstring Empty string on getbalance
player_idrequiredstring
game_idstring | null Game provider code of the game the round is played on; null on getbalance. Not the catalogue id
currencyrequiredstring
amountstring | null In the currency's own precision; null on getbalance
free_spins_idstring Present only on bets and wins of a free-spin series; for spins a bonus campaign hands over it is the campaign_id

WalletResponse

FieldTypeDescription
balancerequiredstring Balance after the movement. Must be a string: a number is read as an unreadable answer
transaction_idstring Your own id for the movement
bonus_amountstring bet and win only: the part that was bonus money

WalletError

FieldTypeDescription
errorrequiredstring INSUFFICIENT_FUNDS, BET_LIMIT, PLAYER_BLOCKED, …
messagestring

InvoiceWebhook

FieldTypeDescription
eventinvoice.issued | invoice.voided
sent_atstring (date-time)
invoiceobject Figures (revenue, bonus, gross, rate_percent, amount, adjustment_amount, tax_percent, tax_amount, total, ggr, band amounts) are JSON numbers.
documentobject
Requests are not executed from this page. Use the Postman collection against the sandbox; production is never called from the public documentation.