This endpoint is used to create a new campaign of any type.
API Call Sample:
- stagehttps://asia.stage.rubyplay.io/api/v1/campaign
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
https://asia.stage.rubyplay.io/api/v1/campaign \
-H 'Content-Type: application/json' \
-d '{
"name": "New Year Promo",
"externalCampaignId": "New Year Promo",
"gameIds": [
"rp_504"
],
"startDateTime": "2027-01-01T08:00:00Z",
"endDateTime": "2027-01-02T08:00:00Z",
"bet": 20,
"currencyCode": "EUR",
"betNumber": 7,
"countries": [
"BR",
"US",
"FR"
],
"strategy": "PLAYER_LIST",
"strategyData": {
"playerIds": [
"player1"
]
},
"rulesUrl": "https://url-to-rules.com",
"validForDays": 7,
"startEvent": "ACCEPT",
"allowPostExpirationCompletion": true,
"type": "FREE_ROUNDS",
"requestId": "1a845822-7340-41d0-8161-55e9f8ecf201"
}'{ "id": 7, "type": "FREE_ROUNDS", "disabledAt": "2027-01-03T10:00:00Z", "disabledForcibly": true, "name": "New Year Promo", "externalCampaignId": "New Year Promo", "gameId": "rp_140", "gameIds": [ "rp_140" ], "startDateTime": "2027-01-01T08:00:00Z", "endDateTime": "2027-01-02T08:00:00Z", "expiresInDays": 7, "bet": 50, "currencyCode": "EUR", "betNumber": 7, "strategy": "PLAYER_LIST", "strategyData": { "eligiblePlayersNumber": 777, "playerIds": [ "player one" ] }, "countries": [ "[\"BR\",\"US\",\"FR\"]" ], "status": "UPCOMING", "rulesUrl": "https://url-to-rules.com", "validForDays": 7, "startEvent": "ACCEPT", "allowPostExpirationCompletion": true }
Request Schema:
Campaign name
Campaign ID set by the operator.
The start time of the campaign in UTC. It must not be earlier than the current time.
The end time of the campaign in UTC. It must be greater than startDateTime.
Size of a single bet in major currency units, e.g. 1.00 for 1 EUR. For awarded features this should be the actual cost of the feature e.g. 1 EUR x 50 Multiplier = 50 EUR
ISO 4217 3-letter currency code.
Number of free bets/features for each participating player.
Strategy specific data.
This field will be removed in future versions of the API and the following operation should be used to add players instead : PUT /campaign/{campaignId}/participant
Link for campaign rules
The number of days the offer remains valid, starting from the date of the startEvent
The event that marks the starting point for counting the validity period validForDays.
Defines if accepted promotion can be completed after the campaign end date.
Default value FREE_ROUNDS if absent. Possible values: FREE_ROUNDS, AWARDED_FEATURE
Random request identifier, idempotency key. Several requests with the same requestId (if it is specified) will have the same campaign in response; only one campaign will be created.
Game ID.
Expires in x days from date of campaign start.
This field will be removed in future versions of the API and fields validForDays, startEvent and allowPostExpirationCompletion should be used instead
A list of ISO 3166-2 country codes.
This filed will be removed in future versions of the API and we will no longer support this functionality.
PLAYER_LIST or FIRST_N_PLAYERS.
This field will be removed in future versions of the API and default to PLAYER_LIST as FIRST_N_PLAYERS will not be supported in the future.
Response Schema:
ID of the campaign.
Possible values: FREE_ROUNDS, AWARDED_FEATURE
Campaign deactivation time in UTC.
Whether the campaign was disabled forcibly.
Campaign name
External campaign ID.
Campaign start time in UTC.
Campaign end time in UTC.
Size of a single bet in major currency units, e.g. 1.00 for 1 EUR. For awarded features will be the actual cost of the feature e.g. 1 EUR x 50 Multiplier = 50 EUR
ISO 4217 3-letter currency code.
Number of free bets/features for each participating player.
Strategy specific data.
This field will be removed in future versions of the API and the following operation should be used to add players instead : PUT /campaign/{campaignId}/participant
Possible values: UPCOMING, ONGOING, ENDED, DISABLED.
Link for campaign rules.
The number of days the offer remains valid, starting from the date of the startEvent
The event that marks the starting point for counting the validity period validForDays.
Defines if accepted promotion can be completed after the campaign end date.
Game ID.
Expires in x days from date of campaign start.
This field will be removed in future versions of the API and fields validForDays, startEvent and allowPostExpirationCompletion should be used instead
PLAYER_LIST or FIRST_N_PLAYERS.
This field will be removed in future versions of the API and default to PLAYER_LIST as FIRST_N_PLAYERS will not be supported in the future.
The bet field meaning differs depending on the campaign type:
| Campaign Type | Bet Value Meaning | Example |
|---|---|---|
FREE_ROUNDS | The single bet amount in major currency units | 1 EUR |
AWARDED_FEATURE | The total feature cost (base bet × buy feature multiplier) | 1 EUR × 50 = 50 EUR |
For FREE_ROUNDS campaigns, the bet field should be the single bet amount in major currency units (e.g., 1.00 for 1 EUR).
Use the Get Games API endpoint to retrieve available bet sizes for the game.
For AWARDED_FEATURE campaigns, the bet field should be the total cost of the buy feature. This is calculated as:
Feature Cost = Base Bet × Buy Feature Multiplier
For example, if you want to award a feature with:
- Base bet: 1 EUR
- Buy feature multiplier: 50x
The bet value should be 50 EUR (not 1 EUR).
Use the Get Awarded Feature Configurations endpoint to retrieve available feature costs that can be used directly in campaign creation.