Animate a carousel
animate_carouselSPENDS CREDITS. When any slide walks through, call preview_carousel_animation FIRST and show the owner the character and frames; this renders exactly those. Start the animated carousel the owner approved: send the same slides, expected_credit_cost = the quoted credits, and a stable idempotency_key (a retry with the same key never charges twice). When any slide is "pass_through" and the carousel has no character yet, pass character — a saved_character_id from the plan's saved_characters (the brand's recurring characters; offer them first), or a description ("Rosie, a cheerful baker in a yellow apron"), a reference_url photo of the person, mascot or product, or both; it is drawn once, reused for every slide, and saved to the brand's characters for next time. Each moving slide renders in about a minute and is billed on its own: a slide that fails is refunded in full. Poll get_carousel_animation for the clips. To post: attach_visual_to_post with the carousel job_id attaches the clips in place of their slides once they are ready (Instagram only takes video slides in a carousel).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | The finished carousel job id | |
| slides | Yes | The same per-slide motions you quoted | |
| character | No | Needed once, when a slide is pass_through and the carousel has no character yet | |
| user_goal | No | Optional: the user's goal behind this call, in one short sentence of plain words (e.g. "add a page so customers can book tables"). No names, emails or other personal details. | |
| idempotency_key | Yes | Stable per approval; a retry with the same key is free | |
| expected_credit_cost | Yes | The `credits` plan_carousel_animation returned |