No frills Minecraft headshot provider. Retrieves profiles & textures directly from Mojang, falling back to CraftHead if/when issues with Mojang's API are encountered. Bedrock players joining through Geyser are supported via the GeyserMC global API.
Try every render type and parameter interactively at heads.discordsrv.com.
GET https://heads.discordsrv.com/<target>/<type>[/<size>][?yaw=<degrees>&pitch=<degrees>]
| Part | Description |
|---|---|
<target> |
A UUID (dashed or non-dashed), a username, or a texture ID. UUIDs are preferred; username -> UUID mappings are cached for one hour. See offline UUIDs for non-Mojang UUIDs. |
<type> |
One of the image types below. |
<size> |
Width of the resulting image in pixels, defaulting to 256 for player and 64 for everything else, and capped at 512. Non-square images keep their aspect ratio. For texture, it's rounded to the nearest multiple of 64 (between 64 and 512). |
yaw, pitch |
Camera angles for 3D types (skull and player). See camera angles. |
All images are PNGs. head and overlay are RGB (no transparency); everything else is ARGB with a transparent background.
Slim (Alex model) skins are rendered with 3px wide arms in bust, body and player. The model comes from the player's profile; when the target is a texture ID, it's detected from the texture instead.
- Floodgate UUIDs (Bedrock players joining through Geyser), such as
00000000-0000-0000-0009-01f64f65c7c3, carry the player's Xbox ID (XUID) in their last 16 hex digits. Their skin is fetched from the GeyserMC global API, which only has skins for players it has seen join a Geyser server. Players it has no skin for get the default Steve texture. - Other offline-mode UUIDs (any other version than v4) always resolve to the default Steve texture.
Examples are displayed with /64 to request them at 64px wide. Scarsz could be replaced with the UUID d7c1db4d-e57b-488b-b8bc-4462fe49a3e8 for the same results.
The front face of the head.
head |
overlay |
helm |
|---|---|---|
| Plain head. | Helmet layer drawn over the head. | Helmet layer scaled up around the head, resembling how heads are rendered in-game. |
Flat head plus the upper half of the torso and arms.
bust |
bust/overlay |
bust/helm |
|---|---|---|
| No helmet layer. | Helmet layer drawn over the head. | Helmet layer scaled up around the head. |
Flat full body: head, torso, arms and legs.
body |
body/overlay |
body/helm |
|---|---|---|
| No helmet layer. | Helmet layer drawn over the head. | Helmet layer scaled up around the head. |
A 3D skull block, showing the front, top and one side of the head.
skull[/isometric][/left|/right][/helm]
left(the default) shows the player's left side;rightshows their right side.- Without
isometric, the skull uses an oblique projection: the front face is drawn flat and the top and side recede diagonally. The image is square. isometricuses a true isometric projection, where the top, front and side are identical rhombi. The image is narrower than it is tall.helmadds the helmet layer. The plain andhelmimages of a skin are cropped identically, so they line up exactly.- Supports camera angles.
A full 3D render of the player in a neutral standing pose, viewed from slightly above.
player[/left|/right]
left(the default) shows the player's left side;rightshows their right side.- Supports camera angles.
| Left (default) | Right |
|---|---|
playerplayer/left |
player/right |
The raw texture sheet, without any processing.
texture |
|---|
skull and player accept yaw and pitch query parameters, in degrees, to view the model from any angle.
| Parameter | Range | Description |
|---|---|---|
yaw |
Any number | How far the camera turns around the player. 0 faces their front, positive turns toward their left (90 is their left profile), negative toward their right, and 180 faces their back. |
pitch |
-90 to 90 |
How far the camera looks down. 0 is level, 90 looks straight down from above, and negative values look up from below. |
left and right are aliases for each type's default angles. Any angle that isn't given keeps the route's default:
| Route | left (default) |
right |
|---|---|---|
player |
?yaw=35&pitch=15 |
?yaw=-35&pitch=15 |
skull/isometric |
?yaw=45&pitch=35.26* |
?yaw=-45&pitch=35.26* |
* The exact isometric pitch is atan(1/√2) ≈ 35.2644°; leave pitch out to use it.
For example, player?pitch=40 is ?yaw=35&pitch=40, and player/right?yaw=-60 is ?yaw=-60&pitch=15.
The oblique skull view is a fixed projection rather than a camera angle, so giving either angle renders it like skull/isometric instead: skull/helm?yaw=20 is the same as skull/isometric/helm?yaw=20.
Angles that aren't numbers, or a pitch outside -90 to 90, return 400 Bad Request.
| Front | Left profile | Back | High angle | From below |
|---|---|---|---|---|
player?yaw=0&pitch=0 |
player?yaw=90&pitch=0 |
player?yaw=180&pitch=15 |
player?yaw=30&pitch=60 |
player?yaw=-30&pitch=-30 |
| Front | Shallow | Top-down | Back | From below |
|---|---|---|---|---|
skull/helm?yaw=0&pitch=0 |
skull/helm?yaw=30&pitch=10 |
skull/helm?yaw=0&pitch=90 |
skull/helm?yaw=200&pitch=30 |
skull/helm?yaw=-45&pitch=-35.26 |