Free · no API key · no payments

Mojang textures for every plugin. Free, forever.

MineSkin without keys or payments. Send a skin, get its texture on textures.minecraft.net. A global cache means every image is uploaded once, ever, for everybody.

Try a Minecraft name to see their skin and the pieces servers generated from it.

Live

Textures ready
0
On Mojang, signed or not
Uploads
0
Worn by an account of the pool
Served free
0
Already on Mojang, or answered from cache
Accounts
0
In the pool right now
In queue
0
Waiting for an account
Last hour
0
Textures made ready

How it works

Cheapest first. An upload is the last resort.

A Minecraft client only draws textures hosted by Mojang, and only an account wearing a skin puts one there. So we avoid uploads wherever we can.

  1. Instant

    1. The global cache

    Every texture any server ever asked for answers by hash, without sending a picture. Most requests end here.

  2. Free

    2. Already on Mojang

    Mojang names a texture by the hash of its image. If that texture already exists, we store it at once: no account used.

  3. Last resort

    3. Upload

    Only a brand new image is worn by an account of the pool. Its texture and signature are kept for everyone after.

Unchanged pieces are shared across skins, qualities and servers: a player who only changes their shoes uploads one or two new pieces, and default Steve and Alex are generated once for every offline server.

For developers

One request. No key, no account.

Send up to 32 skin PNGs at once and get their Mojang textures. Ready ones answer at once; the rest are queued and you poll by hash.

  • No API key, no sign-up, no payments.
  • Up to 32 images per request, idempotent: sending the same images again queues nothing.
  • Ask by hash first: anything ever generated answers without uploading a byte.
  • A fair queue, round-robin by requester, so a busy network cannot starve a small server.
Full API reference
curl
curl -X POST https://skins-api.exylia.net/v1/textures \
  -H "Content-Type: application/json" \
  -H "User-Agent: MyPlugin/1.0" \
  -d "{\"images\":[{\"png\":\"$(base64 -w0 skin.png)\"}]}"
Java 11+
HttpClient http = HttpClient.newHttpClient();
String png = Base64.getEncoder().encodeToString(Files.readAllBytes(Path.of("skin.png")));

HttpRequest request = HttpRequest.newBuilder(URI.create("https://skins-api.exylia.net/v1/textures"))
    .header("Content-Type", "application/json")
    .header("User-Agent", "MyPlugin/1.0")
    .POST(HttpRequest.BodyPublishers.ofString("{\"images\":[{\"png\":\"" + png + "\"}]}"))
    .build();

String body = http.send(request, HttpResponse.BodyHandlers.ofString()).body();
// {"textures":[{"hash":"9f2c…","status":"ready","id":"3b1a…"}]}
// "queued"? Poll GET /v1/textures?hashes=9f2c… after "retryAfter" seconds.

Contribute

Lend a Java account. Keep the textures free.

Every account in the pool adds throughput for every server. Sign in with Discord, link an alt with a code at microsoft.com, and it starts uploading.

Lend an account
  • 1

    Sign in at Microsoft with a code

    You type a short code at microsoft.com/link. Your password never reaches Exylia.

  • 2

    Use an alt

    While it is in the pool, the account's skin changes constantly. Lend one you do not play on.

  • 3

    Pause or remove it anytime

    From your dashboard. Removing wipes its tokens at once.

  • 4

    Credit in public

    Its uploads and stats show on the public leaderboard, next to your Discord name.

FAQ

Questions

Is it safe to lend an account?

You sign in on Microsoft's own page (microsoft.com/link) with a device code; Exylia never sees your password. We keep only the session tokens Microsoft hands out, encrypted (AES-256-GCM), and use them for one thing: changing the account's skin. You can remove the account anytime, which wipes those tokens.

What happens to the account's skin?

It changes constantly: every upload is the account wearing someone else's skin for a moment. That is why we ask for an alt, not the account you play on.

Can I pause or remove my account?

Yes, anytime, from your dashboard. Paused accounts keep their tokens and can resume with one click; removed accounts have their tokens wiped and keep only their public history.

Is it really free?

Yes. No key, no tiers, no payments. Exylia and the community lend the accounts, and the global cache keeps the work small: each image is uploaded once, ever.

Can it replace MineSkin in my plugin?

For textures, yes: send PNGs, get texture ids and signed values. ExyliaLib already uses it for ragdolls in the player's real skin. See the API docs for the details.

Are there limits?

120 requests a minute per IP and 400 new uploads queued per IP per hour. Anything already generated, by anyone, never counts against the upload cap.