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.
Server Infrastructure
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
"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 stepsThe 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
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
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
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>"
}
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
| Endpoint | Description | Data |
|---|---|---|
lib/server_status | Check servers, get channel list | captured |
user/checkauthtoken | Verify device identity | captured |
user/checkaccount | Check account existence | -- |
user/load | Load full account data (77 response fields) | captured |
user/init | Initialize daily session | captured |
user/signup | Sign up new account | -- |
user/drop | Delete account | -- |
system/authtoken/alive | Keep-alive auth token | -- |
system/error_log | Send error log | -- |
system/coupon | Use coupon code | -- |
tutorial/completed | Mark 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
| Endpoint | Description | Data |
|---|---|---|
user/change/nickname | Change display name | -- |
user/change/social | Change social link | -- |
user/replace/social | Replace social account binding | -- |
user/offline/load | Load offline rewards summary | -- |
user/offline/collect | Collect offline rewards | -- |
user/offline/bonus/load | Load offline bonus info | -- |
user/offline/bonus/collect | Collect offline bonus | -- |
user/offline/reneal/load | Load offline renewal info | captured |
user/offline/reneal/collect | Collect offline renewal rewards | captured |
user/rankup/reward | Claim rank-up reward | -- |
user/synopsys | Get account synopsis | -- |
user/endsync | End 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
| Endpoint | Description | Data |
|---|---|---|
stage/clear | Report stage cleared | -- |
stage/repeat | Repeat a stage | -- |
stage/defeat | Report stage defeat | -- |
stage/change | Change active stage | -- |
stat/upgrade | Upgrade 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
| Endpoint | Description | Data |
|---|---|---|
ship/levelup | Level up a ship | -- |
ship/gradeup | Upgrade ship rarity grade | -- |
ship/admiral/equip | Equip admiral to ship | -- |
ship/equip | Equip ship to fleet slot | -- |
Items
| Endpoint | Description | Data |
|---|---|---|
item/awakening | Awaken an item | -- |
item/levelup | Level up an item | -- |
item/gradeup | Upgrade item rarity grade | -- |
item/alllevelup | Batch level up all items | -- |
item/allgradeup | Batch grade up all items | -- |
item/equip | Equip item to slot | -- |
item/use/choice | Use a choice item (select reward) | -- |
item/use/used | Mark item as used | -- |
Skills
| Endpoint | Description | Data |
|---|---|---|
skill/awakening | Awaken a skill | -- |
skill/levelup | Level up a skill | -- |
skill/gradeup | Upgrade skill rarity grade | -- |
skill/alllevelup | Batch level up all skills | -- |
skill/allgradeup | Batch grade up all skills | -- |
skill/equip | Equip skill to slot | -- |
Servants / Drones
| Endpoint | Description | Data |
|---|---|---|
servant/awakening | Awaken a servant/drone | -- |
servant/levelup | Level up a servant/drone | -- |
servant/gradeup | Upgrade servant rarity grade | -- |
servant/alllevelup | Batch level up all servants | -- |
servant/allgradeup | Batch grade up all servants | -- |
servant/equip | Equip servant to slot | -- |
Admirals
| Endpoint | Description | Data |
|---|---|---|
admiral/levelup | Level up an admiral | -- |
admiral/levelup/all | Batch level up all admirals | -- |
admiral/decompose | Decompose (sacrifice) admiral | -- |
admiral/store/refresh | Refresh admiral store inventory | -- |
admiral/store/buy | Buy admiral from store | -- |
Artifacts
| Endpoint | Description | Data |
|---|---|---|
artifact/levelup | Level up an artifact | -- |
artifact/upgrade | Upgrade artifact tier | -- |
artifact/craft | Craft new artifact | -- |
artifact/buy | Buy artifact from shop | -- |
Memory Cards
| Endpoint | Description | Data |
|---|---|---|
memorycard/summon | Summon (gacha) memory cards | -- |
memorycard/equip | Equip memory card to grid | -- |
memorycard/levelup | Level up a memory card | -- |
memorycard/gradeup | Upgrade memory card rarity | -- |
Gemstones
| Endpoint | Description | Data |
|---|---|---|
gemstone/equip | Socket gemstone into slot | -- |
gemstone/levelup | Level up a gemstone | -- |
gemstone/gradeup | Upgrade gemstone rarity | -- |
gemstone/disassemble | Disassemble gemstone for materials | -- |
gemstone/unlockslot | Unlock additional gemstone slot | -- |
Hardware, Software & Processor
| Endpoint | Description | Data |
|---|---|---|
hardware/levelup | Level up hardware component | -- |
hardware/disk/collect | Collect hardware disk rewards | -- |
software/disk/charging | Charge software disk | -- |
software/renew/install | Install software renewal | -- |
software/change/preset | Change software preset | -- |
processor/chips/equip | Equip processor chip | -- |
processor/chips/unequip | Unequip processor chip | -- |
processor/chips/merge | Merge processor chips | -- |
processor/chips/status | Check chip status | -- |
processor/preset | Save/load processor preset | -- |
Arena PvP
| Endpoint | Description | Data |
|---|---|---|
arena/operation_info | Get arena operation info | -- |
arena/ready | Mark ready for arena match | -- |
arena/setting | Update arena fleet settings | -- |
arena/matching | Find arena opponent | -- |
arena/battle/start | Start arena battle | -- |
arena/battle/end | Report arena battle result | -- |
arena/battle/log | Get arena battle log | -- |
arena/userinfo | Get arena user profile | -- |
World Boss
| Endpoint | Description | Data |
|---|---|---|
worldboss/normal/start | Start normal world boss fight | captured |
worldboss/normal/end | Report normal world boss result | captured |
worldboss/update/slot | Update world boss fleet slot | -- |
worldboss/reward/totaldamage | Claim total damage milestone reward | -- |
worldboss/evolution/normal/start | Start Evo Chronos boss fight | captured |
worldboss/evolution/normal/end | Report Evo Chronos result | captured |
worldboss/evolution/map/load | Load Evo Chronos map data | captured |
worldboss/evolution/log/load | Load Evo Chronos battle log | captured |
worldboss/evolution/history | Get Evo Chronos history | captured |
worldboss/evolution/history/reward | Claim single history reward | -- |
worldboss/evolution/history/rewards | Claim all history rewards | captured |
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
| Endpoint | Description | Data |
|---|---|---|
allies/load | Load alliance data | captured |
allies/attendance | Check in for daily attendance | captured |
allies/donation | Donate to alliance | captured |
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
| Endpoint | Description | Data |
|---|---|---|
contents/end | Report content battle end | -- |
contents/sweep | Sweep (auto-clear) a content stage | -- |
contents/all_sweep | Sweep all available content stages | -- |
contents/addticket | Add content entry ticket | -- |
contents/chaosmine_start | Start Chaos Mine run | -- |
contents/chaosmine_end | Report Chaos Mine result | -- |
contents/sweep_chaosmine | Sweep a Chaos Mine stage | -- |
contents/all_sweep_chaosmine | Sweep all Chaos Mine stages | -- |
contents/change_enchantcard | Change enchant card for content | -- |
Colony & Research
| Endpoint | Description | Data |
|---|---|---|
colony/* | Colony management endpoints | -- |
research/* | Research tree progression | -- |
build/* | Building construction and upgrades | -- |
21 endpoints across colony, research, and build subsystems.
Star Wars
| Endpoint | Description | Data |
|---|---|---|
starwars/* | Star Wars mode (matchmaking, battles, rewards, rankings) | -- |
17 endpoints for the Star Wars competitive mode.
Events
| Endpoint | Description | Data |
|---|---|---|
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
| Endpoint | Description | Data |
|---|---|---|
pass/* | Premium pass progression and rewards | -- |
normalpass/* | Free pass tier claims | -- |
multipass/* | Multi-pass bundle management | -- |
6 endpoints across pass variants.
Store & Ranking
| Endpoint | Description | Data |
|---|---|---|
store/* | In-game store purchases and refreshes | -- |
system/ranking* | Leaderboard queries | -- |
system/stagerankreward | Stage rank milestone rewards | -- |
summon/* | Gacha summoning endpoints | -- |
11 endpoints for store, ranking, and summoning.
Other Systems
| Subsystem | Prefix | Data |
|---|---|---|
| Exploration | exploration/* | -- |
| Dispatch | dispatch/* | -- |
| Mining | mining/* | -- |
mail/* | -- | |
| Collection | collection/* | -- |
| Invite | invite/* | -- |
| Mastery | mastery/* | -- |
| Medal | medal/* | -- |
| Plugin | plugin/* | -- |
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:
| Object | Fields | Appears 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, stage1–stage10, 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
| Code | Meaning | Notes |
|---|---|---|
200 | OK | All captured responses returned 200 |
400 | Bad Request | Malformed Base64 or invalid JSON |
401 | Unauthorized | Missing or expired JWT |
403 | Forbidden | Account banned or restricted |
404 | Not Found | Invalid endpoint path |
500 | Internal Server Error | Server-side exception |
502 | Bad Gateway | AWS Global Accelerator routing failure |
503 | Service Unavailable | Server 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.
| Code | Meaning | Notes |
|---|---|---|
1000002 | Version Mismatch | Client version does not match server requirement |
900004 | Session Conflict | Another device logged in with same account |
Client Error Handlers
| Handler | Trigger |
|---|---|
OnOtherDeviceLoginDetectedError | Another device logged into the same account |
OnMaintenanceError | Server is in maintenance mode |
Implementation Notes
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).
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.
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.
/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()).
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.