/api/ark/{projectId}
/api/ark/{projectId}
Returns the full state of one Ark project: the project itself, every attached research lab, and whether the project can be started.
Method
GET
Response Structure
{
"project": {
"id": 0,
"status": "announced",
"initiatorUserId": 0,
"announcedAt": "",
"completesAt": null
},
"labs": [
{
"planetBuildingId": 0,
"userId": 0,
"username": "",
"planetName": "",
"level": 15,
"powerLevel": 100,
"damagePercent": 0
}
],
"canStart": false,
"qualifyingLabCount": 0,
"requiredLevel15Labs": 3,
"totalContribution": 0
}
Notes
- The Ark is an end-game alliance project: it needs alliance membership, three prerequisite
researches (
megastructure_engineering,dark_matter_weapons,alcubierre_drive) and three level-15 research labs contributed by alliance members. - A lab only counts as qualifying when
level >= 15,powerLevel >= 100anddamagePercent == 0. labs[].planetBuildingIdis the building row id from the owner’s planet, which is also what ark_labs_attach.md and ark_labs_detach.md take.canStartgates ark_start.md; it turns true oncequalifyingLabCountreachesrequiredLevel15Labs.- The client polls this every 30s alongside
GET /api/ark. - Response shape is inferred from the client’s render code - the sweep account has no Ark project, so no live sample exists.
Live Verification
- Not probed (the sweep account has no Ark project).
- Path, verb and request body were extracted from the official game client bundle
(
/assets/*.js), so they match what the game itself sends. The response shape is inferred from how the client consumes the reply and is marked as such.