Generating
Design a Loading Screen
Designs a Loading Screen from words: the screen Minecraft shows while packs load. Describe the server or the mood (a spooky Halloween server called Grimfall, snow for a winter event); the designer picks the background, the effect, the title and subtitle, the colours and the bar. It does not draw a picture logo: write one into the spec with update_loading_screen if you want one. Finishes before it answers, so there is no job to wait on, and becomes the one the pack shows. A pack holds up to 24. 5 credits, flat, given back if it fails. For a free one, create_loading_screen.
/packs/{pack}/loading-screensPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
Body
promptstringrequiredmax 600 charactersWhat it is for, and how it should look.
namestringmax 50 charactersYour label. Absent uses the name the designer gives it.
Response · 201
Designed and saved.
packstringrequiredThe pack.
statusstringready, when it was just made or changed by AI.
loadingScreenobjectrequiredThe Loading Screen, with spec.
idstringrequiredIts id in the pack.
namestringrequiredIts name.
activebooleanrequiredWhether it is the one the pack shows. A pack shows one.
effectstringrequiredIts first effect, or none.
Options: none, snow, rain, stars, embers, sparkles, fireflies, bubbles, petals, hearts, confetti
effectsarray of stringrequiredEvery effect, in the order they are drawn.
layersintegerrequiredHow many words and pictures the logo has.
logostringrequiredWhose logo: its own (custom), Minecraft's (vanilla) or none.
Options: custom, vanilla, none
titlestringrequiredThe words of the logo's first words layer.
presetstringThe ready-made look it started from, when it did.
updatedAtstringrequiredISO 8601.
specobjectThe design, as layers: background {style solid|vertical|radial|diagonal|stripes|checker|sunburst, color (the whole screen, the top, the edges, or a pattern's first colour), color2 (the bottom, the middle, or the pattern's second), glow (a soft light behind the logo, or null)}; effects, up to 3 drawn in order: [{id, kind snow|rain|stars|embers|sparkles|fireflies|bubbles|petals|hearts|confetti, color, color2 (confetti's second paper, a bubble's glint, a petal's or heart's shading), amount 0-1}]; logo {kind custom|vanilla|none, layers, up to 6 stacked top to bottom: [{id, type text, text (up to 30 characters), font rank (chunky capitals, the default)|classic (square capitals)|tiny (has lower case), size 1-4 (a title is 2, a line under it 1), color, color2 (the bottom of a gradient, or null), outline (a 1px line round the letters, or null), bold, spacing 0-3} or {id, type picture, picture: {width up to 128, height up to 64, palette (up to 12 colours), pixels (one hex digit per pixel, row by row: 0 transparent, 1-c the palette)}}, two pictures at most], shadow (a shadow under every layer, or null), shadowDepth 1-4 (1 is a drop shadow, more a solid 3D edge), layout stacked|side (the pictures beside the words), offset -1 to 1 (the logo up or down from the middle), scale 0.5-2}; bar {style solid|gradient|stripes|segments, frame, fill, fill2 (the gradient's far end or the second stripe), track (the empty part, or null)}. Colours are #rrggbb. Send effects or logo.layers whole: a layer keeps its id from get_loading_screen. The older single effect and a logo's title, subtitle and picture fields are still accepted and change the first effect, the first two words layers and the first picture. Anything left out keeps its value (on a new screen, the default look); anything out of range is brought back into it. Send it back changed to update_loading_screen. Absent from the listing.
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.
insufficient_credits402Not enough AI Credits to run this. Nothing was started or charged.
account_suspended403The account is suspended, so its keys open nothing. message says until when, if the suspension has an end date.
asset_limit_reached403The pack is at its asset limit.
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.