One account’s current state
The account’s current state, section by section. A section of a category the key can’t read on this account is omitted; a readable section the player’s plugin never sent is { "shared": false, "updated_at": null } ("not shared"), never an empty value. Every sent section carries updated_at.
Authorization
bearerAuth An API key from the hub’s API keys page.
In: header
Path Parameters
The account's public id (opaque, base62), as id in /accounts.
^[0-9A-Za-z]{1,64}$Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/accounts/4fT9kQ2mXa7B"{ "data": { "id": "string", "name": "string", "account_hash": "string", "type": 0, "type_label": "string", "owner": { "name": "string", "discord_id": "string" }, "first_seen": "2019-08-24T14:15:22Z", "categories": [ "stats" ], "presence": { "shared": true, "updated_at": "2019-08-24T14:15:22Z", "online": true, "world": 0, "special_world": true, "game_state": "string", "last_seen": "2019-08-24T14:15:22Z" }, "vitals": { "shared": true, "updated_at": "2019-08-24T14:15:22Z", "hp": { "current": 0, "max": 0 }, "prayer": { "current": 0, "max": 0 }, "spellbook": "string" }, "skills": { "shared": true, "updated_at": "2019-08-24T14:15:22Z", "total_level": 0, "overall_xp": 0, "skills": [ { "skill": "string", "level": 0, "real_level": 0, "xp": 0 } ] }, "location": { "shared": true, "updated_at": "2019-08-24T14:15:22Z", "x": 0, "y": 0, "plane": 0, "is_on_boat": true, "stale": true }, "equipment": { "shared": true, "updated_at": "2019-08-24T14:15:22Z", "items": [ { "id": 0, "name": "string", "quantity": 0, "ge_price": 0, "ha_price": 0, "equipment_slot": "string", "inventory_slot": 0 } ], "value": 0 }, "inventory": { "shared": true, "updated_at": "2019-08-24T14:15:22Z", "items": [ { "id": 0, "name": "string", "quantity": 0, "ge_price": 0, "ha_price": 0, "equipment_slot": "string", "inventory_slot": 0 } ], "value": 0 } }, "meta": { "generated_at": "2019-08-24T14:15:22Z" }}List visible accounts GET
Every account the key may see, sorted by name, each with its `owner` (the active owner as the guild page shows them, or null) and, for service keys, its `account_hash`. `online`, `world` and `last_seen` are null for accounts whose `activity` the key can’t read. `meta.count` is the number returned.
Current state of every visible account GET
Built for polling every 2–10 s (the live map, Home Assistant). Limited to 1 request per 1 s per key, on top of the general limit. Each account carries `id`, `name`, `type`, `type_label`, `owner` and `categories` (and `account_hash` for service keys); every other field belongs to one category and is **omitted** when the key can’t read that category on the account, and **null** when it can but the plugin never sent it. Send the last `ETag` as `If-None-Match`: while nothing you would see has changed, the answer is `304 Not Modified` without a body (it still counts towards the rate limits). With `since` (the previous `meta.last_modified`), only accounts that changed after it are returned, re-sending those that changed up to 30 s before it; accounts whose `activity` the key can’t read are always returned, and an account that leaves the key’s scope simply stops appearing, so fetch without `since` now and then. A location older than 2 minutes has `stale: true`.