Download OpenAPI specification:
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.
| 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 |
[- {
- "id": "string",
- "name": "string",
- "operator_id": "string",
- "brand_id": "string",
- "freespin_type": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "template_id": "string",
- "available_for": [
- {
- "provider_id": "string",
- "game_ids": [
- "string"
]
}
], - "expires_after_ms": 0,
- "timestamp_start": 0,
- "timestamp_end": 0
}
]| 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. |
{- "request_id": "string",
- "instance_id": "string",
- "operator_id": "string",
- "brand_id": "string",
- "players": [
- "string"
], - "promo_id": "string"
}[- {
- "id": "string",
- "player_id": "string",
- "operator_id": "string",
- "brand_id": "string",
- "promo_id": "string",
- "bonus_instance_id": "string",
- "available_for": [
- {
- "provider_id": "string",
- "game_ids": [
- "string"
]
}
], - "bonus_data": {
- "Freespins": {
- "id": "string",
- "name": "string",
- "freespin_type": {
- "count": 0,
- "used": 0,
- "currency": "string",
- "value": "string"
}
}
}, - "state": "Available",
- "timestamp_bonus_awarded": 0,
- "timestamp_bonus_expires": 0,
- "timestamp_bonus_consumed": 0
}
]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_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 |
{- "request_id": "string",
- "operator_id": "string",
- "brand_id": "string",
- "players": [
- "string"
], - "available_for": [
- {
- "provider_id": "string",
- "game_ids": [
- "string"
]
}
], - "bonus_name": "string",
- "bonus": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "promo_id": "string",
- "timestamp_bonus_expires": 0
}[- {
- "id": "string",
- "player_id": "string",
- "operator_id": "string",
- "brand_id": "string",
- "promo_id": "string",
- "bonus_instance_id": "string",
- "available_for": [
- {
- "provider_id": "string",
- "game_ids": [
- "string"
]
}
], - "bonus_data": {
- "Freespins": {
- "id": "string",
- "name": "string",
- "freespin_type": {
- "count": 0,
- "used": 0,
- "currency": "string",
- "value": "string"
}
}
}, - "state": "Available",
- "timestamp_bonus_awarded": 0,
- "timestamp_bonus_expires": 0,
- "timestamp_bonus_consumed": 0
}
]Supported OPTIONAL Query Parameters:
You may use an optional query parameter (status) to query for bonuses in a particular state:
AvailableExpiredConsumedIf 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.
| 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 |
| 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 |
null| 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 |
[- {
- "name": "string",
- "operator_id": "string",
- "brand_id": "string",
- "freespin_type": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "expires_after_ms": 0,
- "id": "string",
- "created_by": "string",
- "timestamp_created": 0
}
]| 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 |
{- "name": "string",
- "operator_id": "string",
- "brand_id": "string",
- "freespin_type": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "expires_after_ms": 0
}{- "name": "string",
- "operator_id": "string",
- "brand_id": "string",
- "freespin_type": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "expires_after_ms": 0,
- "id": "string",
- "created_by": "string",
- "timestamp_created": 0
}| 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 |
{- "id": "string",
- "name": "string",
- "operator_id": "string",
- "brand_id": "string",
- "freespin_type": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "expires_after_ms": 0
}null| 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 |
{- "template_id": "string",
- "instance_name": "string",
- "brand_id": "string",
- "available_for": [
- {
- "provider_id": "string",
- "game_ids": [
- "string"
]
}
], - "timestamp_start": 0,
- "timestamp_end": 0
}{- "id": "string",
- "name": "string",
- "operator_id": "string",
- "brand_id": "string",
- "freespin_type": {
- "currency": "string",
- "amount": "string",
- "type": "Variable"
}, - "template_id": "string",
- "available_for": [
- {
- "provider_id": "string",
- "game_ids": [
- "string"
]
}
], - "expires_after_ms": 0,
- "timestamp_start": 0,
- "timestamp_end": 0
}