Packs
Duplicate a pack
A new pack holding a copy of every asset in this one, under a new slug: the Studio's Duplicate. Read the new slug from the response. Free, but it is a pack like any other, so it counts against the plan's pack limit. Owner or team admin only.
/packs/{pack}/duplicatePath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
Response · 201
The copy.
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
descriptionstringrequiredWhat Minecraft shows under the pack's name. Null when none is set.
creditSourcestringrequiredWhose AI Credits a generation in it spends: the owner's, or whoever asked for it. A team pack is paid by the team either way.
Options: owner, prompter
hasIconbooleanrequiredWhether the pack has an icon of its own.
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_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.
account_suspended403The account is suspended, so its keys open nothing. message says until when, if the suspension has an end date.
forbidden403Valid key, but not permitted to do this in this pack.
pack_limit_reached403The account is at its plan's pack limit.
plan_required403The key is valid, but its account's plan does not include the API.
not_found404No such pack, asset or job.