al.create / al.dismiss / al.leave | Alliance lifecycle |
al.apply / al.acceptapply / al.refuseapply | Join requests (open alliances auto-join on apply) |
al.invite / al.acceptinvite | Direct invites (via mail) |
al.kick / al.setrank | Membership & rank management (kicks are rate-limited) |
alliance.declare.war.create | Declare war on a target city |
al.call.help / al.show.help | Mutual-aid: rally-assist build/queue speedups |
al.help.all | Bulk-completes every pending member help request in one call, confirmed live, only field on the wire is cmdBaseTime (a Long, current epoch-ms; everything else the UI passes locally never reaches the server). Safe to call with nothing pending, a no-op success, not an error. See Live validation against production. |
alliance.reward.list / alliance.reward.allreceive | Alliance Gifts panel: list, and “Claim All” for one type (1 = Premium, 2 = Regular, both need claiming separately, confirmed live for both), needs only type, no per-gift uids. See Live validation against production. |
science.data.refresh | Returns the account’s entire alliance tech tree in one no-parameter call, every scienceId with donation progress and a state field. Confirmed live: exactly one entry had state=1 (every other had 0), matching the real UI’s thumbs-up-badged “Recommended” tech via its progress numbers. See Live validation against production. |
al.science.donate / al.science.donate.gold | Donate to one alliance tech’s research, .donate costs a resource (confirmed live, rate-limited to maxNum=30/day per al.science.refreshNum, plus a separate per-donation cooldown confirmed live via a real errorCode=120471 response, its exact duration is unconfirmed; refreshTimeBlock=1200000/20min was the original guess, but two -collect runs ~3 minutes apart both donated successfully, so it hasn’t been independently re-measured), .donate.gold costs gems with no cooldown (useGoldNum/maxGoldNum both 999999999). Neither has a batch/count field; “hold to donate repeatedly” is a client-side auto-repeat of single-donation calls, not a server-side multiplier. |
al.science.recommend | Alliance-officer action: marks/unmarks one scienceId as the alliance’s currently-Recommended tech (the “Cancel Recommend” button). Read the current value via science.data.refresh’s state field instead; there’s no dedicated “get recommended” request. |