Packs
Download an asset file
The asset's own bytes, with the matching content type: PNG for textures and icons, JSON for models, Ogg Vorbis for sounds.
Remember the prefixed names: texture/item:rusted_key, texture/gui:shop_menu, texture/hud:frostbite.
Asking before it's ready answers 409 rather than handing back the placeholder that sits there while it generates — a blank PNG that looked like a result is the one genuinely misleading answer available here.
/packs/{pack}/assets/{kind}/{name}Path parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
kindstringrequiredThe storage kind.
Options: texture, model, font, sound
namestringrequiredThe asset's name.
Response · 200
The file.
Error codes
Branch on error.code, never on the message.
invalid_request400Something in the body or query is wrong. message says what.
invalid_api_key401The key isn't one of ours, or it has been revoked.
missing_api_key401No Authorization: Bearer header was sent.
wrong_key_kind401An MCP key sent to the REST API, or an API key sent to the MCP server. Each only opens its own.
plan_required403The key is valid, but its account is on Starter. The API needs a paid plan.
not_found404No such pack, asset or job.
generation_failed409That asset's generation failed. Its job carries the reason.
still_generating409The asset exists but isn't finished. Poll its job until it's ready.