Packs
List an asset's versions
An asset's history card: the original, then a version for every AI edit and regenerate since, oldest first, the last being what it is now. Kept for blocks, item sprites, icons and models. Download one with GET .../versions/{version} and go back to it with POST .../versions/{version}/restore.
/packs/{pack}/assets/{kind}/{name}/versionsPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
kindstringrequiredThe asset's kind from the listing.
Options: texture, model, font, sound
namestringrequiredThe asset's name from the listing.
Response · 200
The versions.
packstringrequiredThe pack.
versionsarray of objectrequiredOldest first.
idstringrequiredPass as {version}.
atstringrequiredISO 8601.
actionstringrequiredWhat made it.
Options: original, iterate, animate, regenerate
instructionstringrequiredThe Edit with AI instruction behind it. Null for the original and a regenerate.
currentbooleanrequiredWhether this is what the asset is now.
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.
account_suspended403The account is suspended, so its keys open nothing. message says until when, if the suspension has an end date.
plan_required403The key is valid, but its account's plan does not include the API.
not_found404No such pack, asset or job.