Packs
List the versions a generation drew
A block, an item sprite or an icon generated from words is drawn four times and the best is used. This lists the four: which one the judge picked, which one the asset is now, and the judge's reason. Anybody who can see the asset gets the list; looking at them (GET .../candidates/{index}) and switching to one (POST .../candidates/{index}/use) are part of the paid plans (canChoose). Empty for an asset with none (uploaded, drawn by hand, or generated before 2026-11-05).
/packs/{pack}/assets/{kind}/{name}/candidatesPath 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.
canChoosebooleanrequiredWhether this pack's plan may look at and switch between them.
judgePickintegerrequiredThe index the judge picked, or null when there are none.
whystringThe judge's reason, one sentence, or null.
candidatesarray of objectrequiredIn the order drawn.
indexintegerrequiredIts number, for the two calls below.
currentbooleanrequiredWhether the asset is this one now.
judgePickbooleanrequiredWhether the judge picked it.
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.
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.