Generating
Animate a vehicle and its riders
The vehicle editor's Animate everything: one run that animates the vehicle's own parts and a rider in each seat on one clock, so a paddle and the arms holding it move together. Each rider's motion becomes that seat's emote for the state, and the vehicle's becomes its own animation; both are wired into the settings.
Takes minutes. Charged as an animation, refunded if it fails. One AI edit at a time per model: a second answers already_running.
plan: true also sets the vehicle up first from its geometry (how it moves, a hitbox, seats, a couple of particle emitters), which is the quickest way from a plain model to something rideable.
/packs/{pack}/vehicles/{model}/rigPath parameters
packstringrequiredThe pack's slug, as returned by the packs endpoints.
modelstringrequiredThe vehicle's name from the listing.
Body
instructionstringmax 600 charactersHow it should move. Absent lets it decide from the model.
charactersinteger1–8How many riders to animate, when the vehicle has no seats yet.
planbooleandefault falseSet the vehicle up from its geometry first.
statesarray of stringOnly these states. Absent animates every one it can.
Response · 202
Accepted. Poll job until it leaves generating, then read the vehicle again.
idstringrequiredThe vehicle's name.
typestringrequiredAlways vehicle.
kindstringrequiredAlways model.
statusstringrequiredAlways generating.
packstringrequiredThe pack.
jobstringrequiredPoll this at GET /jobs/{job}.
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 is on Starter. The API needs a paid plan.
not_found404No such pack, asset or job.
already_running409An AI edit or generation of that asset is still running. Wait for its job, then send the edit again.
not_a_vehicle409The model is not a vehicle yet. Make it one with POST /packs/{pack}/vehicles/{model}.