Gaming Inventory

Required data to get started with Opti-X

This document details the data formats for preparing your Inventory.

Important note: The data tables and fields described in this document represent an ideal data structure for using Opti-X. If your data does not include everything presented here, alternative methods exist based on the available data. However, some data is crucial to train our model for the best personalisation results. The data format and transmission will be agreed upon during Integration planning. Additional metadata surrounding games can also be taken into the feed.

Inventory data

Game Inventory data provides a daily snapshot of available games and their associated metadata. For example:

{
  "game_code": "123456",
  "game_name": "Adventure Quest",
  "game_category": "Slots",
  "game_class": "premium",
  "game_type": "3D",
  "description": "A thrilling adventure game with a progressive jackpot.",
  "desktop": 1,
  "mobile": 0,
  "tablet": 1,
  "extra_channels": "iOS16|iOS17",
  "rtp": 0.95,
  "themes": ["Adventure"],
  "launch_date": "17/05/2023",
  "new": true,
  "supplier": "Supplier Inc.",
  "default_order": 1,
  "jackpot_type": "progressive",
  "formatted_summary": "Adventure Quest is a thrilling...",
  "formatted_summary_short": "Thrilling adventure game...",
  "image_url": "https://game.example.com/image.jpg",
  "game_features": [{"feature1": "feature_details"}],
  "tags": [{"tag1": "value1"}, {"tag2": "value2"}],
  "skin_id": ["21", "23"],
  "regulation": ["UKGC", "MGA"],
  "inclusions": {"country": ["UK", "DE"]},
  "exclusions": {"currency": "USD"},
  "extra": {"key1": "value1", "key2": "value2"},
}

There are two ways to exchage inventory data with opti-x:

  • through Gaming Inventory API
  • Opti-X will map the resulting data into its internal schema.  To streamline the process we suggest a customer to fill in the document to highlight what fields from the customer schema match best Opti-x schema.
field namerequireddata typeexample valuedescriptionautomatic tag creationavailability filters
game_codetruestring2345994This can be game code, game ID or any unique identifier for the game✔️
game_namefalsestringAdventure QuestThe name of the game✔️
game_categoryfalsestringSlotsThe category the game falls in✔️
game_classfalsestringPremiumThe class of the game✔️
game_typefalsestring3DThe type of the game
descriptionfalsestringA thrilling adventure
game with a progressive jackpot
A short explanation of what the game is
desktopfalseinteger1At least one of the platforms should be set to 1. With 1 being True and 0 being False.
mobilefalseinteger0At least one of the platforms should be set to 1. With 1 being True and 0 being False.
tabletfalseinteger0At least one of the platforms should be set to 1. With 1 being True and 0 being False.
extra_channelsfalsestringiOS16|iOS17custom channels, separated by pipe symbol
rtpfalsefloat0.95Field represents return to punter/player. Field means the expected return to each bet. It is percentage return expressed by float number. E.g. rtp = 0.96 (96%) means the casino’s expected profit in the long run would be 0.04(4%)✔️
themesfalselist of strings["Adventure"]Themes of the game✔️
launch_datefalsestring17/05/2023The date from which the game was made available
newfalsebooleantrueIndicator if game is new
supplier falsestringSupplier Inc.The supplier of the game✔️
default_orderfalseinteger50Requried in case the customer wishes to use dummy model for some cases and get games in a certain order
jackpot_typefalsestringprogressiveField that specifies different types of jackpots
formatted_summaryfalsestringAdventure Quest is a thrilling....A formatted summary
formatted_short_summaryfalsestringThrilling adventure gameA short summary of the game
image_urlfalsestringhttps://image.game.com/..Image link of the game to display to users
game_featuresfalseList of objects/dictionaries[{“feature_1“: “value_1”}, “feature_2“: “value_2“}]Additional game features✔️
tagsfalseList of objects/dictionaries[{“tag_1“: “value_1”}, “tag_2“: “value_2“}]List of additional tags to create✔️
skin_idfalselist of strings[”21”, “23”]List of game skins ids✔️
regulationfalselist of strings["UK", "DE"]A list of countries codes where the game is available✔️
inclusionsfalseobject/dictionary{"country": ["UK", “DE”]}Game inclusions (IN operator) used in availability filters✔️
exclusionsfalseobject/dictionary{"currency": "USD"}Game exclusions (NOT IN operator) used in availability filters✔️
extrafalseobject/dictionary{“key_1“: “value_1”, “key_2“: “value_2“}Any data that should be returned to the user but is not necessarily needed for personalization