Skip to content Nodecraft
Development

Nodecraft empowers Minecraft UGC with 1 billion API requests per month

Minecraft is the single biggest success for Multiplayer. To date, it has sold over 350 million copies, making it the best selling video game of all time (we'll see if it maintains this accolade after the GTA 6 release!). A huge contributor to its success is how it leverages and embraces User-generated content (UGC). From content creators on YouTube and Twitch, to mods that bring Pokémon into Minecraft, to allowing communities to flourish with private dedicated servers, Minecraft offers something for everyone!

Players continue to build richer and richer experiences for Minecraft, both in and out of game. And as creators of the UGC ecosystem continue to build rich new experiences and ways to play Minecraft, the demand for tools and infrastructure expands as well.

Nodecraft has a long history of directly supporting creators, modders, and server owners with our Online Game Server Hosting & the openly available APIs that many leading UGC authors leverage. Today we're excited to celebrate that two of our largest UGC API services empowering these experiences are serving almost 1 billion requests per month to players around the world, powered by Cloudflare Workers and Cloudflare's new sponsorship of PlayerDB and Crafthead.

PlayerDB

PlayerDB is a JSON powered player fetching and caching API service. When Minecraft mods, plugins, launchers, or many other tools want to gather information about players, they have to query for information about that player. This could be to display statistics, leaderboards, friends lists, or many other integrations, with the most common use-case being converting between Minecraft usernames and UUIDs.

Traditionally, services would all hit the maintainer of this information, Mojang, directly. However, doing this can often result in issues like rate limiting, slowdowns, and other problems that are frustrating to deal with and debug. We had this exact problem at Nodecraft many years ago, where each of our services would query Mojang directly and we'd often hit errors that would be hard to trace and debug. So we built PlayerDB. It's a simple and free API that looks something like the following.

curl -s https://playerdb.co/api/player/steam/james_ross

UGC authors can quicky swap out platforms or even lookup players by platform-specific IDs as needed.

curl -s https://playerdb.co/api/player/minecraft/CherryJimbo | jq
{
	"code": "player.found",
	"message": "Successfully found player by given ID.",
	"data": {
		"player": {
			"username": "CherryJimbo",
			"id": "ef613480-5b62-44e4-a446-7fbe85d65513",
			"avatar": "https://crafthead.net/avatar/ef6134805b6244e4a4467fbe85d65513",
			...
		}
	},
	"success": true
}

Every API request will return the player's username, ID, avatar, and a handful of other metadata for services to consume and build rich experiences with. PlayerDB utilises modern Cloudflare Workers features, including caching, enabling P90 response times worldwide to be around 20ms. All statistics are stored and queried using Workers Analytics Engine.

Graph showing response times for PlayerDBPlayerDB Response Times

Graph detailing weekly request counts for PlayerDBPlayerDB Request Counts

Technical Challenges

PlayerDB solves three major challenges for UGC authors:

1. Cache Performance - How can we reliably perform lookups at scale?

2. Data Transformer - How can we guarantee the same format of player data for different platforms?

3. Rate Limiting - How can we consistently perform lookups at scale without being blocked by the platform?

PlayerDB runs across the globe on Cloudflare's Workers platform and network, giving us limitless scale and capacity. It supports Minecraft as well as a couple of other providers. You can find the full documentation on the website, and it's also open source on GitHub.

Example use-cases

  • Slmefun 4 - a Paper / Spigot plugin that adds backpacks, jetpacks, power grid, item transport systems, etc. without the use of any mods. Slimefun 4 uses PlayerDB to pull information about players for their skins. These are then used in-game to render player heads, and so much more.

  • minecraft-prometheus-exporter - this project exports metrics for your Minecraft server to Prometheus, allowing you to graph them in something like Grafana. It uses PlayerDB to grab player information for long-term tracking of player metrics.

  • Tiers - a Paper / Spigot plugin that shows player tier information from popular services like MCTIERS, PvPTiers, and subtiers in-game.

  • docker-minecraft-server - an all-in-one Docker image for creating and managing a Minecraft Java Edition server. This uses PlayerDB for easier allowlist (whitelist) and admin/ops management.

  • and of course our own Minecraft Server Hosting, where PlayerDB is used to pull metadata for players as they join and leave servers, to deliver richer experiences for our customers within their server management portal.

And some other noteworthy mentions we see regularly in our statistics:

  • CraftiGames

  • MCTIERS

  • and then hundreds of other users with heavy usage but generic user-agents. Please send us an identifying user-agent and we might feature your project here next!

PlayerDB also powers the skin lookups for one of our other biggest projects, Crafthead.

Crafthead

Similarly to PlayerDB, Crafthead helps with player data, but is unique to the player-skins of Minecraft. Advertising itself as a "radically fast Minecraft avatar service", it gives UGC projects the ability to pull each player’s uniquely customized skin as an API. It's a great way to enhance a UI with immediate validation for users that the username/uuid they're using is correct. Over the years, there's been many services like this but they usually suffer with maintenance, costs, and stability, and eventually disappear.

Crafthead was originally created by astei, and sponsored by Nodecraft. As the project scaled, so did the costs of maintaining an open and free API, and was acquired by Nodecraft in 2023.

Like PlayerDB, Crafthead is entirely open source on GitHub, and also runs on Cloudflare Workers all around the globe. It's just as easy to use with a simple and predictable URL schema:

https://crafthead.net/helm/4f269bac-1c61-4d2a-8016-79aabb4cb099

Nodecraft_James Minecraft head

https://crafthead.net/bust/4f269bac-1c61-4d2a-8016-79aabb4cb099

Nodecraft_James Minecraft Bust

And then so many more rendering options from capes, to full skins, to 3D cube heads, etc. Check out the full site for documentation.

Below you can see the statistics for a typical week of traffic for Crafthead.

Graph detailing weekly request counts for Crafthead

Example use-cases

  • Minecraft Wiki - the Minecraft Wiki uses Crafthead as well as PlayerDB in various tools they offer at https://minecraft.wiki/w/Calculators. Their Player UUID tool is an example of this.

  • CurseForge - CurseForge use Crafthead to show the Minecraft avatar for player reviews about specific servers. For example: https://www.curseforge.com/servers/minecraft/game/complex-gaming

  • Minecraft Servers - https://servers-minecraft.net use Crafthead similarly to CurseForge, showing player avatars next to their reviews of specific servers

  • Essential - Crafthead is used here through their launcher to provide a richer experience to players to visualise skins, heads, and more.

  • LuckPerms - Crafthead is used in tools like their Web Permissions Editor to enhance the editing experience with player avatars when configuring permissions for your Minecraft server.

  • Mindcrack - here Crafthead is used on their Creators page with the new Mindcrack Rebirth SMP launch so users can quickly identify their favourite creators and jump into watching the SMP from lots of different perspectives!

  • and of course our own Minecraft Server Hosting, where Crafthead is used to create a richer experience for players managing their Minecraft servers, with both Nodecraft Pro and Nodecraft Lite.

And so many other users including:

  • mc-server-list.com

  • minecraftskins.com

  • spark.lucko.me

  • CraftiGames

  • Pika Network

Cloudflare Workers and Sponsorship

It’s no secret that many gaming UGC leaders, including Discord, mod.io & Nodecraft, all leverage serverless technology. You'll find many blog posts where we explore this from moving MCVersions serverless, to silly april fools jokes, to rebuilding our billing experience, and even building the backend for Nodecraft Studio.

Cloudflare Workers continue to be a huge part of our serverless technology stack. Our engineering teams can focus on what they do best: building great online gaming experiences for everyone, and never have to think about regions, server maintenance, or other time-eating tasks.

As of August 2025, Cloudflare has graciously agreed to sponsor these projects that Nodecraft maintains for the broader UGC ecosystem, so they can continue to scale and grow. We're very grateful for their support in ensuring we can continue providing these APIs and services entirely free of charge to the Minecraft tech and UGC community for many more years to come!

Powered by Workers

If you have any feature suggestions, bug reports, or just want to chat, feel free to open issues / pull requests on either the PlayerDB or Crafthead repositories - we welcome all contributions, or reach out to me on X (Twitter) and I'd be happy to help!