---
title: "Animate existing image attachments into video(s) (v2)"
method: POST
path: "/v2/chats/{id}/animate"
tags: ["Chats v2"]
---

# Animate existing image attachments into video(s) (v2)

`POST /v2/chats/{id}/animate`

## Path parameters

- `id` string, required

## Request body

- V2AnimateAttachmentsRequestDto
  - `clientId` string — Client-provided message ID for idempotency
  - `attachmentIds` string[], required — IDs of image attachments to animate
  - `promptOverride` string — Optional prompt override for animation
  - `offerSessionId` string — Optional offer session id for analytics correlation

## Response `200`

- V2SendMessageResponseDto
  - `userMessage` MessageDto, required
    - `id` string, required — The ID of the message
    - `chatId` string, required — The ID of the chat
    - `text` string, required — The text of the message
    - `status` 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required — The status of the message
    - `isFromUser` boolean, required — Whether the message is from the user
    - `isFromSystem` boolean, required — Whether the message is a system message
    - `isRead` boolean, required — Whether the message is read
    - `createdAt` string, date-time, required — The date and time the message was created
    - `attachments` AttachmentDto[], required — The attachments of the message
      - `id` string, required — The ID of the attachment
      - `messageId` string, required — The ID of the message
      - `status` 'IN_QUEUE' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required — The status of the attachment. IN_QUEUE = scene generation is still in the Visual Director (prompt-building) phase; IN_PROGRESS = media is rendering.
      - `type` string, required — The type of the attachment
      - `url` string, required — The URL of the attachment
      - `videoUrl` string, nullable, required — The video URL of the attachment
      - `blurredUrl` string, nullable, required — Pre-blurred stand-in to render while the media is gated. Empty when the media has no teaser.
      - `explicit` boolean, required — Whether the attachment is explicit
      - `mimeType` string, required — The MIME type of the attachment
      - `prompt` string, nullable, required — The prompt used for generation or gift description
      - `rephrasedPrompt` string, nullable, required — The raw rephrased prompt before composition
      - `source` 'chat_ask' | 'scene_maker' | 'chat_animate_image' | 'chat_gift' | 'user_photo' | 'voice_over' | 'voice_message' | 'ai_initiated' | 'studio' | 'demo_subscription_reward' | 'upscale', nullable, required — The source of the attachment (e.g., chat_ask, ai_initiated)
      - `durationSeconds` number, nullable, required — Duration in seconds for audio/video attachments
      - `canRetry` boolean, required — Whether "retry generation" is still available for this attachment (failed image or video with retries left). False once the retry limit is spent — the client should stop offering the button.
      - `retryCount` number, required — Manual retries already spent on this attachment
    - `messageType` 'TEXT' | 'IMAGE_REQUEST' | 'VIDEO_REQUEST' | 'ATTACHMENT' | 'ANIMATE_REQUEST', required — The type of the message
    - `moderationStatus` 'NONE' | 'ALLOWED' | 'BLOCKED' | 'FAILED_OPEN' | 'FLAGGED', required — Moderation verdict. BLOCKED = hidden from the character (still shown to the user with a notice); FAILED_OPEN = classifier failed and the message was let through.
    - `moderationFeedbackSent` boolean, required — Whether the user submitted feedback on a blocked message.
    - `isDeleted` boolean — Soft-deleted flag. Emitted true so the client removes a message (e.g. a torn-down typing placeholder).
    - `idempotencyKey` string, required — The idempotency key of the message
    - `suggestions` string[] — Suggested follow-up responses for the user
    - `giftSuggestion` object — Gift suggestion from the AI companion
    - `actions` string[] — Structured UI actions for the client to render
  - `balance` number, required — User coin balance after operation

---

[API](https://skmtc.dev/miaai/apis/backend-template-api.md) · [All operations](https://skmtc.dev/miaai/apis/backend-template-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/miaai/backend-template-api/revisions/2a8d88a5124f/schema)
