resourcepack.ai
DOCS

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.

POST/packs

Body

namestringrequiredmax 100 characters

The pack's display name.

Response · 201

Created.

packobjectrequired

The new pack.

slugstringrequired

The pack's id. Every other path takes this.

namestringrequired

Its display name.

minecraftVersionstringrequired

The version the pack is authored against.

rolestringrequired

Whether this key's owner owns the pack or was added to it.

Options: owner, collaborator

createdAtstringrequired

ISO 8601.

updatedAtstringrequired

ISO 8601.

assetCountsobjectrequired

How much the pack holds, by kind.

texturesintegerrequired

Block textures, item sprites and GUI sheets.

modelsintegerrequired

3D models.

iconsintegerrequired

Font glyphs.

soundsintegerrequired

Sound events.

Error codes

Branch on error.code, never on the message.

invalid_request400

Something in the body or query is wrong. message says what.

invalid_api_key401

The key isn't one of ours, or it has been revoked.

missing_api_key401

No Authorization: Bearer header was sent.

pack_limit_reached403

The account is at its plan's pack limit.

plan_required403

The key is valid, but its account is on Starter. The API needs a paid plan.

not_found404

No such pack, asset or job.