whoplays-api — look up the in-game name behind a player ID.
POST https://whoplays.doedja.com/api/check
Authorization: Bearer wp_...
Content-Type: application/json
{ "game": "<slug>", "input": { ... } } | Method | POST |
|---|---|
| URL | https://whoplays.doedja.com/api/check |
| Header | Authorization: Bearer wp_… |
| Body type | application/json |
| Limit | 30 lookups a minute, counted per person |
| Cache | Successful: 1 hour. Player-not-found: 5 minutes. Errors: not cached. |
Send a JSON object with two fields. game is the slug from the
list further down. input is the per-game data — usually userId, sometimes also zoneId, sometimes a Riot ID.
{
"game": "mobile-legends",
"input": { "userId": "1690585197", "zoneId": "18190" }
} {
"ok": true,
"game": "mobile-legends",
"username": "Akari."
} Every error has the same shape. Switch on the error field.
{
"ok": false,
"error": "<kind>",
"message": "<human-readable>",
"code": "<optional, set when the lookup itself failed>",
"issues": [{"field":"…","message":"…"}] // only on validation errors
} | kind | http | what happened |
|---|---|---|
| unauthorized | 401 | Your key is missing or wrong. |
| validation | 400 | A field is missing or in the wrong format (e.g. Riot ID without #). |
| unknown_game | 404 | That game value isn't supported. |
| not_found | 422 | Couldn't find that player. Wrong ID, wrong region, or the game doesn't allow lookups for it. |
| rate_limited | 429 | You hit the 30-per-minute cap. retryAfter tells you how long to wait. |
| parse | 502 | Got a reply but couldn't read a name out of it. Rare. |
| upstream | 502 | The game's servers gave us an error. |
16 supported. Slug goes in the game field. Below each slug are the fields you put inside input.
Mobile Legends: Bang Bang
userId: userIdzoneId: zoneIdMobile Legends: Adventure
userId: userIdzoneId: zoneIdGenshin Impact
userId: Server detected from prefix.We figure out your server from the UID — 1/2/9 = TW/HK/MO, 5/6 = America, 7 = Europe, 8 = Asia. Pass `server` to set it yourself.
Honkai: Star Rail
userId: Server detected from prefix.Same UID rule as Genshin.
Garena Free Fire
userId: userIdGarena Free Fire MAX
userId: userIdGarena Free Fire (PH)
userId: Philippines server only.Looks up the Philippines server. If your ID is for another region, use `free-fire` instead.
Call of Duty Mobile
userId: userIdArena of Valor
userId: userIdValorant
riotId: Format name#tag, case matters.Format: `name#tag`. Case matters.
League of Legends: Wild Rift
riotId: Format name#tag, case matters.Format: `name#tag`. Case matters.
League of Legends (PC)
riotId: Format name#tag, case matters.Format: `name#tag`. Case matters.
Sausage Man
userId: userIdGarena Speed Drifters
userId: userIdPoint Blank (PH)
userId: userIdPath to Nowhere
userId: userIdSign in, make a key in the dashboard, copy it once
(we don't show it again). Keys look like wp_a1b2c3… — 35
characters. We store them hashed, so even we can't read your key after you
save it.
The 30-per-minute limit counts you, not your keys, so making more keys won't get you more lookups.
Revoking a key takes effect on the next call. Use a separate key for each project or machine so if one leaks you only have to revoke that one.
W********a). That's the game maker's privacy setting,
not us.free-fire-ph for the Philippines.