ThrillGate Bonus API Documentation (0.1.50)

Download OpenAPI specification:

License: Proprietary

The ThrillGate Bonus API provides integration capabilities for platforms to issue bonuses, freebets or freespins for players for specific vendors or gaming products.

In order to create bonuses, you first need to create a Bonus Template which describes the core rules of the bonus campaign.

Once the template has been created, you can create one or more instances from the template.

When you create a Bonus instance, you can specify (amongst other things) the providers and associated game codes that the bonus is applicable for.

Bonus Instances can then be allocated to one or more players using the /bonus/freespins/add method.

Bonus Instances

Retrieve bonus instances

query Parameters
id
required
string

The freespin instance ID

name
required
string

The freespins instance name

operator_id
required
string

Operator ID that owns templates

sort_field
required
string

Field to sort on

sort_direction
required
integer <int32>

Direction to sort in (1 = ASC, -1 = DESC)

page
required
integer <int32>

Page to retrieve

limit
required
integer <int32>

Number of items to retrieve

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Player Bonuses

Assign a freespin bonus to one or more players base on a Freespin instance

Request Body schema: application/json
required
request_id
required
string

The request ID (used for idempotency)

instance_id
required
string

The Bonus Instance ID to use

operator_id
required
string

The operator ID that the list of players belong to

brand_id
required
string

The brand Id that the list of players belong to

players
required
Array of strings

The list of operator player IDs that should receive the bonus

promo_id
string or null

An optional promotion ID that is owned by the operator. This field has no operational impact on the ThrillGate bonus system. It is simply metadata.

Responses

Request samples

Content type
application/json
{
  • "request_id": "string",
  • "instance_id": "string",
  • "operator_id": "string",
  • "brand_id": "string",
  • "players": [
    ],
  • "promo_id": "string"
}

Response samples

Content type
application/json
[
  • {
    }
]

Create a "dynamic" Player Bonus

This endpoint can be used by external reward systems to bypass the necessity of creating Bonus Templates and Bonus Instances in order to create Player Bonuses. This endpoint is especially useful when you have dynamic calculations to determine the parameters of the bonus to be awarded.

Request Body schema: application/json
required
request_id
required
string

The request ID (this is used for idempotency)

operator_id
required
string

The operator ID that the list of players belong to

brand_id
required
string

The brand Id that the list of players belong to

players
required
Array of strings

The list of operator player IDs that should receive the bonus

Array of objects or null (GameBonusDetails)

List of provider+gamecode constraints for the bonus

bonus_name
string or null

An optional name for the bonus being awarded

required
any (FreespinType)
promo_id
string or null

An optional promotion ID that is owned by the operator. This field has no operational impact on the ThrillGate bonus system. It is simply metadata.

timestamp_bonus_expires
integer or null <int64> >= 0

An optional timestamp of when this bonus will expire

Responses

Request samples

Content type
application/json
{
  • "request_id": "string",
  • "operator_id": "string",
  • "brand_id": "string",
  • "players": [
    ],
  • "available_for": [
    ],
  • "bonus_name": "string",
  • "bonus": {
    },
  • "promo_id": "string",
  • "timestamp_bonus_expires": 0
}

Response samples

Content type
application/json
[
  • {
    }
]

Remove a freespin bonus from one or more players

Request Body schema: application/json
required
bonus_id
required
string

The ID of the bonus to remove

Responses

Request samples

Content type
application/json
{
  • "bonus_id": "string"
}

Response samples

Content type
application/json
null

Retrieve bonuses that have been assigned to a specific player

Supported OPTIONAL Query Parameters:

  • status
  • provider
  • game_code
  • bonus_id

You may use an optional query parameter (status) to query for bonuses in a particular state:

  • Available
  • Expired
  • Consumed

If you do not specify a status, all bonuses that have been assigned to the player will be returned.

You may use the optional provider, game_code and bonus_id filters to fetch a more specific list.

path Parameters
player_id
required
string

Player ID to retrieve bonuses for

operator_id
required
string

Operator ID of the player

brand_id
required
string

Brand ID of the player

query Parameters
provider
string or null

Optional Provider ID to filter by

game_code
string or null

Optional Game Code to filter by

bonus_id
string or null

Optional Bonus ID to filter by

status
required
string

Optional Operator ID to filter by

Responses

Response samples

Content type
application/json
null

Bonus Templates

Retrieve bonus templates

query Parameters
id
required
string

The freespin template ID

name
required
string

The freespins template name

operator_id
required
string

Operator ID that owns templates

sort_field
required
string

Field to sort on

sort_direction
required
integer <int32>

Direction to sort in (1 = ASC, -1 = DESC)

page
required
integer <int32>

Page to retrieve

limit
required
integer <int32>

Number of items to retrieve

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a bonus template which can be used for issuing bonuses to players

Request Body schema: application/json
required
name
required
string

The human readable name of the template

operator_id
required
string

The operator ID for this template

brand_id
string or null

The brand ID for this template

required
any (FreespinType)
expires_after_ms
required
integer <int64> >= 0

If specified, this defines the amount of time after freespins are granted that they will expire

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "operator_id": "string",
  • "brand_id": "string",
  • "freespin_type": {
    },
  • "expires_after_ms": 0
}

Response samples

Content type
application/json
{
  • "name": "string",
  • "operator_id": "string",
  • "brand_id": "string",
  • "freespin_type": {
    },
  • "expires_after_ms": 0,
  • "id": "string",
  • "created_by": "string",
  • "timestamp_created": 0
}

Update an existing bonus template

Request Body schema: application/json
required
id
required
string
name
string or null

The human readable name of the template

operator_id
string or null

The operator ID for this template

brand_id
string or null

The brand ID for this template

any or null
expires_after_ms
integer or null <int64> >= 0

If specified, this defines the amount of time after freespins are granted that they will expire

Responses

Request samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "operator_id": "string",
  • "brand_id": "string",
  • "freespin_type": {
    },
  • "expires_after_ms": 0
}

Response samples

Content type
application/json
null

Create an instance from a bonus template

Request Body schema: application/json
required
template_id
required
string
instance_name
string or null
brand_id
string or null
required
Array of objects (GameBonusDetails)
timestamp_start
required
integer <int64> >= 0
timestamp_end
required
integer <int64> >= 0

Responses

Request samples

Content type
application/json
{
  • "template_id": "string",
  • "instance_name": "string",
  • "brand_id": "string",
  • "available_for": [
    ],
  • "timestamp_start": 0,
  • "timestamp_end": 0
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "operator_id": "string",
  • "brand_id": "string",
  • "freespin_type": {
    },
  • "template_id": "string",
  • "available_for": [
    ],
  • "expires_after_ms": 0,
  • "timestamp_start": 0,
  • "timestamp_end": 0
}