Under the hood

The APIs / backends,
explained

Every GameHub-based app talks to a backend API for its catalog, its components (DXVK / VKD3D / Box64 / drivers), firmware, container presets and — for online features — Steam library & search. The big difference between these projects is which backend they trust. Here are the three in play.

What an "API" does here: it's the server that tells the app what components exist, where to download them, which firmware/container to use, and (for the original) handles your account & Steam library. Swap the backend and you change who you trust and what works offline — without changing the game-running engine itself.

Originalclosed-source

GameHub API

by XiaoJi · the official backend

The original Chinese servers the stock app was built around. Serves the catalog, components, firmware and the Steam library — but also handles account login and carries the upstream telemetry.

  • Catalog, components, firmware, Steam proxy
  • Requires a XiaoJi account / login
  • Region-gated & telemetry-carrying
  • Closed source; can change or go down
Static JSONopen

EmuReady API

by Producdevity · GameHub Lite API

A fully static JSON API (a TypeScript build that generates ~16 endpoint files) that drops the account requirement and the Chinese servers for a clean component catalog. This is what GameHub Lite — the base BannerHub Lite is built on — talks to.

  • Component manifests: Box64/FEX, drivers, DXVK, VKD3D, games, libraries, Steam
  • Simulator endpoints: component/container lists, default component, firmware (imagefs), executeScript generic & Qualcomm presets
  • No login, no telemetry — static files
Static + Workerprivacy-first

BannerHub API

by The412Banner · self-hosted

A static JSON API plus a Cloudflare Worker that fully replaces GameHub's Chinese servers. Every component downloads directly from GitHub Releases — no login, no Chinese servers, no third-party image CDNs. Powers all three BannerHub builds.

  • Components straight from GitHub Releases — always up regardless of GameHub server status
  • Worker proxies the few dynamic calls (Steam library, search) with real token injection + MD5 signature regeneration
  • A companion worker auto-refreshes the GameHub token every 4 h (via Mail.tm OTP) so you never log in
  • One backend serves both 5.3.5 (BannerHub + Lite) and 6.0.x (via a /v6/ path prefix)

Which build uses which backend

BuildDefault backendSwitchable?
Stock GameHubGameHub API (XiaoJi)
GameHub Lite (base of BannerHub Lite)EmuReady API (Producdevity)
BannerHub LiteBannerHub API (since v1.0.1)
BannerHubBannerHub API3-way selector: GameHub / EmuReady / BannerHub
BannerHub v6BannerHub API (/v6/ prefix)

BannerHub (full) is the most flexible — it ships a Compatibility API Source selector so you can point it at the original GameHub API, the EmuReady API, or the BannerHub API.

How the BannerHub API is wired

App
 └─ Cloudflare Worker
     ├─ GitHub Pages — static routes
     │   (components, Wine config, firmware…)
     └─ GameHub backend — proxied dynamic calls
         (Steam library, search) with real
         token + regenerated MD5 signature

Static endpoints are also browsable on GitHub Pages; the app points at the Worker. Source: bannerhub-api + token-refresh worker.

The honest part

The BannerHub API removes the Chinese servers for components and the login wall — but the handful of dynamic features (Steam library, search) are still proxied through to GameHub's own backend by the Worker, just with the token handled for you.

So you trust The412Banner + Cloudflare for the catalog instead of XiaoJi directly. That trade-off (and what still reaches the network) is laid out plainly on the privacy page.

Want the source?

Both community APIs are open. Read exactly what they serve.