{
  "status": 200,
  "name": "BomboAPI",
  "generatedAt": "2026-10-14T13:28:50.723Z",
  "base": {
    "api": "https://api.bombo.dpdns.org",
    "web": "https://bombo.dpdns.org"
  },
  "count": 50,
  "docs": "https://api.bombo.dpdns.org/openapi.json",
  "categories": [
    {
      "key": "player",
      "label": "Player data",
      "endpoints": [
        {
          "category": "player",
          "method": "GET",
          "path": "/data/:user",
          "host": "both",
          "auth": "none",
          "description": "Raw Hypixel SkyBlock profile export ({ign, profile, raw_profile, all_profiles})."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/player/:user",
          "host": "api",
          "auth": "none",
          "description": "Raw Hypixel player object."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/nw/:user",
          "host": "both",
          "auth": "none",
          "description": "Solo networth breakdown (skyhelper model)."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/nwc/:user",
          "host": "both",
          "auth": "none",
          "description": "Co-op networth for every member."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/museum/:user",
          "host": "both",
          "auth": "none",
          "description": "Museum progress and donated items."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/inv/:user",
          "host": "both",
          "auth": "none",
          "description": "Decoded inventory and storage containers."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/shards/:user",
          "host": "api",
          "auth": "none",
          "description": "Attribute shard totals."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/name/:user",
          "host": "both",
          "auth": "none",
          "description": "Minecraft name history."
        },
        {
          "category": "player",
          "method": "GET",
          "path": "/playtime/:user",
          "host": "both",
          "auth": "none",
          "description": "Tracked playtime for a player."
        }
      ]
    },
    {
      "key": "viewer",
      "label": "Player viewer",
      "endpoints": [
        {
          "category": "viewer",
          "method": "GET",
          "path": "/pv",
          "host": "web",
          "auth": "none",
          "description": "Viewer landing page (search + offline JSON dropzone)."
        },
        {
          "category": "viewer",
          "method": "GET",
          "path": "/pv/:user[/:profile]",
          "host": "web",
          "auth": "none",
          "description": "Custom player viewer page (skills, dungeons, slayers, gear, networth)."
        },
        {
          "category": "viewer",
          "method": "GET",
          "path": "/api/v1/pv/:user[/:profile]",
          "host": "both",
          "auth": "none",
          "description": "Structured profile model (model bombo-pv-v1). ?sections=core,gear,inventory,networth, ?refresh=1, ?download=1."
        },
        {
          "category": "viewer",
          "method": "GET",
          "path": "/oldpv/:user[/:profile]",
          "host": "web",
          "auth": "none",
          "description": "Legacy server-rendered viewer (pre-rebuild)."
        },
        {
          "category": "viewer",
          "method": "POST",
          "path": "/oldpv",
          "host": "web",
          "auth": "none",
          "description": "Legacy snapshot render from an uploaded profile JSON."
        }
      ]
    },
    {
      "key": "progress",
      "label": "Progression & planners",
      "endpoints": [
        {
          "category": "progress",
          "method": "GET",
          "path": "/api/v1/dungeons/class-average",
          "host": "both",
          "auth": "none",
          "description": "Runs-until-Class-Average planner (model adjectils-dungeon-v1)."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/api/v1/dungeons/:player[/:profile]",
          "host": "both",
          "auth": "none",
          "description": "Per-player catacombs summary: levels, class average, floor PBs, secrets, RTCA50 plan (model dungeons-summary-v1)."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/command/dungeons/:user",
          "host": "both",
          "auth": "none",
          "description": "Command surface: full dungeons/catacombs summary (aliases cata, dungeon, catacombs)."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/command/rtca/:user",
          "host": "both",
          "auth": "none",
          "description": "Command surface: runs until Class Average 50 (aliases runs, runsleft)."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/dungeons",
          "host": "web",
          "auth": "none",
          "description": "HTML class-average calculator."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/bestiary",
          "host": "both",
          "auth": "none",
          "description": "Bestiary mob criteria, islands and tiers."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/accessories/:user[/:profile]",
          "host": "web",
          "auth": "none",
          "description": "Accessory analysis page: coins-per-Magical-Power buy order, wiki-verified upgrade lines with recipe on click and item lore on hover, missing accessories, maximum-Magical-Power ceiling with tuning points, recombobulator and enrichment gaps, bag slot breakdown."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/accessories/user",
          "host": "both",
          "auth": "optional",
          "description": "Accessory analysis for the caller's own account (Authorization: Bearer <mod token>); falls back to ?user=<username>."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/api/accessories/:user[/:profile]",
          "host": "api",
          "auth": "none",
          "description": "Accessory analysis as JSON on the API host (same payload the page renders); ?format=json works on the web host too."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/accessories/map",
          "host": "both",
          "auth": "none",
          "description": "The accessory upgrade map itself, for auditing it: every line (Talisman of Coins -> Ring of Coins -> Artifact of Coins -> Relic of Coins), how each link was established, plus the Rift-exclusive and unobtainable sets. ?user=<ign> marks which rungs that account holds; ?format=json returns the map as data."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/calendar",
          "host": "both",
          "auth": "none",
          "description": "SkyBlock calendar events."
        },
        {
          "category": "progress",
          "method": "GET",
          "path": "/election",
          "host": "both",
          "auth": "none",
          "description": "Active mayor / minister election."
        }
      ]
    },
    {
      "key": "economy",
      "label": "Economy & market",
      "endpoints": [
        {
          "category": "economy",
          "method": "GET",
          "path": "/prices",
          "host": "both",
          "auth": "none",
          "description": "Auction-house item prices."
        },
        {
          "category": "economy",
          "method": "GET",
          "path": "/prices2",
          "host": "both",
          "auth": "none",
          "description": "Secondary price feed."
        },
        {
          "category": "economy",
          "method": "GET",
          "path": "/bazaar",
          "host": "both",
          "auth": "none",
          "description": "Bazaar products and instant buy/sell."
        },
        {
          "category": "economy",
          "method": "GET",
          "path": "/items",
          "host": "both",
          "auth": "none",
          "description": "Item catalog with NPC prices."
        },
        {
          "category": "economy",
          "method": "GET",
          "path": "/bits",
          "host": "both",
          "auth": "none",
          "description": "Bits shop prices."
        },
        {
          "category": "economy",
          "method": "GET",
          "path": "/hypixel/:endpoint",
          "host": "both",
          "auth": "optional key",
          "description": "Authenticated proxy to api.hypixel.net/v2/*."
        }
      ]
    },
    {
      "key": "mod",
      "label": "Mod & client",
      "endpoints": [
        {
          "category": "mod",
          "method": "GET",
          "path": "/mod/latest",
          "host": "both",
          "auth": "none",
          "description": "Latest mod release metadata."
        },
        {
          "category": "mod",
          "method": "GET",
          "path": "/mod/version",
          "host": "both",
          "auth": "none",
          "description": "Release catalog."
        },
        {
          "category": "mod",
          "method": "GET",
          "path": "/mod/changelog",
          "host": "both",
          "auth": "none",
          "description": "Mod changelog."
        },
        {
          "category": "mod",
          "method": "GET",
          "path": "/mod/bestiary",
          "host": "both",
          "auth": "none",
          "description": "Bestiary data for the client."
        },
        {
          "category": "mod",
          "method": "GET",
          "path": "/mod/highlight",
          "host": "both",
          "auth": "none",
          "description": "Global highlight rules & aliases."
        },
        {
          "category": "mod",
          "method": "GET",
          "path": "/mod/hoppity",
          "host": "both",
          "auth": "none",
          "description": "Hoppity egg data (POST/PUT Bearer-gated)."
        },
        {
          "category": "mod",
          "method": "GET",
          "path": "/resourcepack",
          "host": "both",
          "auth": "none",
          "description": "Texture pack repository & updates."
        }
      ]
    },
    {
      "key": "auth",
      "label": "Auth & keys",
      "endpoints": [
        {
          "category": "auth",
          "method": "POST",
          "path": "/mod/auth",
          "host": "api",
          "auth": "none",
          "description": "Exchange a Mojang key pair for a Bombo bearer token (TTL 6h)."
        },
        {
          "category": "auth",
          "method": "GET",
          "path": "/mod/auth/status",
          "host": "api",
          "auth": "none",
          "description": "Auth service health (Mojang keys loaded, tokens issued)."
        },
        {
          "category": "auth",
          "method": "POST",
          "path": "/api/keys/player",
          "host": "api",
          "auth": "none",
          "description": "Create a player API key."
        }
      ]
    },
    {
      "key": "logs",
      "label": "Player logs",
      "endpoints": [
        {
          "category": "logs",
          "method": "POST",
          "path": "/api/v1/profits",
          "host": "api",
          "auth": "bearer",
          "description": "Ingest dungeon/kuudra profit runs."
        },
        {
          "category": "logs",
          "method": "GET",
          "path": "/profit/:user[/:type]",
          "host": "both",
          "auth": "none",
          "description": "Profit summary for a player."
        },
        {
          "category": "logs",
          "method": "POST",
          "path": "/playtime",
          "host": "api",
          "auth": "bearer",
          "description": "Record playtime."
        }
      ]
    },
    {
      "key": "meta",
      "label": "Meta & pages",
      "endpoints": [
        {
          "category": "meta",
          "method": "GET",
          "path": "/",
          "host": "api",
          "auth": "none",
          "description": "API index (JSON)."
        },
        {
          "category": "meta",
          "method": "GET",
          "path": "/endpoints",
          "host": "web",
          "auth": "none",
          "description": "This endpoint catalog (HTML)."
        },
        {
          "category": "meta",
          "method": "GET",
          "path": "/api/v1/endpoints",
          "host": "both",
          "auth": "none",
          "description": "This endpoint catalog (JSON)."
        },
        {
          "category": "meta",
          "method": "GET",
          "path": "/openapi.json",
          "host": "both",
          "auth": "none",
          "description": "OpenAPI 3 specification."
        },
        {
          "category": "meta",
          "method": "GET",
          "path": "/docs",
          "host": "web",
          "auth": "none",
          "description": "Interactive API reference."
        }
      ]
    }
  ],
  "endpoints": [
    {
      "category": "player",
      "method": "GET",
      "path": "/data/:user",
      "host": "both",
      "auth": "none",
      "description": "Raw Hypixel SkyBlock profile export ({ign, profile, raw_profile, all_profiles})."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/player/:user",
      "host": "api",
      "auth": "none",
      "description": "Raw Hypixel player object."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/nw/:user",
      "host": "both",
      "auth": "none",
      "description": "Solo networth breakdown (skyhelper model)."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/nwc/:user",
      "host": "both",
      "auth": "none",
      "description": "Co-op networth for every member."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/museum/:user",
      "host": "both",
      "auth": "none",
      "description": "Museum progress and donated items."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/inv/:user",
      "host": "both",
      "auth": "none",
      "description": "Decoded inventory and storage containers."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/shards/:user",
      "host": "api",
      "auth": "none",
      "description": "Attribute shard totals."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/name/:user",
      "host": "both",
      "auth": "none",
      "description": "Minecraft name history."
    },
    {
      "category": "player",
      "method": "GET",
      "path": "/playtime/:user",
      "host": "both",
      "auth": "none",
      "description": "Tracked playtime for a player."
    },
    {
      "category": "viewer",
      "method": "GET",
      "path": "/pv",
      "host": "web",
      "auth": "none",
      "description": "Viewer landing page (search + offline JSON dropzone)."
    },
    {
      "category": "viewer",
      "method": "GET",
      "path": "/pv/:user[/:profile]",
      "host": "web",
      "auth": "none",
      "description": "Custom player viewer page (skills, dungeons, slayers, gear, networth)."
    },
    {
      "category": "viewer",
      "method": "GET",
      "path": "/api/v1/pv/:user[/:profile]",
      "host": "both",
      "auth": "none",
      "description": "Structured profile model (model bombo-pv-v1). ?sections=core,gear,inventory,networth, ?refresh=1, ?download=1."
    },
    {
      "category": "viewer",
      "method": "GET",
      "path": "/oldpv/:user[/:profile]",
      "host": "web",
      "auth": "none",
      "description": "Legacy server-rendered viewer (pre-rebuild)."
    },
    {
      "category": "viewer",
      "method": "POST",
      "path": "/oldpv",
      "host": "web",
      "auth": "none",
      "description": "Legacy snapshot render from an uploaded profile JSON."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/api/v1/dungeons/class-average",
      "host": "both",
      "auth": "none",
      "description": "Runs-until-Class-Average planner (model adjectils-dungeon-v1)."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/api/v1/dungeons/:player[/:profile]",
      "host": "both",
      "auth": "none",
      "description": "Per-player catacombs summary: levels, class average, floor PBs, secrets, RTCA50 plan (model dungeons-summary-v1)."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/command/dungeons/:user",
      "host": "both",
      "auth": "none",
      "description": "Command surface: full dungeons/catacombs summary (aliases cata, dungeon, catacombs)."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/command/rtca/:user",
      "host": "both",
      "auth": "none",
      "description": "Command surface: runs until Class Average 50 (aliases runs, runsleft)."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/dungeons",
      "host": "web",
      "auth": "none",
      "description": "HTML class-average calculator."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/bestiary",
      "host": "both",
      "auth": "none",
      "description": "Bestiary mob criteria, islands and tiers."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/accessories/:user[/:profile]",
      "host": "web",
      "auth": "none",
      "description": "Accessory analysis page: coins-per-Magical-Power buy order, wiki-verified upgrade lines with recipe on click and item lore on hover, missing accessories, maximum-Magical-Power ceiling with tuning points, recombobulator and enrichment gaps, bag slot breakdown."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/accessories/user",
      "host": "both",
      "auth": "optional",
      "description": "Accessory analysis for the caller's own account (Authorization: Bearer <mod token>); falls back to ?user=<username>."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/api/accessories/:user[/:profile]",
      "host": "api",
      "auth": "none",
      "description": "Accessory analysis as JSON on the API host (same payload the page renders); ?format=json works on the web host too."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/accessories/map",
      "host": "both",
      "auth": "none",
      "description": "The accessory upgrade map itself, for auditing it: every line (Talisman of Coins -> Ring of Coins -> Artifact of Coins -> Relic of Coins), how each link was established, plus the Rift-exclusive and unobtainable sets. ?user=<ign> marks which rungs that account holds; ?format=json returns the map as data."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/calendar",
      "host": "both",
      "auth": "none",
      "description": "SkyBlock calendar events."
    },
    {
      "category": "progress",
      "method": "GET",
      "path": "/election",
      "host": "both",
      "auth": "none",
      "description": "Active mayor / minister election."
    },
    {
      "category": "economy",
      "method": "GET",
      "path": "/prices",
      "host": "both",
      "auth": "none",
      "description": "Auction-house item prices."
    },
    {
      "category": "economy",
      "method": "GET",
      "path": "/prices2",
      "host": "both",
      "auth": "none",
      "description": "Secondary price feed."
    },
    {
      "category": "economy",
      "method": "GET",
      "path": "/bazaar",
      "host": "both",
      "auth": "none",
      "description": "Bazaar products and instant buy/sell."
    },
    {
      "category": "economy",
      "method": "GET",
      "path": "/items",
      "host": "both",
      "auth": "none",
      "description": "Item catalog with NPC prices."
    },
    {
      "category": "economy",
      "method": "GET",
      "path": "/bits",
      "host": "both",
      "auth": "none",
      "description": "Bits shop prices."
    },
    {
      "category": "economy",
      "method": "GET",
      "path": "/hypixel/:endpoint",
      "host": "both",
      "auth": "optional key",
      "description": "Authenticated proxy to api.hypixel.net/v2/*."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/mod/latest",
      "host": "both",
      "auth": "none",
      "description": "Latest mod release metadata."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/mod/version",
      "host": "both",
      "auth": "none",
      "description": "Release catalog."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/mod/changelog",
      "host": "both",
      "auth": "none",
      "description": "Mod changelog."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/mod/bestiary",
      "host": "both",
      "auth": "none",
      "description": "Bestiary data for the client."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/mod/highlight",
      "host": "both",
      "auth": "none",
      "description": "Global highlight rules & aliases."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/mod/hoppity",
      "host": "both",
      "auth": "none",
      "description": "Hoppity egg data (POST/PUT Bearer-gated)."
    },
    {
      "category": "mod",
      "method": "GET",
      "path": "/resourcepack",
      "host": "both",
      "auth": "none",
      "description": "Texture pack repository & updates."
    },
    {
      "category": "auth",
      "method": "POST",
      "path": "/mod/auth",
      "host": "api",
      "auth": "none",
      "description": "Exchange a Mojang key pair for a Bombo bearer token (TTL 6h)."
    },
    {
      "category": "auth",
      "method": "GET",
      "path": "/mod/auth/status",
      "host": "api",
      "auth": "none",
      "description": "Auth service health (Mojang keys loaded, tokens issued)."
    },
    {
      "category": "auth",
      "method": "POST",
      "path": "/api/keys/player",
      "host": "api",
      "auth": "none",
      "description": "Create a player API key."
    },
    {
      "category": "logs",
      "method": "POST",
      "path": "/api/v1/profits",
      "host": "api",
      "auth": "bearer",
      "description": "Ingest dungeon/kuudra profit runs."
    },
    {
      "category": "logs",
      "method": "GET",
      "path": "/profit/:user[/:type]",
      "host": "both",
      "auth": "none",
      "description": "Profit summary for a player."
    },
    {
      "category": "logs",
      "method": "POST",
      "path": "/playtime",
      "host": "api",
      "auth": "bearer",
      "description": "Record playtime."
    },
    {
      "category": "meta",
      "method": "GET",
      "path": "/",
      "host": "api",
      "auth": "none",
      "description": "API index (JSON)."
    },
    {
      "category": "meta",
      "method": "GET",
      "path": "/endpoints",
      "host": "web",
      "auth": "none",
      "description": "This endpoint catalog (HTML)."
    },
    {
      "category": "meta",
      "method": "GET",
      "path": "/api/v1/endpoints",
      "host": "both",
      "auth": "none",
      "description": "This endpoint catalog (JSON)."
    },
    {
      "category": "meta",
      "method": "GET",
      "path": "/openapi.json",
      "host": "both",
      "auth": "none",
      "description": "OpenAPI 3 specification."
    },
    {
      "category": "meta",
      "method": "GET",
      "path": "/docs",
      "host": "web",
      "auth": "none",
      "description": "Interactive API reference."
    }
  ]
}