Cases & Rewards
This page documents API operations for this section in a unified operation-card format.
Cases
cases
Description
Case list.
Input
| Field | Type | Required | Description |
|---|---|---|---|
gameServerId | Int! | yes | Game server whose purchase history is requested |
Result
Response type - [CaseConfig!]!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "cases",
"variables": {}
}
{
"data": {
"cases": {}
}
}
Related types
Case configuration
caseConfig
Description
Case configuration.
Input
| Field | Type | Required | Description |
|---|---|---|---|
id | Int | ✓ | Entity ID. |
Result
Response type - CaseConfig.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "caseConfig",
"variables": {
"id": 1
}
}
{
"data": {
"caseConfig": {}
}
}
Related types
Case categories
caseCategories
Description
Case categories.
Input
The operation does not accept variables.
Result
Response type - [CaseCategory!]!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "caseCategories",
"variables": {}
}
{
"data": {
"caseCategories": {}
}
}
Related types
Open case
openCase
Description
Open case.
Input
| Field | Type | Required | Description |
|---|---|---|---|
caseId | ID! | yes | Case ID. |
requestId | ID! | yes | Operation UUIDv7 created by the client before the first request. |
Result
Response type - CaseOpenResult!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "openCase",
"variables": {
"caseId": "1",
"requestId": "019b33d8-c10d-7c49-9d8a-7442dfcb5376"
}
}
{
"data": {
"openCase": {
"item": {
"id": "019b33d8-c393-7a80-9160-c39bc26fe27a",
"itemId": 57,
"name": "Adena",
"count": 100000
},
"balance": 490,
"bonusBalance": 0
}
}
}
Retrying with the same requestId returns the original result and does not charge payment, consume a VIP attempt, or deliver the item twice. The same UUID cannot be reused for another case.
Related types
Lucky Wheel
luckyWheelConfig
Description
Wheel configuration.
Input
The operation does not accept variables.
Result
Response type - LuckyWheelConfig.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "luckyWheelConfig",
"variables": {}
}
{
"data": {
"luckyWheelConfig": {}
}
}
Related types
Spin history
luckyWheelHistory
Description
Spin history with cursor pagination. Pass pageInfo.endCursor as after to request the next page.
Input
first: Int- number of entries from 1 to 25. Defaults to 10.after: String- next-page cursor. Omit it for the first page.
Result
Response type - LuckyWheelSpinConnection!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "luckyWheelHistory",
"variables": {
"first": 10,
"after": null
}
}
{
"data": {
"luckyWheelHistory": {
"nodes": [],
"totalCount": 0,
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"endCursor": null
}
}
}
}
Related types
Spin the wheel
spinLuckyWheel
Description
Lucky wheel.
Input
The operation does not accept variables.
Result
Response type - LuckyWheelSpinResult!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "spinLuckyWheel",
"variables": {}
}
{
"data": {
"spinLuckyWheel": {}
}
}
Related types
Daily Rewards
dailyRewardsInfo
Description
Reward status.
Input
The operation does not accept variables.
Result
Response type - DailyRewardStatus!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "dailyRewardsInfo",
"variables": {}
}
{
"data": {
"dailyRewardsInfo": {}
}
}
Related types
Claim reward
claimDailyReward
Description
Daily reward.
Input
| Field | Type | Required | Description |
|---|---|---|---|
day | Int | ✓ | Reward day. |
Result
Response type - DailyRewardClaimResult!.
Errors
MODULE_DISABLED- requested reward module is disabled.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.
Exchange example
{
"documentId": "claimDailyReward",
"variables": {
"day": 1
}
}
{
"data": {
"claimDailyReward": {}
}
}
Related types
Bonus Codes
activateBonusCode
Description
Activates a bonus code in the current project and selected game server. Balance rewards do not need a recipient. For item rewards, a call without a recipient returns requiresRecipient: true; the client then repeats the operation with an account and character.
Input
| Field | Type | Required | Description |
|---|---|---|---|
input.code | String! | ✓ | Activation code. |
input.gameAccountName | String | Recipient game account; required for item rewards and the per-game-account policy. | |
input.characterName | String | Recipient character; required for item rewards. |
Result
Response type - BonusCodeRedemptionResult!.
Errors
VALIDATION- request parameters are invalid.CODE_NOT_FOUND,CODE_DISABLED,CODE_NOT_STARTED,CODE_EXPIRED- the code is unavailable.ALREADY_USED,ALREADY_USED_FOR_ACCOUNT,GROUP_ALREADY_ACTIVATED- the reuse policy was violated.NOT_AVAILABLE_FOR_ACCOUNT- the code is not assigned to the current player.VIP_REQUIRED,VIP_FROZEN,VIP_LEVEL_REQUIRED- the code's VIP condition is not satisfied.VIP_UNAVAILABLE- status verification is temporarily unavailable; the code is not reserved.DELIVERY_FAILED- reward delivery was not confirmed.
Exchange example
{
"documentId": "activateBonusCode",
"variables": {
"input": {
"code": "ADEN-VANGUARD-2026",
"gameAccountName": "GameLogin",
"characterName": "Hero"
}
}
}
{
"data": {
"activateBonusCode": {
"requiresRecipient": false,
"rewardType": "ITEMS",
"amount": null,
"bonusExpiresAt": null,
"balance": null,
"bonusBalance": null,
"itemsCount": 2,
"characterName": "Hero",
"baseAmount": null,
"vipBonusAmount": null,
"vipMultiplier": 1,
"vipApplied": true,
"baseItemsCount": 1,
"vipBonusItemsCount": 1
}
}
}
Related types
Gift Codes
giftCodeStore
Description
Gift-code store availability, packages, and custom-denomination policy for a game server.
Input
| Field | Type | Required | Description |
|---|---|---|---|
gameServerId | Int! | ✓ | Project game server. |
Result
Response type - GiftCodeStore!. When the feature is disabled, enabled is false and the package list is empty.
Errors
VALIDATION- request parameters are invalid.
Exchange example
{
"documentId": "giftCodeStore",
"variables": {
"gameServerId": 1
}
}
{
"data": {
"giftCodeStore": {
"enabled": true,
"customAmount": {
"enabled": true,
"minimum": "100",
"maximum": "5000",
"priceRate": "0.1"
},
"packages": [
{
"id": "1",
"name": "Starter Gift",
"description": "100 units of gift balance",
"price": "10",
"denomination": "100",
"popular": false
}
]
}
}
}
Related types
Purchase history
giftCodeHistory
Description
The current player's last 20 completed gift-code purchases on the selected server. Disabling new purchases does not remove history.
Input
Supply gameServerId: Int! for the selected project server.
Result
Response type - [GiftCodePurchase!]!. Denominations are exact strings.
Errors
- Authorization failures or inaccessible servers do not return history.
VALIDATION- request parameters are invalid.
Exchange example
{
"documentId": "giftCodeHistory",
"variables": {
"gameServerId": 1
}
}
{
"data": {
"giftCodeHistory": [
{
"id": "42",
"code": "GIFT-7Q4N-P9XM",
"denomination": "500",
"status": "ACTIVE",
"createdAt": "2026-07-24T12:30:00+00:00"
}
]
}
}
Related types
Buy gift code
buyGiftCode
Description
Purchases a package or a custom-denomination code. requestId makes retries idempotent: the balance is not charged and the code is not issued twice.
Input
| Field | Type | Required | Description |
|---|---|---|---|
input.requestId | ID! | ✓ | Request UUID used for idempotency. |
input.packageId | ID | conditional | Enabled package ID. |
input.customAmount | Decimal | conditional | Exact custom-denomination string, at most four decimal places, within the configured range. |
Provide exactly one of packageId and customAmount. For example, "customAmount": "100.0001"; JSON numbers are rejected. Retain the UUID and original parameters until completion. Retries in the same player/server context use saved terms; changing the package or denomination with the same UUID is rejected. Do not generate another UUID after losing a response.
Result
Response type - GiftCodeResult!.
Errors
NOT_CONFIGURED- new gift-code purchases are disabled for the server.VALIDATION- request parameters are invalid.INSUFFICIENT_BALANCE- balance is not enough for paid action.PAYMENT_DEBT- repay the balance's debt, then start a new purchase with a newrequestId.INVALID_PURCHASE- the UUID conflicts with the purchase parameters.PURCHASE_IN_PROGRESS- the result is still unknown;extensions.retryable: true, retry the original request.PURCHASE_FAILED- the purchase ended without a code; the original debit was reversed or no debit occurred.
For the gift_code error category, extensions.retryable distinguishes a pending purchase from a terminal failure. A connection error does not prove that no debit occurred.
Exchange example
{
"documentId": "buyGiftCode",
"variables": {
"input": {
"requestId": "01984f36-4b55-7d31-98f4-f82a6ba7d5d1",
"packageId": "1"
}
}
}
{
"data": {
"buyGiftCode": {
"purchaseId": "43",
"code": "GIFT-4Z2K-M8QA",
"denomination": "100",
"balance": "890",
"bonusBalance": "50"
}
}
}