Hydora Chunky API

Public, read-only JSON API for Chunky player data on hydora.net. Build stats sites, bots and tools with it.
Deutsch: Öffentliche, nur lesende API für Chunky-Spielerdaten. Spieler bestimmen in game mit /api settings, was öffentlich ist.

Getting a key

  1. Join hydora.net and run /api new. Click the key in chat to copy it.
  2. Send it in the API-Key header with every request.

A new key replaces the old one. /api revoke deletes it. Keep your key secret: do not put it in client-side code that other people can read; call the API from your server instead.

Base URL and limits

https://api.hydora.net/v1/

Endpoints

EndpointKeyReturns
GET /v1/sectionsnoAll data sections with their default.
GET /v1/keyyesOwner and limit of your key.
GET /v1/player/{name|uuid}yesEverything the player made public, for every profile.
GET /v1/player/{name|uuid}/{section}yesOne section only (smaller response).

The player may be a name (case-insensitive) or a UUID with or without dashes.

Sections and privacy

Players switch each section on or off in game with /api settings. A switched off section is returned as the string "disabled" instead of an object. privacy in the response lists the current switches.

SectionDefaultContent
profilepublic (always)Name, UUID, profile names, selected profile, co-op members and roles.
statuspublicFirst seen, last seen, playtime in minutes, online now.
skillspublicXP and level per skill (mining, farming, foraging, combat, fishing).
collectionspublicCollected amount per collection item (shared by the co-op).
islandpublicUnlocked chunks, open to visitors.
questspublicCompleted and active quests.
auctionspublicThe player's active auctions on this profile.
coinsprivatePurse on each profile.
inventoryprivateInventory, armor and off hand, as saved when the player last left Chunky.
enderchestprivateEnder chest content.
storageprivateAll storage pages.

Example

curl -H "API-Key: 1b2c3d4e-...-..." https://api.hydora.net/v1/player/Peach
{
  "success": true,
  "player": { "uuid": "4ba6e9c0-e112-4329-ac50-4413c15d7513", "name": "Peach" },
  "privacy": { "profile": true, "status": true, "skills": true, "collections": true, "island": true,
               "quests": true, "auctions": true, "coins": false, "inventory": false, "enderchest": false, "storage": false },
  "cachedAt": 1794000000000,
  "status": { "firstSeen": 1790000000000, "lastSeen": 1794000000000, "playtimeMinutes": 5310, "online": true },
  "profiles": [
    {
      "id": "6f1c0e2b9a4d7c31",
      "name": "Apple",
      "selected": true,
      "owner": true,
      "createdAt": 1790000000000,
      "members": [
        { "uuid": "4ba6e9c0-e112-4329-ac50-4413c15d7513", "role": "OWNER", "since": 1790000000000, "name": "Peach" },
        { "uuid": "069a79f4-44e9-4726-a5be-fca90e38aaf5", "role": "TRUSTED_BUILDER", "since": 1791000000000, "name": "Plum" }
      ],
      "skills": {
        "mining": { "xp": 12500, "level": 8, "xpIntoLevel": 2575, "xpForNextLevel": 1500 },
        "farming": { "xp": 50, "level": 1, "xpIntoLevel": 0, "xpForNextLevel": 125 },
        "foraging": { "xp": 0, "level": 0, "xpIntoLevel": 0, "xpForNextLevel": 50 },
        "combat": { "xp": 0, "level": 0, "xpIntoLevel": 0, "xpForNextLevel": 50 },
        "fishing": { "xp": 0, "level": 0, "xpIntoLevel": 0, "xpForNextLevel": 50 },
        "levelSum": 9, "maxLevel": 25
      },
      "collections": { "cobblestone": 6400, "wheat": 1200 },
      "island": { "chunks": 5, "visitorsOpen": true },
      "quests": { "completed": 3, "active": 1 },
      "auctions": [
        { "item": "Diamond Pickaxe", "material": "diamond_pickaxe", "amount": 1, "price": 2500, "type": "BIN",
          "highestBid": 0, "bids": 0, "createdAt": 1794000000000, "endsAt": 1794086400000 }
      ],
      "coins": "disabled",
      "inventory": "disabled",
      "enderchest": "disabled",
      "storage": "disabled"
    }
  ]
}

Items

When inventory, enderchest or storage are public, items look like this:

{ "slot": 0, "type": "diamond_sword", "amount": 1, "name": "Storm Blade",
  "lore": ["Weapon", "", "Damage: +7"], "enchants": { "sharpness": 3 }, "damage": 12, "maxDamage": 700,
  "model": "minecraft:iron_sword", "glint": true, "custom": "storm_blade" }

inventory has items (slots 0-35), armor (helmet, chestplate, leggings, boots), offHand, selectedSlot, xpLevel and savedAt. storage has pages (unlocked pages) and items by page number.

Single section

GET /v1/player/Peach/skills
{ "success": true, "player": { ... }, "section": "skills", "enabled": true,
  "profiles": [ { "id": "6f1c0e2b9a4d7c31", "name": "Apple", "selected": true, "skills": { ... } } ] }

Errors

{ "success": false, "cause": "invalid_key" }
Statuscause
401missing_key
403invalid_key (unknown, deleted, or the owner is banned)
404unknown_player, unknown_section, not_found
405method_not_allowed
429rate_limited, too_many_invalid_keys

Notes