Minecraft Player API
Look up any Minecraft player by name or UUID and get their UUID, the correct name, their skin, whether it's a slim or wide model, their cape, and links to 3D renders. Java and Bedrock (Floodgate) players both work.
Quick start
GET https://whiscey.net/api/player/<name> GET https://whiscey.net/api/player/<uuid> GET https://whiscey.net/api/player/.<Bedrock_Name>
Press Look up to see the live JSON.
What you get
| edition | java or bedrock |
| name | The username with its real capitals, or the Xbox gamertag |
| uuid, uuid_raw | The UUID with and without dashes (Floodgate UUID for Bedrock) |
| floodgate_name, xuid | Bedrock only |
| skin | url (null for default skins), model (slim or wide), default |
| cape | { url } or null |
| renders | Links to the head, face, bust, body, front and raw skin renders |
{
"edition": "java",
"name": "jeb_",
"uuid": "853c80ef-3c37-49fd-aa49-938b674adae6",
"uuid_raw": "853c80ef3c3749fdaa49938b674adae6",
"skin": { "url": "https://textures.minecraft.net/texture/...", "model": "wide", "default": false },
"cape": { "url": "https://textures.minecraft.net/texture/9e507afc..." },
"renders": { "head": "https://whiscey.net/render/skin/853c80ef3c3749fdaa49938b674adae6/head", "...": "..." },
"cached_at": "2026-10-11T23:10:00.000Z"
}
Unknown players return 404 with {"error": ...}. If Mojang or GeyserMC is down you get 503.
Examples
HTML + JavaScript
const p = await fetch("https://whiscey.net/api/player/Notch").then(r => r.json());
document.querySelector("img").src = p.renders.head + "?size=64";
Python
import requests
p = requests.get("https://whiscey.net/api/player/Notch").json()
print(p["name"], p["uuid"], p["skin"]["model"])
Skript (with skript-reflect)
import:
java.net.URL
java.util.Scanner
command /lookup <text>:
trigger:
set {_json} to new Scanner(new URL("https://whiscey.net/api/player/%arg-1%").openStream(), "UTF-8").useDelimiter("\A").next()
send {_json} to player
Java
HttpClient http = HttpClient.newHttpClient();
HttpRequest req = HttpRequest.newBuilder(URI.create("https://whiscey.net/api/player/" + name)).build();
JsonObject p = JsonParser.parseString(http.send(req, HttpResponse.BodyHandlers.ofString()).body()).getAsJsonObject();
UUID uuid = UUID.fromString(p.get("uuid").getAsString());
Limits and caching
- No key or sign-up. CORS is open (
Access-Control-Allow-Origin: *). - 120 requests a minute per IP across the status, banner, player and MOTD APIs. Over that you get
429and aRetry-Afterheader. - Found players are cached for 1 hour, missing ones for 15 minutes.
For images of the skin, see the Minecraft Skin API.
FAQ
How do I get a Minecraft player's UUID?
Request https://whiscey.net/api/player/<name>. The JSON has uuid (with dashes) and uuid_raw (without).
How do I get a name from a UUID?
Use the UUID instead of the name: https://whiscey.net/api/player/<uuid>. Dashes are optional.
Does it work for Bedrock players?
Yes. Use the Floodgate name with a dot in front and underscores for spaces, like .whisceymc, or the Floodgate UUID. You get the gamertag, XUID and Floodgate UUID.
Does it show capes?
Yes, for Java players who have a cape equipped. Bedrock capes aren't available.
How fresh is the data?
Found players are cached for an hour, names that don't exist for 15 minutes.