Category: webapp (catalog read)
Entity: PlanetActivity (structs.planet_activity)
Base URL: ${webappBaseUrl} (default: http://localhost:8080, public guild webapp: http://crew.oh.energy)
Last Updated: May 13, 2026
Per-planet activity log — raids, attacks, builds, defender changes, struct health updates, etc. Categories include raid_status, block_raid_start, shield_change, struct_attack, struct_health, fleet_arrive, fleet_advance, fleet_depart, and others; see .cursor/skills/structs-streaming/SKILL.md for the GRASS-side category names. block_raid_start records the block height at which a raid began, and shield_change records planet shield adjustments. Use this REST surface for historical browsing; use GRASS for real-time reaction.
| Method | Path | Description | Auth Required |
|---|---|---|---|
| GET | /api/planet-activity/all/page/{page} |
List every planet activity row | Yes |
| GET | /api/planet-activity/planet/{planet_id}/page/{page} |
List activity for a planet | Yes |
| GET | /api/planet-activity/category/{category}/page/{page} |
List activity by category | Yes |
| GET | /api/planet-activity/stats |
30-day counts by category (?category=, ?bucket=1h\|day) |
Yes |
Bucketed stats for charts: analytics.md.
/api/planet-activity/all/page/{page}webapp-planet-activity-all| Name | Type | Required | Format | Description |
|---|---|---|---|---|
page |
integer | Yes | \d+ |
Page number |
/api/planet-activity/planet/{planet_id}/page/{page}webapp-planet-activity-by-planet| Name | Type | Required | Format | Description |
|---|---|---|---|---|
planet_id |
string | Yes | planet-id | Planet identifier |
page |
integer | Yes | \d+ |
Page number |
/api/planet-activity/category/{category}/page/{page}webapp-planet-activity-by-category| Name | Type | Required | Format | Description |
|---|---|---|---|---|
category |
string | Yes | – | Activity category (e.g. raid_status, block_raid_start, shield_change, struct_attack, struct_health, fleet_arrive, fleet_advance, fleet_depart) |
page |
integer | Yes | \d+ |
Page number |
Responses use the shared envelope ({ "success": true, "errors": {}, "data": [ ...rows ] }); catalog rows are returned directly in data as a flat array with a fixed page size of 100 — if data.length === 100, request the next page. See protocols/webapp-api-protocol.md.