Minecraft Player Lookup - Username, UUID, Skin avatar

Minecraft Player Lookup - Username, UUID, Skin

Pricing

from $0.38 / 1,000 players

Go to Apify Store
Minecraft Player Lookup - Username, UUID, Skin

Minecraft Player Lookup - Username, UUID, Skin

Look up Minecraft Java players: usernames to UUIDs, UUIDs back to current usernames, with skin and cape URLs, texture ids and the slim or classic arm model. No account. Unknown names and invalid entries come back free. $0.40 per 1,000 players.

Pricing

from $0.38 / 1,000 players

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

a day ago

Last modified

Share

Paste Minecraft Java usernames and get each player's UUID, skin, cape and arm model, or paste UUIDs and get the current usernames back: one row per player, the UUID in both the plain and the dashed form, looked up from Mojang when you run it, so a name is the one the account holds today.

What it cannot give you is name history. Mojang withdrew it in 2022, and there is no nameHistory field here pretending otherwise.

InputMinecraft Java usernames, UUIDs, or both
OutputOne row per player: current username, UUID in both forms, skin and cape URLs with texture ids, slim or classic model
Ceiling10,000 players per run
Account neededNone, and no Mojang API key
Price$0.40 per 1,000 players on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 12,500

🔍 What Minecraft Player Lookup does

Usernames come back in the account's real capitalisation, so philza returns the spelling the player chose. Names are looked up ten at a time and UUIDs one by one, so a long UUID list runs slower than the same number of names. If you can choose the direction, run names.

Duplicates collapse before anything is looked up, and across both lists: a username in one box and the same player's UUID in the other make one row, charged once. Several names on one line are fine if commas or spaces split them, since a Minecraft name can contain neither.

The skin lookup is a second step for every player. Switch it off when all you need is a name-to-UUID map for a whitelist or a plugin config, and the run finishes in a fraction of the time.

skinTextureId is the hash at the end of the skin URL. Two accounts wearing the same skin share it, which is how you group them. Mojang serves the texture URLs over plain http, and they are passed through unchanged.

Close to its time limit, a run stops looking things up. Players it had found but not yet fetched skins for arrive without them, free of charge, instead of the run being killed mid-list.

📋 What data you get from each Minecraft player

What you getField
The username as the account holds it nowusername
The UUID, plain and dasheduuid, uuidDashed
Whether the account has a custom skin, the skin URL, its texture id and the arm modelhasCustomSkin, skinUrl, skinTextureId, skinModel
Whether it wears a cape, the cape URL and its texture idhasCape, capeUrl, capeTextureId
Whether the skin lookup ran and answered, and when Mojang signed the datatexturesStatus, texturesTimestamp
Mojang's signature over the texture data, when you ask for ittextureSignature
Which of your inputs produced the rowqueriedBy, queriedValue

▶️ How to look up Minecraft UUIDs and skins

  1. Open Minecraft Player Lookup and click Try for free.
  2. Paste usernames into Usernames, UUIDs into UUIDs, or both.
  3. Untick Look up skin and cape if names and UUIDs are all you need.
  4. Set Maximum players.
  5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the API.

Clear both lists and start it, and you get one free sample row showing the shape.

💰 How much does it cost to look up Minecraft players?

$0.40 per 1,000 players on the Free plan, with or without skins. Paid plans pay a little less: $0.395 on Starter, $0.39 on Scale and $0.385 on Business. The free plan's $5 a month covers about 12,500 players.

Not charged: the sample row, every problem row (invalid input, unknown names, lookups Mojang did not answer) and a player whose skin you asked for but did not get. A player you listed twice, by name and by UUID, is charged once.

📥 What you give it

{
"usernames": ["jeb_", "Dinnerbone", "Dream"],
"uuids": ["069a79f4-44e9-4726-a5be-fca90e38aaf5"],
"includeTextures": true,
"maxItems": 100
}
FieldDefaultWhat it is
usernamesnone; the box starts with jeb_, Dinnerbone, DreamMinecraft Java usernames, one per line, or several on a line split by commas or spaces. Case does not matter.
uuidsnonePlayer UUIDs, with or without dashes, to get the current username back.
includeTexturestrueLook up the skin, cape and arm model. Off, the run does name-to-UUID only and finishes much faster.
includeSignaturefalseAdds Mojang's RSA signature over the texture data, so you can check offline that the skin data really came from Mojang. It makes every row larger, so leave it off unless you will check it.
maxItems100The most players one run returns and charges, 1 to 10,000. Unknown and invalid names do not count against it.
proxyConfigurationoffOptional. Add your own servers here if you want the run to go out through them. Otherwise leave it alone.

For includeTextures, includeSignature and maxItems, an API call that leaves the field out gets the value shown, the same one the form starts with.

📤 What you get back

A real row from a run on 30 September 2026:

{
"ok": true,
"username": "jeb_",
"uuid": "853c80ef3c3749fdaa49938b674adae6",
"uuidDashed": "853c80ef-3c37-49fd-aa49-938b674adae6",
"hasCustomSkin": true,
"skinUrl": "http://textures.minecraft.net/texture/7fd9ba42a7c81eeea22f1524271ae85a8e045ce0af5a6ae16c6406ae917e68b5",
"skinTextureId": "7fd9ba42a7c81eeea22f1524271ae85a8e045ce0af5a6ae16c6406ae917e68b5",
"skinModel": "classic",
"hasCape": true,
"capeUrl": "http://textures.minecraft.net/texture/9e507afc56359978a3eb3e32367042b853cddd0995d17d0da995662913fb00f7",
"capeTextureId": "9e507afc56359978a3eb3e32367042b853cddd0995d17d0da995662913fb00f7",
"texturesStatus": "ok",
"texturesTimestamp": "2026-09-30T02:31:10.009Z",
"textureSignature": null,
"queriedBy": "username",
"queriedValue": "jeb_",
"scrapedAt": "2026-09-30T02:31:10.104Z"
}
FieldHow to read it
usernameThe spelling the account holds now, whatever capitalisation you typed.
uuid, uuidDashedThe same id as 32 hex characters, and in the dashed 8-4-4-4-12 form.
hasCustomSkin, hasCapeWhether the account has uploaded a skin and has a cape on. null when the skin lookup was off or did not answer, which means unknown, not no.
skinModelslim (three-pixel arms) or classic (four-pixel arms).
capeUrl, capeTextureIdMost players have no cape, so these are usually null.
texturesStatusok, none_published (Mojang knows the player but publishes no textures), or not_requested (the lookup was off).
queriedBy, queriedValueWhich of your inputs produced the row, so you can join it back to your list.

🧾 Reading the output

ok is not the filter it looks like. Real rows say ok: true, but so does the free sample row, and so do the rows where the skin lookup failed.

RowHow to spot itCharged
A playerok: true, with no _sample or _diagnostic fieldyes
The sample row_sample: true and charged: false. Written only when both lists are emptyno
A problem row_diagnostic: true and charged: false, with an errorCode, the queriedValue it is about, and a plain error and hintno
A summary rowAn errorCode ending in _SUMMARY, with suppressedCount and a sample of up to 25 valuesno
errorCodeWhat happened
INVALID_USERNAMENot 3 to 16 letters, numbers or underscores. Rejected before any lookup.
INVALID_UUIDNot 32 hex characters.
USERNAME_NOT_FOUNDNo account holds that name right now. Names are released and re-registered, so one that existed last year may not today.
UUID_NOT_FOUNDMojang has no account with that id. Offline-mode UUIDs, and the ones a server makes up for Bedrock players, always end up here.
RATE_LIMITEDMojang limits how fast it answers, and this lookup missed out. Re-run just those values.
LOOKUP_FAILEDMojang answered that lookup with some other error. Re-run just those values.
TEXTURES_RATE_LIMITED, TEXTURES_FAILED, TEXTURES_SKIPPED_TIME_LIMITThe name and UUID in the row are right, but the skin and cape did not arrive, so the row is free.

After 50 problem rows, the rest roll into one summary row per code, so your real results are not buried. A 300-name test list with 272 unknown names came back as 79 rows: 28 players, 50 problem rows and one summary.

To keep only real players, drop every row carrying _sample or _diagnostic.

💡 What people use it for

  • Turning the names in a server whitelist or a plugin config into UUIDs, with the skin lookup off.
  • Refreshing the names on a leaderboard that stores players by UUID. Names change; UUIDs do not.
  • Pulling skin and cape URLs to draw player heads on a website or in a Discord bot.

🚧 What it does not do

  • No name history. Mojang withdrew it in 2022 and nothing replaced it.
  • Java accounts only. A Bedrock gamertag is looked up as if it were a Java name, so if a Java player happens to hold the same name, you get that Java player, not the Bedrock one.
  • No offline-mode UUIDs. A server in offline mode makes up its own ids. Mojang has never heard of them, so they come back as a free UUID_NOT_FOUND.
  • No server data. It looks up players, not servers.
  • No skin images. You get the URL and the texture id; download the PNG yourself.
  • No ban or account status. Mojang does not publish it.
  • No promise that a huge list comes back whole. A very long list can return some RATE_LIMITED rows. Re-run just those, or split the list across runs.
  • It is not an official Minecraft tool. Dami's Studio is independent and is not affiliated with or endorsed by Minecraft, Mojang or Microsoft, or by any other company named on this page.

🧭 Which gaming scraper do you need?

If you wantUse
Minecraft Java usernames and UUIDs, with skins and capesThis one
Steam games with their details, stats and reviewsSteam Scraper
Kick streamers, their followers and whether they are liveKick Creator Scraper
Growth stats for Twitch and YouTube channelsSocial Blade Scraper

❓ Questions people ask

How do I get a Minecraft UUID from a username?

Put the name in Usernames and run it. uuid is the undashed form and uuidDashed the standard one; every row has both. To go the other way, put UUIDs in UUIDs, with or without dashes.

Can I get a player's old usernames?

No. Mojang removed name history in September 2022, so Mojang no longer gives it to anyone.

How do I tell an Alex skin from a Steve skin?

skinModel is slim for three-pixel arms and classic for four. When hasCustomSkin is false, the account never uploaded one and the game picks a default.

Do I need a Mojang API key or a Minecraft account?

No. There is nothing to sign up for.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/minecraft-player-lookup. Either way the run happens on your Apify account at the same price.

Usernames, UUIDs and skins are public profile data that Mojang serves to anyone who asks. A username can still identify a person, so have a reason for keeping a list of them. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the run ID and a few of the names or UUIDs that went wrong, with their errorCode.