---
title: "Submit a MotionMockups AI Request"
method: POST
path: "/motion-mockups/submit"
---

# Submit a MotionMockups AI Request

`POST /motion-mockups/submit`

Queue a video generation request for the provided image and return a `request_id` to poll.

Provide your own `prompt` for full control, or omit it to let the API generate a prompt from the image (set `skip_discovery: true` to skip auto-prompting and use a neutral default instead). Allowed `duration` and `aspect_ratio` values depend on the selected `model` — see `GET /motion-mockups/models`.

## Headers

- `Accept` 'application/json', required
- `x-api-key` string, required

## Request body

- object
  - `start_image_url` string, uri, required — Publicly accessible URL of the source image to animate.
  - `model` 'kling_v2.6' | 'kling_v3_pro' — The MotionMockups AI model to use. Defaults to the standard model when omitted.
  - `prompt` string — Optional text prompt describing the desired video. When omitted, a prompt is generated from the image.
  - `negative_prompt` string — Optional description of what to avoid in the generated video.
  - `duration` integer — Video length in seconds. Allowed values depend on the selected model (see `GET /motion-mockups/models`). Defaults to the model's default duration.
  - `aspect_ratio` string — Output aspect ratio. Only supported by some models, with a model-specific set of allowed values (see `GET /motion-mockups/models`).
  - `generate_audio` boolean — Whether to also generate audio. Increases the credit cost by a model-specific multiplier.
  - `skip_discovery` boolean — When `true` and no `prompt` is provided, skip image auto-prompting and use a neutral default prompt.

## Response `200`

Request successfully queued.

- object
  - `data` object
    - `request_id` string — Identifier used to poll the request status.
    - `status` string — Initial queue status.
    - `model` string
    - `credits` integer — Credits reserved for this request.
    - `status_url` string — Convenience URL for polling this request's status.
  - `success` boolean
  - `message` string

## Other responses

- `400` — Bad request due to invalid input parameters.
- `401` — Unauthorized request, invalid or missing API key.
- `403` — Insufficient credits, or no active workspace for the API key.
- `422` — Validation failed.
- `500` — Failed to submit the request to the generation service.

---

[API](https://skmtc.dev/dynamicmockups/apis/dynamic-mockups-mockanything-ai-api.md) · [All operations](https://skmtc.dev/dynamicmockups/apis/dynamic-mockups-mockanything-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/dynamicmockups/dynamic-mockups-mockanything-ai-api/revisions/5582facc8ca8/schema)
