> ## Documentation Index
> Fetch the complete documentation index at: https://docs.creatify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Kling O3 Standard (edit video) · Video to video

> Style transfer tool, easily transforms videos into anime/sketch styles or edits elements.

[← Kling](/api-documentation/ai-generation/models/kling)

**Model name:** `kling-video/o3/standard/video-to-video/edit`\
**Generation type:** `video_to_video`\
**Endpoint:** [`POST /api/asset_generator/`](/api-reference/ai-generation/post-ai-generation)

## Pricing

**7.5** credits per output.

Prices are per output. When a request asks for several outputs, the charge is this price times the number of outputs.

## Quick start

The example uses sample media from our CDN. Swap in publicly accessible URLs for your own files.

<CodeGroup>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.creatify.ai/api/asset_generator/ \
    --header 'Content-Type: application/json' \
    --header 'X-API-ID: your-api-id' \
    --header 'X-API-KEY: your-api-key' \
    --data '{
      "model_name": "kling-video/o3/standard/video-to-video/edit",
      "input_params": {
        "prompt": "Change the setting to a bright café while she keeps talking.",
        "video_url": "https://d35ghwdno3nak3.cloudfront.net/tutorial/asset-generator/sample-video.mp4"
      }
    }'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.creatify.ai/api/asset_generator/",
      headers={"X-API-ID": "your-api-id", "X-API-KEY": "your-api-key"},
      json={
          "model_name": "kling-video/o3/standard/video-to-video/edit",
          "input_params": {
              "prompt": "Change the setting to a bright café while she keeps talking.",
              "video_url": "https://d35ghwdno3nak3.cloudfront.net/tutorial/asset-generator/sample-video.mp4"
          },
      },
  )
  print(response.json()["id"])
  ```
</CodeGroup>

## Input parameters

Send these fields in `input_params`.

<ParamField body="prompt" type="string" required>
  Take @Element1, @Element2 to reference elements and @Image1, @Image2 to reference images in order.

  Maximum characters: `2500`.
</ParamField>

<ParamField body="video_url" type="string" required>
  Reference video URL. Only .mp4/.mov formats supported, 3-10 seconds duration, 720-2160px resolution, max 200MB.
</ParamField>

<ParamField body="elements" type="array">
  Elements (characters/objects) to include. Reference in prompt as @Element1, @Element2, etc. Maximum 4 total (elements + reference images) when using video.
</ParamField>

<ParamField body="image_urls" type="string[]">
  Reference images for style/appearance. Reference in prompt as @Image1, @Image2, etc. Maximum 4 total (elements + reference images) when using video.

  Maximum items: `4`.
</ParamField>

<ParamField body="keep_audio" type="boolean" default={false}>
  Whether to keep the original audio from the video.
</ParamField>

<Accordion title="Complete JSON schema">
  ```json theme={null}
  {
    "$schema": "http://json-schema.org/draft-07/schema#",
    "required": [
      "prompt",
      "video_url"
    ],
    "properties": {
      "prompt": {
        "type": "string",
        "title": "Prompt",
        "maxLength": 2500,
        "description": "Take @Element1, @Element2 to reference elements and @Image1, @Image2 to reference images in order.",
        "x-support-types": [
          "mentions"
        ]
      },
      "elements": {
        "type": "array",
        "title": "Elements",
        "description": "Elements (characters/objects) to include. Reference in prompt as @Element1, @Element2, etc. Maximum 4 total (elements + reference images) when using video.",
        "x-mention-prefix": "element",
        "min_width": 300,
        "min_height": 300,
        "max_file_size": 10485760,
        "min_aspect_ratio": 0.4,
        "max_aspect_ratio": 2.5
      },
      "video_url": {
        "type": "string",
        "title": "Video Url",
        "max_width": 2160,
        "min_width": 720,
        "max_height": 2160,
        "max_length": 10,
        "min_height": 720,
        "min_length": 3,
        "description": "Reference video URL. Only .mp4/.mov formats supported, 3-10 seconds duration, 720-2160px resolution, max 200MB.",
        "max_duration": 9.99,
        "min_duration": 3,
        "max_file_size": 209715200
      },
      "image_urls": {
        "type": "array",
        "items": {
          "type": "string",
          "limit_description": "Max file size: 10.0MB, Min width: 300px, Min height: 300px, Min aspect ratio: 0.40, Max aspect ratio: 2.50, Timeout: 20.0s"
        },
        "title": "Image Urls",
        "timeout": 20,
        "maxItems": 4,
        "min_width": 300,
        "min_height": 300,
        "description": "Reference images for style/appearance. Reference in prompt as @Image1, @Image2, etc. Maximum 4 total (elements + reference images) when using video.",
        "max_file_size": 10485760,
        "max_aspect_ratio": 2.5,
        "min_aspect_ratio": 0.4
      },
      "keep_audio": {
        "type": "boolean",
        "title": "Keep Audio",
        "default": false,
        "description": "Whether to keep the original audio from the video.",
        "x-advance-settings": true
      }
    }
  }
  ```
</Accordion>

## Response

The request returns the task with `status: "initializing"`. Poll [GET /api/asset\_generator/\{id}/](/api-reference/ai-generation/get-ai-generation-) until `status` is `done` or `failed`, or pass a `webhook_url` to be notified. A finished task lists its files in `assets` and the credits it charged in `credits_used`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.