API Docs

A free, public REST API that returns the in-game name for a game ID. No API key is needed.

https://api.bingogameshop.com
GameEndpointNeeds zone
Mobile Legends: Bang BangGET /mlbbYes
Magic Chess: Go GoGET /mcggYes
PUBG MobileGET /pubgNo
Honor of KingsGET /hokNo

Quick start

curl "https://api.bingogameshop.com/pubg?id=5123456789"
const res = await fetch("https://api.bingogameshop.com/mlbb?id=247311514&zone=9313");
const body = await res.json();
if (body.ok) console.log(body.data.name);

Query parameters

NameTypeRequiredDescription
iddigits, 4–20AlwaysThe player / game ID
zonedigits, 1–6MLBB, MCGGThe server (zone) ID shown next to the player ID

Responses

Every response is JSON with the same envelope:

FieldTypeDescription
okbooleantrue when the player was found
gamestringmlbb, mcgg, pubg or hok
cachedbooleantrue when served from cache
dataobjectPlayer details (only when ok is true)
errorstringMachine-readable error code (only when ok is false)
messagestringHuman-readable error message

MLBB — GET /mlbb?id=…&zone=…

{
  "ok": true,
  "game": "mlbb",
  "cached": false,
  "data": {
    "id": "247311514",
    "zone": "9313",
    "name": "Deja Vu",
    "region": "Myanmar",
    "availability_checked": true,
    "dd50": true,
    "dd150": true,
    "dd250": false,
    "dd500": true,
    "weekly_diamond_pass": true,
    "weekly_elite_bundle": true,
    "monthly_epic_bundle": true,
    "twilight_pass": true
  }
}
  • dd50 … dd500 — whether the first-recharge Double Diamonds bonus for that pack is still available.
  • weekly_diamond_pass, weekly_elite_bundle, monthly_epic_bundle, twilight_pass — whether the account can still buy that item.
  • availability_checked — false when the offer flags could not be read this time; the name and region are still valid.

MCGG — GET /mcgg?id=…&zone=…

{
  "ok": true,
  "game": "mcgg",
  "cached": false,
  "data": { "id": "123456789", "zone": "1234", "name": "Player", "dd50": true, "dd150": true, "dd250": true, "dd500": false }
}

PUBG Mobile — GET /pubg?id=…

{
  "ok": true,
  "game": "pubg",
  "cached": false,
  "data": { "id": "5123456789", "name": "Eliah2", "isbanned": false }
}

Honor of Kings — GET /hok?id=…

Same shape as PUBG Mobile: id, name, isbanned.

Errors

HTTPerrorMeaning
400invalid_id / invalid_zoneThe ID or zone is not digits or has the wrong length
404not_foundNo player with that ID
429rate_limitedOver the rate limit; wait for Retry-After seconds
502upstream_errorThe game shop did not answer; try again
503busyToo many checks are waiting; try again shortly
504timeoutThe check took too long; try again
{ "ok": false, "game": "pubg", "cached": false, "error": "not_found", "message": "Game ID not found" }

Rate limits

  • 5 requests per minute per IP. Requests answered from cache do not count.
  • Over the limit you get 429 with a Retry-After header.

Caching

Answers are cached on the server, so asking for the same ID again is instant:

GameWhatCached for
MLBBname + region24 hours
MLBBoffer flags (dd50, passes, bundles)1 minute
MCGGeverything1 minute
PUBG Mobile, Honor of Kingsname24 hours
any"not found" answers1 minute

Check the X-Cache response header (HIT or MISS) or the cached field.

CORS

All endpoints send Access-Control-Allow-Origin: *, so you can call the API straight from a browser.

PUBG Mobile and Honor of Kings checks run one at a time per game. The first check after a quiet period can take a few seconds; the next ones take under a second.