Category: webapp (catalog read)
Entity: PlanetAttribute (structs.planet_attribute)
Base URL: ${webappBaseUrl} (default: http://localhost:8080, public guild webapp: http://crew.oh.energy)
Last Updated: May 13, 2026
Per-planet typed attributes (shield health, ore reserves, slot counts, defensive metadata, mine/refine clocks). Cache rows are deleted when the chain attribute reaches zero — missing rows mean “no value”, not “value of zero”.
Mine and refine blockStart live on the planet (planetBlockStartOreMine / planetBlockStartOreRefine, attribute prefixes 12- / 13-). Do not read them from struct attributes. See hashing.md.
| Method | Path | Description | Auth Required |
|---|---|---|---|
| GET | /api/planet-attribute/all/page/{page} |
List every planet attribute row | Yes |
| GET | /api/planet-attribute/object/{object_id}/page/{page} |
List attributes on a planet | Yes |
| GET | /api/planet-attribute/type/{attribute_type}/page/{page} |
List one attribute type across every planet | Yes |
/api/planet-attribute/all/page/{page}webapp-planet-attribute-all| Name | Type | Required | Format | Description |
|---|---|---|---|---|
page |
integer | Yes | \d+ |
Page number |
/api/planet-attribute/object/{object_id}/page/{page}webapp-planet-attribute-by-object| Name | Type | Required | Format | Description |
|---|---|---|---|---|
object_id |
string | Yes | planet-id | Planet identifier (e.g. 2-1) |
page |
integer | Yes | \d+ |
Page number |
/api/planet-attribute/type/{attribute_type}/page/{page}webapp-planet-attribute-by-type| Name | Type | Required | Format | Description |
|---|---|---|---|---|
attribute_type |
string | Yes | – | Attribute type name (e.g. shield_health, ore, slots) |
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.