Tournament endpoints
Information on existing tournaments
Tournament details by id
Returns information about tournament by its ID.
- Endpoint specs
- Example 200 response
- Path:
https://api.elympics.cc/v2/tournament/tournament?tournamentId=(tournament-id) - Method:
GET - Query params:
tournamentId- id of the tournament
- Headers:
Authorization: Bearer PLAYER_JWT_TOKENElympics-Publisher-API-Key: YOUR_API_KEY
{
"id": "string", # Tournament id
"gameId": "string", # Id of the game for which tournament is created
"name": "string", # Tournament title
"ownerId": "string", # Optional. User Id of the tournament creator.
"state": "string", # State of the tournament. Possible values described below.
"createDate": "2025-03-07T09:04:33.305Z",
"startDate": "2025-03-07T09:04:33.305Z",
"endDate": "2025-03-07T09:04:33.305Z",
"playersCount": 0,
"tonDetails": {
"requiredTickets": true, # Deprecated, do not use
"tournamentAddress": "string", # TON address of tournament contract
"entryType": "string" # Type of entry fee. Possible values described below.
},
"coin": { # Describes coin in which prize pool is being built and entry fee is paid.
"currency": {
"ticker": "string", # Coin ticker. 'TON', 'USDC', etc
"address": "string", # Wallet address. For `TON` it is empty.
"decimals": 0, # Number of decimals in this blockchain coin.
"iconUrl": "string" # Url to coin icon
},
"chain": {
"externalId": 1, # For 'TON' it is always 1.
"type": "string", # Type of the chain. 'TON'. You can ignore this.
"name": "string", # Display name of the chain.
}
},
"entryFee": 1000000000, # Price for 1 game. Possible values described below.
"prizePoolStatus": "string", # Status of the prize pool. Possible values described below.
"prizeType": "string", # Type of the tournament prize. Possible values described below.
"currentPrizePool": 0, # Current prize pool size. Possible valued described below.
"distributionPercents": [ # Is an array where element at index 0 means reward percent for place 1 etc. Possible valued described below.
1000000000
],
"distributionValues": [ # Appears after prize pool is settled. Is a sorted array where element at index 0 means reward in blockchain coin for place 1 etc. Possible valued described below.
1000000000
]
}
Response values description
entryFee,currentPrizePool,distributionValues- integers with nano-precision (based on the coin’s decimals) E.g. ifcoindefined in tournament isTONand (itscoin.currency.decimals == 9), then 0.25 TON will be returned here as250_000_000or 0.25 * 10e9distributionPercents- always has precision of 10e9. E.g. 50% here is represented as500000000or 0.5 * 10e9statevalues:Active- when tournament is not yet finishedConcluded- when tournament is already finishedTonAddressPending- when TON tournament is in process of deployment
tonDetails.entryTypevalues:Tickets- when in order to play one game, user has to pay one entry feePass- when user pays once and can play unlimited number of times.
prizePoolStatusvalues:Undefined- when prize pool status if not yet knownBuildingUp- when prize pool is already being built but is not yet ready to be displayedReady- when prize pool can already be displayedSettled- when tournament is ended and prizes where distributed
prizeTypevalues:None- when it is a casual tournament and there is no reward for itCoin- when tournament has entry fee, rewards in some blockchain coin that is defined incoinobject
Create tournament
Create casual tournament
Explanation: Creates free to play tournament for selected game.
- Endpoint specs
- Example request
- Example response
- Path:
https://api.elympics.cc/v2/tournament/tournament/tournament-v2 - Method:
POST - Headers:
Elympics-Publisher-API-Key: YOUR_API_KEYAuthorization: Bearer PLAYER_JWT_TOKEN
{
"GameId": "string", # Id of the game for which to create tournament
"Name": "string", # Tournament title
"StartDate": "2025-03-07T09:04:33.305Z", # ISO date when tournament should start
"EndDate": "2025-03-07T09:04:33.305Z", # ISO date when tournament should end
}
Request constraints
StartDate- ISO date when tournament should start- Minimum: now
- Maximum: now + 72h
EndDate- ISO date when tournament should end- Minimum:
StartDate+ 30min - Maximum:
StartDate+ 24h
- Minimum:
{
"Result": {
"Id": "string", # Id of newly created tournament.
};
"IsSuccess": "true", # Information on call status.
"Errors": string[] # Array of errors occured during tournament creation.
}
Create pay per play tournament
Explanation: Creates tournament for selected game where every game costs player entry fee.
- Endpoint specs
- Example request
- Example response
- Path:
https://api.elympics.cc/v2/tournament/tournament/tournament-v2 - Method:
POST - Headers:
Elympics-Publisher-API-Key: YOUR_API_KEYAuthorization: Bearer PLAYER_JWT_TOKEN
{
"GameId": "string", # Id of the game for which to create tournament
"Name": "string", # Tournament title
"StartDate": "2025-03-07T09:04:33.305Z", # ISO date when tournament should start
"EndDate": "2025-03-07T09:04:33.305Z", # ISO date when tournament should end
"Competitive": { # Information about paid tournament.
"EntryFee": "1000000000", # Price for 1 game. Possible values in request description.
"CoinId": "string", # Id of prize pool coin. Possible values in request description.
"PrizeDistribution": [ # Is an array where element at index 0 means reward percent for place 1 etc. Possible values in request description.
"1000000000"
]
"EntryType": "string", # For pay per play tournament value here should be 'Tickets'.
"AuthorCommission": "75000000" # Amount of prize pool that creator will receive as an additional reward. Possible values in request description.
}
}
Request constraints
StartDate- ISO date when tournament should start- Minimum: now
- Maximum: now + 72h
EndDate- ISO date when tournament should end- Minimum:
StartDate+ 30min - Maximum:
StartDate+ 24h
- Minimum:
CoinId- id of the coin in which players will pay to access the tournament. More info on coins in dedicated secion.EntryFee- integer with nano-precision (based on the coin’s decimals) E.g. ifcoinprovided isTONand (itscoin.currency.decimals == 9), then 0.25 TON will be returned here as250_000_000or 0.25 * 10e9.- Minimum: based on
Coin. Equals value of fieldcoin.currency.minFeefrom coin details.
- Minimum: based on
PrizeDistribution- always has precision of 10e9. E.g. 50% here is represented as500000000or 0.5 * 10e9.- Minimum positions with rewards:
1. - Maximum positions with rewards:
10. - Element at index 0 means percent for place 1 etc.
- Sum of all array elements should be
1000000000.
- Minimum positions with rewards:
EntryType- for pay per play tournaments this value should beTickets.AuthorCommission- is a percent. Always has precision of 10e9. E.g. 7.5% here is represented as75000000or 0.075 * 10e9.- Minimum:
0. - Maximum:
75000000.
- Minimum:
warning
To become playable paid tournaments require blockchain contract deployment based on the response. More information on how to send deployment transaction in dedicated secion.
{
"Result": {
"Id": "string", # Id of newly created tournament.
"TonContractDeployDetails": { # Exists if tournament was created as with coin on TON blockchain.
"TxPayload": "string", # Base64 encoded payload that should be passed in transaction details to deploy TON contract for this tournament.
"RecommendedTxFee": "150000000", # Recommended amount of TON provided with transaction to pay for gas on blockchain.
"FactoryAddress": "string", # Address of contract transaction receiver.
"ExpectedContractAddress": "string" # Expected address of tournament contract that will be deployed using TxPayload.
};
};
"IsSuccess": "true", # Information on call status.
"Errors": string[] # Array of errors occured during tournament creation.
}
Create pass tournament
Explanation: Creates tournament for selected game where entrance to it costs one time entry fee. After payment player can enter the tournament unlimited number of times.
- Endpoint specs
- Example request
- Example response
- Path:
https://api.elympics.cc/v2/tournament/tournament/tournament-v2 - Method:
POST - Headers:
Elympics-Publisher-API-Key: YOUR_API_KEYAuthorization: Bearer PLAYER_JWT_TOKEN
{
"GameId": "string", # Id of the game for which to create tournament
"Name": "string", # Tournament title
"StartDate": "2025-03-07T09:04:33.305Z", # ISO date when tournament should start
"EndDate": "2025-03-07T09:04:33.305Z", # ISO date when tournament should end
"Competitive": { # Information about paid tournament.
"EntryFee": "1000000000", # Pass price. Possible values in request description.
"CoinId": "string", # Id of prize pool coin. Possible values in request description.
"PrizeDistribution": [ # Is an array where element at index 0 means reward percent for place 1 etc. Possible values in request description.
"1000000000"
]
"EntryType": "string", # For pass tournament value here should be 'Pass'.
"AuthorCommission": "75000000" # Amount of prize pool that creator will receive as an additional reward. Possible values in request description.
}
}
Request constraints
StartDate- ISO date when tournament should start- Minimum: now
- Maximum: now + 72h
EndDate- ISO date when tournament should end- Minimum:
StartDate+ 30min - Maximum:
StartDate+ 1h
- Minimum:
CoinId- id of the coin in which players will pay to access the tournament. More info on coins in dedicated secion.EntryFee- integer with nano-precision (based on the coin’s decimals) E.g. ifcoinprovided isTONand (itscoin.currency.decimals == 9), then 0.25 TON will be returned here as250_000_000or 0.25 * 10e9.- Minimum: based on
Coin. Equals value of fieldcoin.currency.minFeefrom coin details miltiplied by10.
- Minimum: based on
PrizeDistribution- always has precision of 10e9. E.g. 50% here is represented as500000000or 0.5 * 10e9.- Minimum positions with rewards:
1. - Maximum positions with rewards:
10. - Element at index 0 means percent for place 1 etc.
- Sum of all array elements should be
1000000000.
- Minimum positions with rewards:
EntryType- for pay per play tournaments this value should beTickets.AuthorCommission- is a percent. Always has precision of 10e9. E.g. 7.5% here is represented as75000000or 0.075 * 10e9.- Minimum:
0. - Maximum:
75000000.
- Minimum:
warning
To become playable paid tournaments require blockchain contract deployment based on the response. More information on how to send deployment transaction in dedicated secion.
{
"Result": {
"Id": "string", # Id of newly created tournament.
"TonContractDeployDetails": { # Exists if tournament was created as with coin on TON blockchain.
"TxPayload": "string", # Base64 encoded payload that should be passed in transaction details to deploy TON contract for this tournament.
"RecommendedTxFee": "150000000", # Recommended amount of TON provided with transaction to pay for gas on blockchain.
"FactoryAddress": "string", # Address of contract transaction receiver.
"ExpectedContractAddress": "string" # Expected address of tournament contract that will be deployed using TxPayload.
};
};
"IsSuccess": "true", # Information on call status.
"Errors": string[] # Array of errors occured during tournament creation.
}