Skip to main content

Cases & Rewards

This page documents API operations for this section in a unified operation-card format.

Cases​

QuerydocumentId: casesauth: public

cases​

Description​

Case list.

Input​

FieldTypeRequiredDescription
gameServerIdInt!yesGame 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​

Request
documentId: cases
{
"documentId": "cases",
"variables": {}
}
Response
200 OK
{
"data": {
"cases": {}
}
}

Case configuration​

QuerydocumentId: caseConfigauth: public

caseConfig​

Description​

Case configuration.

Input​

FieldTypeRequiredDescription
idInt✓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​

Request
documentId: caseConfig
{
"documentId": "caseConfig",
"variables": {
"id": 1
}
}
Response
200 OK
{
"data": {
"caseConfig": {}
}
}

Case categories​

QuerydocumentId: caseCategoriesauth: public

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​

Request
documentId: caseCategories
{
"documentId": "caseCategories",
"variables": {}
}
Response
200 OK
{
"data": {
"caseCategories": {}
}
}

Open case​

MutationdocumentId: openCaseauth: Bearer session

openCase​

Description​

Open case.

Input​

FieldTypeRequiredDescription
caseIdID!yesCase ID.
requestIdID!yesOperation 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​

Request
documentId: openCase
{
"documentId": "openCase",
"variables": {
"caseId": "1",
"requestId": "019b33d8-c10d-7c49-9d8a-7442dfcb5376"
}
}
Response
200 OK
{
"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.

Lucky Wheel​

QuerydocumentId: luckyWheelConfigauth: public

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​

Request
documentId: luckyWheelConfig
{
"documentId": "luckyWheelConfig",
"variables": {}
}
Response
200 OK
{
"data": {
"luckyWheelConfig": {}
}
}

Spin history​

QuerydocumentId: luckyWheelHistoryauth: Bearer session

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​

Request
documentId: luckyWheelHistory
{
"documentId": "luckyWheelHistory",
"variables": {
"first": 10,
"after": null
}
}
Response
200 OK
{
"data": {
"luckyWheelHistory": {
"nodes": [],
"totalCount": 0,
"pageInfo": {
"hasNextPage": false,
"hasPreviousPage": false,
"endCursor": null
}
}
}
}

Spin the wheel​

MutationdocumentId: spinLuckyWheelauth: Bearer session

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​

Request
documentId: spinLuckyWheel
{
"documentId": "spinLuckyWheel",
"variables": {}
}
Response
200 OK
{
"data": {
"spinLuckyWheel": {}
}
}

Daily Rewards​

QuerydocumentId: dailyRewardsInfoauth: public

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​

Request
documentId: dailyRewardsInfo
{
"documentId": "dailyRewardsInfo",
"variables": {}
}
Response
200 OK
{
"data": {
"dailyRewardsInfo": {}
}
}

Claim reward​

MutationdocumentId: claimDailyRewardauth: Bearer session

claimDailyReward​

Description​

Daily reward.

Input​

FieldTypeRequiredDescription
dayInt✓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​

Request
documentId: claimDailyReward
{
"documentId": "claimDailyReward",
"variables": {
"day": 1
}
}
Response
200 OK
{
"data": {
"claimDailyReward": {}
}
}

Bonus Codes​

MutationdocumentId: activateBonusCodeauth: Bearer session

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​

FieldTypeRequiredDescription
input.codeString!✓Activation code.
input.gameAccountNameStringRecipient game account; required for item rewards and the per-game-account policy.
input.characterNameStringRecipient 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​

Request
documentId: activateBonusCode
{
"documentId": "activateBonusCode",
"variables": {
"input": {
"code": "ADEN-VANGUARD-2026",
"gameAccountName": "GameLogin",
"characterName": "Hero"
}
}
}
Response
200 OK
{
"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
}
}
}

Gift Codes​

QuerydocumentId: giftCodeStoreauth: public

giftCodeStore​

Description​

Gift-code store availability, packages, and custom-denomination policy for a game server.

Input​

FieldTypeRequiredDescription
gameServerIdInt!✓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​

Request
documentId: giftCodeStore
{
"documentId": "giftCodeStore",
"variables": {
"gameServerId": 1
}
}
Response
200 OK
{
"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
}
]
}
}
}

Purchase history​

QuerydocumentId: giftCodeHistoryauth: Bearer session

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​

Request
documentId: giftCodeHistory
{
"documentId": "giftCodeHistory",
"variables": {
"gameServerId": 1
}
}
Response
200 OK
{
"data": {
"giftCodeHistory": [
{
"id": "42",
"code": "GIFT-7Q4N-P9XM",
"denomination": "500",
"status": "ACTIVE",
"createdAt": "2026-07-24T12:30:00+00:00"
}
]
}
}

Buy gift code​

MutationdocumentId: buyGiftCodeauth: Bearer session

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​

FieldTypeRequiredDescription
input.requestIdID!✓Request UUID used for idempotency.
input.packageIdIDconditionalEnabled package ID.
input.customAmountDecimalconditionalExact 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 new requestId.
  • 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​

Request
documentId: buyGiftCode
{
"documentId": "buyGiftCode",
"variables": {
"input": {
"requestId": "01984f36-4b55-7d31-98f4-f82a6ba7d5d1",
"packageId": "1"
}
}
}
Response
200 OK
{
"data": {
"buyGiftCode": {
"purchaseId": "43",
"code": "GIFT-4Z2K-M8QA",
"denomination": "100",
"balance": "890",
"bonusBalance": "50"
}
}
}