REST API Reference

Complete documentation of the Darkstar game server REST API. 190 endpoints across 20 categories. 18 endpoints have fully captured request/response structures from mitmproxy traffic.

HTTP POST v1.1.80 JWT Auth 190 endpoints 18 captured

Server Infrastructure

Base URL http://a78ccee3e79098492.awsglobalaccelerator.com API Prefix /idlerpgv1/ Protocol HTTP POST (all endpoints) Content-Type application/json Request Encoding JSON → Base64 string Response Encoding "1" prefix + Base64(zlib(JSON)) Auth JWT (HS256) in authToken payload field
Response Decoding
All game responses are JSON strings containing: a "1" version prefix, followed by Base64-encoded zlib-compressed JSON. To decode: strip the leading "1", Base64-decode, zlib-decompress, then JSON-parse.

Authentication Flow

3 steps

The game establishes a session through a strict 3-step login sequence. Each step must complete successfully before the next can proceed. All three steps have been captured.

Step 1: server_status captured

Endpoint POST /idlerpgv1/lib/server_status Purpose Check server availability, get channel list Auth None (pre-auth, authToken sent but null)
Request / Response

Request

{
  "authToken": null,
  "platform": null,
  "sns": null,
  "sns_id": null,
  "udid": null,
  "nation_id": null,
  "nickName": null,
  "client_version": "1179",
  "onesignal_id": null,
  "name": null,
  "remote_push": null,
  "notice_push": null,
  "night_push": null,
  "devicename": null,
  "uid": 0,
  "accessType": 0,
  "ramsize": 0,
  "region": 0,
  "channel": 0,
  "date": 0.0
}

Response

{
  "server_status": "RUN",
  "server_url": "",
  "server_list": [10001, 10001, 10001, ...],     // 20 entries
  "server_channel": [19, 18, 17, 16, 15, ...],   // 20 entries
  "server_condition": [2, 1, 1, 1, 1, ...],      // 20 entries (2=recommended)
  "update_time": "(05:00 ~ 07:00 UTC)"
}

server_status is "RUN" when online. server_condition values: 1=normal, 2=recommended.

Step 2: checkauthtoken captured

Endpoint POST /idlerpgv1/user/checkauthtoken Purpose Verify device identity via SNS + UDID Auth None (pre-auth)
Request / Response

Request

{
  "authToken": null,
  "platform": null,
  "sns": null,
  "sns_id": "<google_account_id>",
  "udid": "<device_uuid>",
  "nation_id": null,
  "nickName": null,
  "client_version": null,
  "onesignal_id": null,
  "name": null,
  "remote_push": null,
  "notice_push": null,
  "night_push": null,
  "devicename": null,
  "uid": 0,
  "accessType": 1,
  "ramsize": 0,
  "region": 1,
  "channel": 14,
  "date": 1737218049.0
}

Response

{
  "result": true
}

Returns only result: true on success. The JWT is set server-side for the next request.

Step 3: user/load captured

Endpoint POST /idlerpgv1/user/load Purpose Load complete account data (largest response) Auth JWT from Step 2
Request / Response (77 response fields)

Request

{
  "authToken": "<jwt>",
  "platform": "android",
  "sns": "Google",
  "sns_id": "<google_account_id>",
  "udid": "<device_uuid>",
  "nation_id": null,
  "nickName": null,
  "client_version": "1.1.79",
  "onesignal_id": null,
  "name": null,
  "remote_push": "",
  "notice_push": "",
  "night_push": "",
  "devicename": "Google sdk_gphone64_x86_64",
  "uid": 338992,
  "accessType": 1,
  "ramsize": 4096,
  "region": 1,
  "channel": 14,
  "date": 1737218050.0
}

Response (77 top-level fields)

{
  "result": true,
  "authToken": "<new_jwt>",
  "time": "2026-01-18 16:54:10",

  "account": {
    "platform": "android", "sns": "Google", "server": 14,
    "user_id": 338992, "nickname": "JustTesting",
    "day_count": 13, "attendance": 4, "attendance_status": 1,
    "client_version": "1.1.79", "syncidx": 197, "status": 0,
    ...                                    // 21 fields total
  },
  "user": {
    "badge_id": 6, "rank": 3158, "max_stage": 85, "stage": 85,
    "wave_mode": 1, "guide": 215,
    "credit_quotient": 86.0199, "credit_exponent": 4,
    "mineral_quotient": 116.53, "mineral_exponent": 1,
    "bonus_dia": 90461, "paid_dia": 0,
    "mothership_id": 10002,
    ...                                    // 30 fields total
  },
  "stat": {
    "power": 2500, "health": 2400, "autorepair": 2200,
    "attackspeed": 400, "attackrange": 1,
    "criticalchance": 150, "criticaldamage": 350,
    "damageincrease": 1, "fastreload": 1, "weakness": 1,
    "verifytime": 0
  },
  "ship":         [{ "proto_id": 10001, "upgrade": 0, "level": 17, "exp": 200, "admiral_id": 0 }, ...],  // 2 items
  "item":         [{ "proto_id": 2001, "awakening": 0, "level": 1, "count": 7 }, ...],                    // 58 items
  "skill":        [{ "proto_id": 3001, "awakening": 0, "level": 16, "count": 8 }, ...],                   // 9 items
  "servant":      [],
  "admiral":      [],
  "summon":       [{ "group_id": 101, "level": 4, "exp": 250, "exchange": 4 }, ...],                      // 3 items
  "store":        [{ "store_type": 0, "product_ids": "3200", "allowed_count": "1" }],
  "equipslot":    { "weapon_id": 103105, "armor_id": 203105, "accessory_id": 0, "artifact_id": 0 },
  "skillpreset":  [{ "preset_id": 0, "slot1": 3001, "slot2": 3009, "slot3": 3008, "slot4": 3006, "slot5": 0, "slot6": 0, "status": 1 }],
  "servantslot":  { "slot1": 0, "slot2": 0, "slot3": 0, ... "slot10": 0 },
  "build":        [{ "build_id": 1001, "step": 1 }, ...],                                                 // 12 items
  "offline":      { "offline_rate": 110.444, "offline_time": "2025-12-30 06:16:15", ... },                 // 20 fields
  "research":     [],
  "exploration":  [],
  "contents":     { "battle1_lv": 0, "battle2_lv": 0, ... },                                              // 8+ fields
  "memorycard":   [],
  "achievement":  [{ "proto_id": 1001, "progress": 0, "status": 0, ... }, ...],                           // 56 items
  "collectionbook": [{ "proto_id": 2001, "count": 7 }, ...],                                              // 58 items
  "guide":        [{ "guide_id": 215, "status": 1 }, ...],                                                // 4 items
  "pass":         [{ ... }],                                                                               // 34 fields per item
  "normalpass":   [{ ... }, ...],                                                                          // 3 items
  "mail":         [{ "mail_id": ..., "type": ..., "item_id": ..., ... }, ...],                             // 5,702 items!
  "eventgroup":   [{ "group_id": 2600, "day": 11, ... }, ...],                                            // 5 items
  "eventitem":    [{ "group_id": 2600, "proto_id": 2612, "event_type": 104, ... }, ...],                  // 352 items
  "eventsummon":  [],
  "eventboard":   [],
  "eventopenbox": [],
  "eventrandbox": [],
  "eventcollect": [{ ... }],
  "eventcommon":  [],
  "eventbuild":   [],
  "hardware":     { "level": 0, "volt": 0, "software_level": 0, "software_exp": 0, ... },
  "software":     [{ ... }, ...],                                                                          // 3 items, 42 fields each
  "subbonus":     { "reduce_research_time": 0.0, "add_goldbar_reward": 0.0, ... },
  "timesale":     [{ ... }, ...],                                                                          // 7 items
  "coupon":       { "coupon": "0" },
  "mastery":      [{ ... }, ...],                                                                          // 3 items
  "starwars_player":  { "season": 0, "class_id": 0, ... },
  "starwars_fleet":   [{ ... }, ...],                                                                      // 3 items, 11 fields each
  "starwars_store":   [],
  "starwars_option":  { "season": 0, "end_time": "2027-12-31 00:00:00", "status": 0, ... },
  "alliesmember":     { "allies_id": 2915, "exp": 300, "attendance": 1, ... },
  "allies":           { "allies_id": 2915, "group_id": 7, "allies_name": "Urquan", "level": 24, ... },
  "logbook":      [],
  "stageloot":    [{ "sector_id": 1, "world_id": 9, "stage1": 4715, ... }, ...],                          // 9 items
  "tutorial":     { "tutorial_ids": "5/6/111/112/99/10/42/..." },
  "dispatch":     [],
  "gemstone":     [],
  "gemstoneslot": [{ ... }, ...],                                                                          // 5 items, 22 fields each
  "gemstonecollection": [],
  "plugin":       [],
  "worldbossslot": [],
  "worldboss":    { "respawn_idx": 0, "level": 0, "spawn_count": 3, "total_point": 0, ... },
  "worldbossdock": [{ "season": 202603, "dock_id": 1, "level": 37, ... }, ...],                           // 4 items
  "worldbosslog": [],
  "supply":       [],
  "arenaplayer":  { "now_season": 0, "server_status": 0, "endDate": "2026-01-19 23:59:59" },
  "admiralstore": [],
  "medal":        [],
  "building":     [],
  "chips":        [],
  "achievementcolony": [],
  "multipass":    [],
  "processor":    [],
  "upgradetech":  [],
  "production":   [],
  "lockedskill":  { "Battle4": "3004/3015/3010/3013/3014" },
  "worldbossdebuff": { "Debuff": "651/655/657/654/656", "EffectValues": "470/560/260/..." },
  "rankinfo":     { "event111": 0, "event114": 0 },
  "system":       { "weekly_reset_time": "2026-01-19 00:00:00" },
  "adsSet":       { "audience": false, "admob": false, "unityads": false, ... }
}

This is the largest API response — returns the entire player state in 77 top-level fields. The mail array alone contained 5,702 items in the captured session.

JWT Structure

The authentication token is a standard JWT signed with HS256. It carries the user's ID and device identifier in the payload.

Header

{
  "typ": "JWT",
  "alg": "HS256"
}

Payload

{
  "user_id": "338992",
  "udid": "<device_uuid>"
}
Token Lifecycle
The JWT is issued during UserLoad (Step 3) and must be included in the authToken field of every subsequent request. A new authToken is returned in the UserLoad response. The /system/authtoken/alive endpoint acts as a keep-alive to prevent session expiration.

Endpoint Categories

190 endpoints · 20 categories

All endpoints live under the /idlerpgv1/ prefix. Every request is an HTTP POST with a JSON body. Endpoints marked captured have verified request/response structures from mitmproxy traffic captures.

Authentication & System

EndpointDescriptionData
lib/server_statusCheck servers, get channel listcaptured
user/checkauthtokenVerify device identitycaptured
user/checkaccountCheck account existence--
user/loadLoad full account data (77 response fields)captured
user/initInitialize daily sessioncaptured
user/signupSign up new account--
user/dropDelete account--
system/authtoken/aliveKeep-alive auth token--
system/error_logSend error log--
system/couponUse coupon code--
tutorial/completedMark tutorial complete--
user/init — Daily Session Init

Request

{
  "authToken": "<jwt>",
  "nickname": null,
  "sns": null,
  "sns_id": null
}

Response

{
  "result": true,
  "account": {
    "day_count": 14,
    "attendance_status": 1,
    "init_date": "2026-01-19 00:00:00",
    "stagerank": 1,
    "purchased": 0
  },
  "user": { "dispatch_oil": 70 },
  "contents": {
    "battle1_ad": 2, "battle2_ad": 2, "battle3_ad": 2, "battle4_ad": 2, "battle5_ad": 2,
    "wb1_quotient": 1.0, "wb1_exponent": 0, "wb1_reward": 0
  },
  "worldboss": {},
  "item": [],
  "achievement": [{ "proto_id": 1001, "progress": 0, "status": 1 }, ...],   // 21 items
  "eventgroup":  [{ "group_id": 2600, "day": 11, "sort": 8, "startdate": "2024-03-21 00:00:00", "enddate": "2099-12-30 00:00:00", ... }],
  "eventitem":   [{ "group_id": 2600, "proto_id": 2612, "event_type": 104, "event_value": 0, "count": 1, "progress": 1, "status": 2 }, ...],  // 37 items
  "eventboard":  [],
  "deleteStore": [{ "store_type": 1, "product_ids": "", "allowed_count": "" }, ...],
  "mail": [],
  "medal": [],
  "lockedskill":    { "Battle4": "3003/3008/3020/3004/3006" },
  "worldbossdebuff": { "Debuff": "651/655/657/654/656", "EffectValues": "470/560/260/210/150/590/390/50/60/100/110/60/30/110" }
}

Called at the start of each session. Returns daily reset data, event progress, locked skill configurations, and world boss debuff assignments (slash-delimited PropertyType IDs).

User Management

EndpointDescriptionData
user/change/nicknameChange display name--
user/change/socialChange social link--
user/replace/socialReplace social account binding--
user/offline/loadLoad offline rewards summary--
user/offline/collectCollect offline rewards--
user/offline/bonus/loadLoad offline bonus info--
user/offline/bonus/collectCollect offline bonus--
user/offline/reneal/loadLoad offline renewal infocaptured
user/offline/reneal/collectCollect offline renewal rewardscaptured
user/rankup/rewardClaim rank-up reward--
user/synopsysGet account synopsis--
user/endsyncEnd data sync session--
user/offline/reneal/load — Offline Renewal Preview

Request

{
  "authToken": "<jwt>",
  "nickname": null,
  "sns": null,
  "sns_id": null
}

Response

{
  "result": true,
  "offline": {
    "offline_rate": 110.444,
    "offline_item_ids":    "1001/1010/2013/100501/100401/101401/1002/200501/201101/100101/102101/...",
    "offline_item_counts": "1440/1440/43200/8/8/4/16/8/2/11/5/4/10/7/10/4/3/5/1/6/10/2/1/1/4/2/...",
    "offline_stage_id": 85,
    "offline_loot_cnt": 75137,
    "item_ids": "",
    "counts": "",
    "bonus_item_ids":    "2013/100201/200501/202104/200401/201501/1002/102105/103101/102102/100101",
    "bonus_counts":      "7200/1/1/1/2/1/2/1/1/1/1",
    "offline_time":      "2025-12-30 06:16:55",
    "start_time":        "2026-01-18 16:54:10",
    "refresh_time":      "2026-01-18 14:04:33",
    "bonus_start_time":  "2026-01-18 14:04:33",
    "bonus_refresh_time":"2026-01-18 14:04:33",
    "bonus_locked_time": "2025-10-15 04:01:37"
  }
}

Item IDs and counts use slash-delimited strings (e.g., "1001/1010/2013" with counts "1440/1440/43200"). The offline_rate is a percentage multiplier (110.444%).

user/offline/reneal/collect — Collect Offline Rewards

Request

{
  "authToken": "<jwt>",
  "nickname": null,
  "sns": null,
  "sns_id": null
}

Response

{
  "result": true,
  "user": { "bonus_dia": 90477, "paid_dia": 0, "getDiaCount": 16 },
  "hardware": { "volt": 0, "get_volt": 0 },
  "item": [
    { "proto_id": 2013, "getCount": 43200, "level": 1, "count": 404470 },
    ...                                                                     // 30 items
  ],
  "offline": { "offline_rate": 110.444, "offline_stage_id": 85, "offline_loot_cnt": 75137, ... },
  "stageloot": [{ "sector_id": 1, "world_id": 9, "stage1": 4715, "stage2": 24, ... }],
  "loot": [{ "stage_id": 85, "getCount": 75137 }],
  "credit": { "credit_quotient": 48.471906, "credit_exponent": 4 },
  "achievement": [{ "proto_id": 2009, "progress": 1 }],
  "eventitem": [{ "proto_id": 3904, "progress": 6, "status": 2 }, ...]     // 7 items
}

Returns updated currency balances, collected items with getCount showing the amount gained, and credit in NumberUnit format (48.47 * 10^4 = 484,719).

Stage & Combat

EndpointDescriptionData
stage/clearReport stage cleared--
stage/repeatRepeat a stage--
stage/defeatReport stage defeat--
stage/changeChange active stage--
stat/upgradeUpgrade a stat (sync progress)captured
stat/upgrade — Stat Upgrade + Progress Sync

Request (25 fields)

{
  "authToken": "<jwt>",
  "stageIds": "85",
  "enemyCnts": "61",
  "lootCnts": "45",
  "syncidx": 198,
  "power": 2500,
  "health": 2400,
  "autorepair": 2200,
  "attackspeed": 400,
  "criticalchance": 150,
  "criticaldamage": 350,
  "damageincrease": 1,
  "weakness": 1,
  "cost_quotient": "0",
  "cost_exponent": 0,
  "remain_quotient": "86.03851",
  "remain_exponent": 4,
  "stage": 85,
  "wavemode": 1,
  "add_quotient": "18.59158",
  "add_exponent": 4,
  "add_crystal": 0,
  "destroyedcount": 0,
  "playtime": 27.84967,
  "updatetick": 16
}

Response

{
  "result": true,
  "account": { "syncidx": 198 },
  "user": {
    "rank": 3165,
    "credit_quotient": 86.03851,
    "credit_exponent": 4,
    "wave_mode": 1
  },
  "stat": {
    "power": 2500, "health": 2400, "autorepair": 2200,
    "attackspeed": 400, "attackrange": 1,
    "criticalchance": 150, "criticaldamage": 350,
    "damageincrease": 1, "fastreload": 1, "weakness": 1,
    "verifytime": 0
  },
  "hardware": { "volt": 0 },
  "stageloot": [{
    "sector_id": 1, "world_id": 9,
    "stage1": 4715, "stage2": 24, "stage3": 70, "stage4": 21,
    "stage5": 61730, "stage6": 0, "stage7": 0, "stage8": 0,
    "stage9": 0, "stage10": 0,
    "levels": "0/0/0/0/0/0/0/0/0/0"
  }],
  "item": [{ "proto_id": 2035, "awakening": 0, "level": 1, "count": 0, "getCount": 0 }],
  "offline": {
    "offline_rate": 110.444,
    "offline_time": "2025-12-30 06:16:55",
    "none_reflect_sec": 97,
    "none_bonus_reflect_sec": 97
  }
}

This endpoint doubles as a progress sync — the client sends current stat levels, stage progress, and credit balances. The remain_quotient/exponent and add_quotient/exponent fields use NumberUnit encoding (86.03851 * 10^4 = 860,385 credits).

Ships

EndpointDescriptionData
ship/levelupLevel up a ship--
ship/gradeupUpgrade ship rarity grade--
ship/admiral/equipEquip admiral to ship--
ship/equipEquip ship to fleet slot--

Items

EndpointDescriptionData
item/awakeningAwaken an item--
item/levelupLevel up an item--
item/gradeupUpgrade item rarity grade--
item/alllevelupBatch level up all items--
item/allgradeupBatch grade up all items--
item/equipEquip item to slot--
item/use/choiceUse a choice item (select reward)--
item/use/usedMark item as used--

Skills

EndpointDescriptionData
skill/awakeningAwaken a skill--
skill/levelupLevel up a skill--
skill/gradeupUpgrade skill rarity grade--
skill/alllevelupBatch level up all skills--
skill/allgradeupBatch grade up all skills--
skill/equipEquip skill to slot--

Servants / Drones

EndpointDescriptionData
servant/awakeningAwaken a servant/drone--
servant/levelupLevel up a servant/drone--
servant/gradeupUpgrade servant rarity grade--
servant/alllevelupBatch level up all servants--
servant/allgradeupBatch grade up all servants--
servant/equipEquip servant to slot--

Admirals

EndpointDescriptionData
admiral/levelupLevel up an admiral--
admiral/levelup/allBatch level up all admirals--
admiral/decomposeDecompose (sacrifice) admiral--
admiral/store/refreshRefresh admiral store inventory--
admiral/store/buyBuy admiral from store--

Artifacts

EndpointDescriptionData
artifact/levelupLevel up an artifact--
artifact/upgradeUpgrade artifact tier--
artifact/craftCraft new artifact--
artifact/buyBuy artifact from shop--

Memory Cards

EndpointDescriptionData
memorycard/summonSummon (gacha) memory cards--
memorycard/equipEquip memory card to grid--
memorycard/levelupLevel up a memory card--
memorycard/gradeupUpgrade memory card rarity--

Gemstones

EndpointDescriptionData
gemstone/equipSocket gemstone into slot--
gemstone/levelupLevel up a gemstone--
gemstone/gradeupUpgrade gemstone rarity--
gemstone/disassembleDisassemble gemstone for materials--
gemstone/unlockslotUnlock additional gemstone slot--

Hardware, Software & Processor

EndpointDescriptionData
hardware/levelupLevel up hardware component--
hardware/disk/collectCollect hardware disk rewards--
software/disk/chargingCharge software disk--
software/renew/installInstall software renewal--
software/change/presetChange software preset--
processor/chips/equipEquip processor chip--
processor/chips/unequipUnequip processor chip--
processor/chips/mergeMerge processor chips--
processor/chips/statusCheck chip status--
processor/presetSave/load processor preset--

Arena PvP

EndpointDescriptionData
arena/operation_infoGet arena operation info--
arena/readyMark ready for arena match--
arena/settingUpdate arena fleet settings--
arena/matchingFind arena opponent--
arena/battle/startStart arena battle--
arena/battle/endReport arena battle result--
arena/battle/logGet arena battle log--
arena/userinfoGet arena user profile--

World Boss

EndpointDescriptionData
worldboss/normal/startStart normal world boss fightcaptured
worldboss/normal/endReport normal world boss resultcaptured
worldboss/update/slotUpdate world boss fleet slot--
worldboss/reward/totaldamageClaim total damage milestone reward--
worldboss/evolution/normal/startStart Evo Chronos boss fightcaptured
worldboss/evolution/normal/endReport Evo Chronos resultcaptured
worldboss/evolution/map/loadLoad Evo Chronos map datacaptured
worldboss/evolution/log/loadLoad Evo Chronos battle logcaptured
worldboss/evolution/historyGet Evo Chronos historycaptured
worldboss/evolution/history/rewardClaim single history reward--
worldboss/evolution/history/rewardsClaim all history rewardscaptured
worldboss/normal/start — Start Normal World Boss

Request

{
  "authToken": "<jwt>",
  "dock_id": 0, "slot_id": 0,
  "ship_ids": null, "drone_ids": null, "skill_ids": null, "stat_lvs": null,
  "level": 0, "quotient": 0.0, "exponent": 0,
  "boss_type": 0, "step": 0, "status": 0,
  "user_id": 0, "respawn_idx": 0,
  "history_id": 0, "history_ids": null, "remain": 0
}

Response

{
  "result": true,
  "worldbossslot": [{
    "slot_id": 0,
    "ship_ids":  "10002/0/0",
    "drone_ids": "30012/0/0/0/0/30020/30019/30018/30017/30016",
    "skill_ids": "3001/3009/3010/0/0/0",
    "stat_lvs":  "0/0/0/21/0/0/0/1",
    "status": 2
  }],
  "max": 10,
  "rank": 0
}

Returns the fleet configuration as slash-delimited ID strings. max is the player's highest boss level. stat_lvs maps to stat indices matching the stat/upgrade fields.

worldboss/normal/end — World Boss Result

Request

Request body not captured (binary-encoded).

Response

{
  "result": true,
  "contents": {
    "wb1_quotient": 139.6239,
    "wb1_exponent": 11
  },
  "worldbossdock": [{
    "season": 202605, "allies_id": 2915, "dock_id": 2,
    "level": 1, "user_id": 338992, "respawn_idx": 2,
    "killed_user_id": 0,
    "quotient": 0.0, "exponent": 0,
    "status": 1,
    "end_date": "2026-01-29 02:22:51"
  }],
  "rank": 59
}

Total damage stored in NumberUnit: 139.6239 * 10^11 = ~13.96 trillion. killed_user_id: 0 means the boss was not killed. rank: 59 is the player's damage ranking.

worldboss/evolution/normal/start — Start Evo Chronos Fight

Request

{
  "authToken": "<jwt>",
  "dock_id": 2, "slot_id": 0,
  "ship_ids": null, "drone_ids": null, "skill_ids": null, "stat_lvs": null,
  "level": 0, "quotient": 0.0, "exponent": 0,
  "boss_type": 0, "step": 0, "status": 0,
  "user_id": 0, "respawn_idx": 0,
  "history_id": 0, "history_ids": null, "remain": 0
}

Response

{
  "result": true,
  "user": {},
  "worldbossslot": [{
    "slot_id": 0,
    "ship_ids":  "10002/0/0",
    "drone_ids": "30012/0/0/0/0/30020/30019/30018/30017/30016",
    "skill_ids": "3001/3009/3010/0/0/0",
    "stat_lvs":  "0/0/0/21/0/0/0/1",
    "status": 2
  }],
  "worldbosslog": [{
    "season": 202605, "allies_id": 2915,
    "dock_user_id": 338992, "respawn_idx": 2,
    "user_id": 338992,
    "quotient": 0.0, "exponent": 0,
    "times": 1, "ticket": 2
  }],
  "max": 12,
  "quo": 0.0,
  "ep": 0,
  "end_date": "2026-01-29 02:22:51"
}

Evo Chronos adds worldbosslog for damage tracking and end_date for the boss timer. times = attack count, ticket = remaining tickets.

worldboss/evolution/normal/end — Evo Chronos Result

Request

Request body not captured (binary-encoded).

Response

{
  "result": true,
  "user": {},
  "item": [{ "proto_id": 2032, "awakening": 0, "level": 1, "count": 177530, "getCount": 600 }],
  "worldbossdock": [{
    "season": 202605, "allies_id": 2915, "dock_id": 2,
    "level": 1, "user_id": 338992, "respawn_idx": 2,
    "killed_user_id": 338992,
    "quotient": 100.0, "exponent": 9,
    "status": 2,
    "end_date": "2026-01-29 02:22:51"
  }],
  "worldbosslog": [{
    "season": 202605, "allies_id": 2915,
    "dock_user_id": 338992, "respawn_idx": 2,
    "user_id": 338992,
    "quotient": 100.0, "exponent": 9,
    "times": 1, "ticket": 2
  }],
  "battle_result": { "item_count": 600, "point_count": 100 }
}

Item 2032 is the Evo Chronos reward currency. battle_result shows the rewards earned. Damage: 100.0 * 10^9 = 100 billion. killed_user_id set to the user means they killed the boss.

worldboss/evolution/map/load — Evo Chronos Map

Request

{
  "authToken": "<jwt>",
  "dock_id": 0, "slot_id": 0,
  "ship_ids": null, "drone_ids": null, "skill_ids": null, "stat_lvs": null,
  "level": 0, "quotient": 0.0, "exponent": 0,
  "boss_type": 0, "step": 0, "status": 0,
  "user_id": 0, "respawn_idx": 0,
  "history_id": 0, "history_ids": null, "remain": 0
}

Response

{
  "result": true,
  "worldboss": {
    "level": 1, "spawn_count": 3, "total_point": 0,
    "allies_rank": 3, "delay_time": "2025-10-16 07:35:20"
  },
  "alliesmembers": [
    { "user_id": 255238, "user_name": "...", "badge_id": 111, "exp": 8900, "attendance": 0, ... },
    ...                                                                                        // 19 members
  ],
  "worldbossdock": [
    { "season": 202603, "allies_id": 2915, "dock_id": 1, "level": 37,
      "user_id": 269113, "respawn_idx": 41, "killed_user_id": 269113,
      "quotient": 9.02, "exponent": 33, "status": 2,
      "end_date": "2026-01-18 18:40:06" },
    ...                                                                                        // 4 docks
  ],
  "alliesmemberpoint": [
    { "user_id": 255238, "respawn_idx": 23, "level": 41, "total_point": 187914 },
    ...                                                                                        // 14 members
  ]
}

Returns alliance members, all 4 boss docks with their current state, and per-member contribution points.

worldboss/evolution/log/load — Battle Log

Request

{
  "authToken": "<jwt>",
  "dock_id": 2, "user_id": 283431, "respawn_idx": 27,
  ...  // same base fields as other worldboss endpoints
}

Response

{
  "result": true,
  "allworldbosslog": [{
    "season": 202603, "allies_id": 2915,
    "dock_user_id": 283431, "respawn_idx": 27,
    "user_id": 283431,
    "quotient": 1.18, "exponent": 55,
    "times": 1, "ticket": 2
  }]
}

Shows individual damage contributions per boss. Damage: 1.18 * 10^55.

worldboss/evolution/history — Season History

Response

{
  "result": true,
  "worldbosshistory": [
    {
      "history_id": 3075828, "season": 202603, "allies_id": 2915,
      "user_id": 255238, "level": 34, "killed_user_id": 255238,
      "rewarded_ids": "255238/262311/269113/278466/260564/276627/283431/284733/284784/270122",
      "status": 2, "end_date": 1768650095, "progress": 100
    },
    ...                                                                   // 181 items
  ]
}

Contains history of all boss kills in the season. rewarded_ids lists user IDs who received rewards (slash-delimited). end_date is a Unix timestamp.

worldboss/evolution/history/rewards — Claim Rewards

Request

{
  "authToken": "<jwt>",
  "history_ids": [3075828, 3076119, 3076294, ...],   // 179 history IDs to claim
  ...  // same base fields
}

Response

{
  "result": true,
  "user": {},
  "item": [{ "proto_id": 2032, "awakening": 0, "level": 1, "count": 1790, "getCount": 1790 }],
  "worldbosshistory": [
    { "history_id": 3081184, "season": 202603, "allies_id": 2915, "user_id": 376643,
      "respawn_idx": 29, "level": 156, "killed_user_id": 270122,
      "rewarded_ids": "278466/270122/...", "status": 2, "end_date": 1768712471, "progress": 100 },
    ...                                                                   // 179 items
  ]
}

Batch claims rewards for multiple history entries. Returns updated history records with claim status.

Alliance

EndpointDescriptionData
allies/loadLoad alliance datacaptured
allies/attendanceCheck in for daily attendancecaptured
allies/donationDonate to alliancecaptured
allies/*Other alliance endpoints (create, join, leave, chat, etc.)--

16 endpoints total for the alliance/guild system.

allies/load — Load Alliance Data

Request

{
  "authToken": "<jwt>",
  "allies_name": null, "announcement": null,
  "allies_id": 0, "user_id": 0, "simbol_id": 0,
  "signup_type": 0, "donation_type": 0, "status": 0
}

Response

{
  "result": true,
  "allies": {
    "allies_id": 2915, "user_id": 270122, "user_name": "gezmodean",
    "simbol_id": 3, "allies_name": "Urquan",
    "level": 24, "exp": 444230,
    "signup_type": 0, "members": 19,
    "announcement": "Be active and donate daily!!! ...",
    "group_id": 7, "rank": 1
  },
  "alliesmember": {
    "allies_id": 2915, "exp": 300, "attendance": 1,
    "donation_dia": 5, "donation_mileage": 5,
    "withdraw_date": "",
    "total_dia_exp": 6000, "total_mileage_exp": 0,
    "user_name": "JustTesting", "badge_id": 6
  },
  "alliesmembers": [
    { "user_id": 255238, "user_name": "...", "badge_id": 111, "exp": 8900,
      "attendance": 0, "init_date": "2026-01-19 00:00:00",
      "donation_dia": 0, "donation_mileage": 0 },
    ...                                                                  // 19 members
  ]
}
allies/attendance — Daily Check-in

Response

{
  "result": true,
  "allies_response_code": 1,
  "user": {},
  "item": [{ "proto_id": 2019, "awakening": 0, "level": 1, "count": 6800, "getCount": 100 }],
  "alliesmember": { "allies_id": 2915, "exp": 300, "attendance": 0, ... },
  "alliesmembers": [...]                                                 // 19 members
}
allies/donation — Donate Diamonds

Request (key field)

{ ..., "donation_type": 1, ... }   // 1 = diamond donation

Response

{
  "result": true,
  "allies_response_code": 1,
  "user": { "bonus_dia": 90477, "paid_dia": 0 },
  "item": [{ "proto_id": 2019, "awakening": 0, "level": 1, "count": 7000, "getCount": 200 }],
  "allies": { "allies_id": 2915, "allies_name": "Urquan", "level": 24, "exp": 444240, "members": 19, ... },
  "alliesmember": { "allies_id": 2915, "exp": 310, "donation_dia": 4, "donation_mileage": 5, ... },
  "alliesmembers": [...],                                                // 19 members
  "eventitem": [{ "proto_id": 4001, "progress": 2000 }, ...]            // 26 event items updated
}

Deducts diamonds from bonus_dia. donation_type: 1 = diamond, other values likely mileage. Returns updated alliance exp and member donation counts.

Battle Contents

EndpointDescriptionData
contents/endReport content battle end--
contents/sweepSweep (auto-clear) a content stage--
contents/all_sweepSweep all available content stages--
contents/addticketAdd content entry ticket--
contents/chaosmine_startStart Chaos Mine run--
contents/chaosmine_endReport Chaos Mine result--
contents/sweep_chaosmineSweep a Chaos Mine stage--
contents/all_sweep_chaosmineSweep all Chaos Mine stages--
contents/change_enchantcardChange enchant card for content--

Colony & Research

EndpointDescriptionData
colony/*Colony management endpoints--
research/*Research tree progression--
build/*Building construction and upgrades--

21 endpoints across colony, research, and build subsystems.

Star Wars

EndpointDescriptionData
starwars/*Star Wars mode (matchmaking, battles, rewards, rankings)--

17 endpoints for the Star Wars competitive mode.

Events

EndpointDescriptionData
eventitem/*Event item collection and exchange--
event/*Event participation and rewards--
attendance/*Daily attendance check-in--

27 endpoints across event items, events, and attendance.

Passes

EndpointDescriptionData
pass/*Premium pass progression and rewards--
normalpass/*Free pass tier claims--
multipass/*Multi-pass bundle management--

6 endpoints across pass variants.

Store & Ranking

EndpointDescriptionData
store/*In-game store purchases and refreshes--
system/ranking*Leaderboard queries--
system/stagerankrewardStage rank milestone rewards--
summon/*Gacha summoning endpoints--

11 endpoints for store, ranking, and summoning.

Other Systems

SubsystemPrefixData
Explorationexploration/*--
Dispatchdispatch/*--
Miningmining/*--
Mailmail/*--
Collectioncollection/*--
Inviteinvite/*--
Masterymastery/*--
Medalmedal/*--
Pluginplugin/*--

22 endpoints across miscellaneous subsystems.

Common Response Patterns

Standard Object Schemas

The same object structures appear across many endpoints. These are the verified schemas from captured traffic:

ObjectFieldsAppears In
item proto_id, awakening, level, count, getCount user/load, stat/upgrade, offline/collect, allies/*, worldboss/*
ship proto_id, upgrade, level, exp, admiral_id user/load
skill proto_id, awakening, level, count user/load
worldbossslot slot_id, ship_ids, drone_ids, skill_ids, stat_lvs, status worldboss/*/start
worldbossdock season, allies_id, dock_id, level, user_id, respawn_idx, killed_user_id, quotient, exponent, status, end_date worldboss/*/end, evolution/map/load
worldbosslog season, allies_id, dock_user_id, respawn_idx, user_id, quotient, exponent, times, ticket worldboss/evolution/*
alliesmember allies_id, exp, attendance, donation_dia, donation_mileage, withdraw_date, total_dia_exp, total_mileage_exp, user_name, badge_id allies/*, user/load
stageloot sector_id, world_id, stage1stage10, levels stat/upgrade, offline/collect, user/load

Slash-Delimited Lists

Many fields encode lists as slash-delimited strings rather than JSON arrays. This pattern appears in fleet configurations, offline rewards, and debuff assignments:

"ship_ids":  "10002/0/0"             // 3 ship slots (ID or 0 for empty)
"drone_ids": "30012/0/0/0/0/30020/..." // 10 drone slots
"skill_ids": "3001/3009/3010/0/0/0"   // 6 skill slots
"stat_lvs":  "0/0/0/21/0/0/0/1"       // 8 stat level values
"Debuff":    "651/655/657/654/656"     // 5 PropertyType IDs
"offline_item_ids": "1001/1010/2013/..." // variable-length item list

NumberUnit Encoding

Large numeric values use the quotient * 10^exponent pattern throughout the API:

"credit_quotient": 86.03851,  "credit_exponent": 4     // = 860,385
"wb1_quotient": 139.6239,    "wb1_exponent": 11        // = 13,962,390,000,000
"quotient": 1.18,            "exponent": 55            // = 1.18 * 10^55

Error Handling

HTTP Status Codes

CodeMeaningNotes
200OKAll captured responses returned 200
400Bad RequestMalformed Base64 or invalid JSON
401UnauthorizedMissing or expired JWT
403ForbiddenAccount banned or restricted
404Not FoundInvalid endpoint path
500Internal Server ErrorServer-side exception
502Bad GatewayAWS Global Accelerator routing failure
503Service UnavailableServer maintenance or overload

Game-Level Errors

One captured response showed a game-level error in the evolution start endpoint:

{ "result": false, "error": "..." }

When result is false, the error field contains the error description. All other response fields are absent on error.

CodeMeaningNotes
1000002Version MismatchClient version does not match server requirement
900004Session ConflictAnother device logged in with same account

Client Error Handlers

HandlerTrigger
OnOtherDeviceLoginDetectedErrorAnother device logged into the same account
OnMaintenanceErrorServer is in maintenance mode

Implementation Notes

Version Format Differs
The client_version field uses different formats depending on the endpoint. server_status expects the numeric string "1179" (no dots), while user/load expects the dotted string "1.1.79". Using the wrong format will trigger error code 1000002 (version mismatch).
Sync Index
The syncidx field increments with each state-changing request and must be tracked client-side. Sending a stale or out-of-order sync index may cause the server to reject the request or trigger a full resync. The current syncidx is returned in the account object of responses.
Batch Variants
Many upgrade endpoints have batch variants. For example, skill/levelup upgrades a single skill, while skill/alllevelup batch-upgrades all skills at once. The same pattern applies to items, servants, and grade-up operations.
Typo Alert
The endpoint /user/offline/reneal/load contains a typo — "reneal" should be "renewal". This matches the same pattern of typos found in the IL2CPP codebase (e.g., GetMemoryCardSettingTalbes()).
Capture Coverage
18 of ~190 endpoints have been captured via mitmproxy. To expand coverage, run mitmproxy while performing in-game actions (arena battles, store purchases, gacha summons, etc.) and save the flow files to data/network_captures/. Run python3 extraction/parse_flows.py to decode new captures.