Packs
Create a pack
The slug is derived from the name and made unique — read it from the response rather than predicting it, because a second pack of the same name doesn't get the slug you'd guess.
JSON only. The Studio's own create dialog is multipart because it also accepts a banner image, which has no business being the shape of the API's simplest call.
/packsBody
namestringrequiredmax 100 charactersThe pack's display name.
Response · 201
Created.
packobjectrequiredThe new pack.
slugstringrequiredThe pack's id. Every other path takes this.
namestringrequiredIts display name.
minecraftVersionstringrequiredThe version the pack is authored against.
rolestringrequiredWhether this key's owner owns the pack or was added to it.
Options: owner, collaborator
createdAtstringrequiredISO 8601.
updatedAtstringrequiredISO 8601.
assetCountsobjectrequiredHow much the pack holds, by kind.
texturesintegerrequiredBlock textures, item sprites and GUI sheets.
modelsintegerrequired3D models.
iconsintegerrequiredFont glyphs.
soundsintegerrequiredSound events.
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.
pack_limit_reached403The account is at its plan's pack limit.
plan_required403The key is valid, but its account is on Starter. The API needs a paid plan.
not_found404No such pack, asset or job.