Distribution
Change a pack's distribution
The Distribution tab's settings. enabled: false stops every bound server handing the pack out and takes down its stable url at once; true serves the live release again, with nothing rebuilt. versions chooses what the next release is built for (from availableVersions; anything older than minVersion is refused), and defaultVersion which of them the stable url serves. Choosing versions builds nothing: players get them on the next POST /packs/{pack}/publish.
Send any of the three. Needs the distribute permission on the pack. Free.
/packs/{pack}/distributionPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
Body
enabledbooleanWhether bound servers serve the pack at all.
versionsarray of stringThe Minecraft versions a release is built for. Replaces the saved choice.
defaultVersionstringWhich of the versions the stable download address serves. Absent with versions is the first.
Response · 200
Saved. The distribution as it is now, the same shape GET answers.
packstringrequiredThe pack.
enabledbooleanrequiredWhether bound servers are serving it at all.
versionsarray of stringrequiredThe versions a release is built for.
defaultVersionstringrequiredThe version the stable url serves.
urlstringrequiredThe stable download address.
minVersionstringrequiredThe oldest version the pack can be published for: the newest of its assets' own floors.
minVersionReasonstringrequiredWhich asset sets minVersion, in words, or null when nothing raises it.
availableVersionsarray of objectrequiredEvery version a release can be built for, newest first: the versions the Studio's publish picker offers.
versionstringrequiredWhat to send in versions.
labelstringrequiredThe releases it covers, as the Studio shows it.
liveobjectrequiredThe release players get now, or null before the first.
idstringrequiredThe release's id.
statusstringrequiredWhere the build is.
Options: building, ready, failed
errorstringWhy it failed. Absent otherwise.
createdAtstringrequiredISO 8601.
readyAtstringrequiredISO 8601, once built.
artifactsarray of objectrequiredOne per version, plus bedrock when the pack has anything that crosses over.
versionstringrequiredA Minecraft version, or bedrock.
statusstringrequiredWhere this build is.
Options: building, ready, failed
errorstringWhy it failed. Absent otherwise.
bytesintegerrequiredIts size, once built.
latestobjectrequiredThe newest release, live or not, or null before the first.
idstringrequiredThe release's id.
statusstringrequiredWhere the build is.
Options: building, ready, failed
errorstringWhy it failed. Absent otherwise.
createdAtstringrequiredISO 8601.
readyAtstringrequiredISO 8601, once built.
artifactsarray of objectrequiredOne per version, plus bedrock when the pack has anything that crosses over.
versionstringrequiredA Minecraft version, or bedrock.
statusstringrequiredWhere this build is.
Options: building, ready, failed
errorstringWhy it failed. Absent otherwise.
bytesintegerrequiredIts size, once built.
Error codes
Branch on error.code, never on the message.
invalid_json400The request body wasn't a JSON object.
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.
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.
plan_required403The key is valid, but its account's plan does not include the API.
not_found404No such pack, asset or job.