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

# Kling O3 Standard Text To Video

> Generate 3–15-second videos from text prompts with Kling O3 Standard. Supports single-shot and multi-shot generation. Explicitly set sound; multi-shot requires audio.

<Tip>
  Submit with your Vidgo API key, then query [task status](/api-manual/task-management/status) using the returned task ID. An optional callback receives the final result. The submit response above is an initial-state illustration, not the completed video response.
</Tip>

## Parameters

Use model `kwaivgi/kling-video-o3-std/text-to-video`. Put generation parameters inside `input`.

* **`prompt`**: Required when multi\_shots=false. Describe the scene, action and camera movement. Use nonblank text, up to 2,500 characters after trimming. Omit prompt when multi\_shots=true.
* **`multi_prompt`**: Required when multi\_shots=true; omit in single-shot mode. Supply at least one shot, each with a nonblank prompt of up to 2,500 characters and an integer duration of 1–12 seconds. Shot durations must sum to the top-level duration (3–15 seconds). Extra fields inside a shot are ignored.
* **`duration`**: Required integer from 3 to 15 seconds. In multi-shot mode, this must equal the sum of all shot durations. Credits are calculated using this value.
* **`multi_shots`**: Required: explicitly send false for a single shot or true for multiple shots. Single-shot mode requires prompt. Multi-shot mode requires multi\_prompt and sound=true, with no nonblank top-level prompt. Omitting this field is an error.
* **`sound`**: Required: explicitly send true to generate audio or false for video without audio. Single-shot mode accepts either value; multi-shot mode requires true.
* **`aspect_ratio`**: Optional: 16:9 (landscape), 9:16 (portrait) or 1:1 (square). Sets the video aspect ratio.

Use standard JSON numbers and booleans. For compatibility, integer strings such as "5" are accepted. Boolean strings true/1/yes/y/on mean true; false/0/no/n/off mean false. These strings are case-insensitive and trimmed. Numeric 1 and 0 are also accepted for boolean fields. Numeric and boolean prompt values are converted to text; 0, false and null are treated as empty. Objects and arrays are not accepted as prompts. Unsupported input fields, including reference\_image\_urls and kling\_elements, are rejected. HTTP(S) URLs must have a hostname and no embedded credentials.

## Pricing

10 credits/s without sound; 13 credits/s with sound. Credits = duration × rate. Failed generation tasks are refunded.

## Default example: A Wrench in Weightlessness

This is the same default example shown on the [model page](https://vidgo.ai/apis/models/kwaivgi/kling-video-o3-std/text-to-video).

```json theme={null}
{
  "model": "kwaivgi/kling-video-o3-std/text-to-video",
  "input": {
    "duration": 5,
    "sound": true,
    "multi_shots": true,
    "multi_prompt": [
      {
        "prompt": "Photoreal cinematic science-fiction inside a compact orbital maintenance module. Medium shot: one adult astronaut with short dark hair, wearing a plain off-white flight suit with orange elbow patches, gently catches a single small silver wrench floating in front of her chest. Her body and the wrench drift in zero gravity. Soft blue Earth light through a round window, warm cabin practicals. Quiet ventilation hum and fabric rustle. Controlled natural movement. No text, logos or watermarks.",
        "duration": 2
      },
      {
        "prompt": "Cut to a close view of the same astronaut's hand and orange elbow patch in the same orbital cabin. She places the same silver wrench onto a dark magnetic tool panel. The wrench attaches with one crisp metallic click; she releases it and her hand floats gently away. Maintain the same lighting, costume and wrench. End on the stationary attached wrench. Only quiet ventilation and the synchronized magnetic click; no music or speech. No text, logos or watermarks.",
        "duration": 3
      }
    ],
    "aspect_ratio": "16:9"
  }
}
```

<video controls playsInline preload="metadata" style={{ width: "100%", height: "auto" }} poster="https://cdn.vidgo.ai/apis/models/kwaivgi/kling-video-o3-std/text-to-video/v1/01/poster.jpg" src="https://cdn.vidgo.ai/apis/models/kwaivgi/kling-video-o3-std/text-to-video/v1/01/output.mp4" />

[Download this video](https://cdn.vidgo.ai/apis/models/kwaivgi/kling-video-o3-std/text-to-video/v1/01/output.mp4)

### Completed result from the status endpoint

`GET /api/generate/status/{task_id}`

The response below records this verified example. For a new generation, query the task ID returned by your own submission.

```json theme={null}
{
  "code": 200,
  "data": {
    "task_id": "57TMAHB6XPG6VHL9",
    "status": "finished",
    "files": [
      {
        "file_type": "video",
        "file_url": "https://cdn.vidgo.ai/apis/models/kwaivgi/kling-video-o3-std/text-to-video/v1/01/output.mp4"
      }
    ],
    "created_time": "2026-09-22T18:37:04",
    "error_message": null,
    "progress": 100
  }
}
```

<Note>
  The API validates prompts up to 2,500 characters. Some multi-shot generation requests have failed when a shot prompt exceeded 512 characters. We recommend keeping each shot prompt within 512 characters; this recommendation does not change the API validation limit.
</Note>


## OpenAPI

````yaml api-manual/video-series/kwaivgi-kling-video-o3-std-text-to-video.json POST /api/generate/submit
openapi: 3.0.0
info:
  title: Vidgo API - Kling O3 Standard Text to Video
  description: >-
    Generate 3–15-second videos from text prompts with Kling O3 Standard.
    Supports single-shot and multi-shot generation. Explicitly set sound;
    multi-shot requires audio.
  version: 1.0.0
servers:
  - url: https://api.vidgo.ai
security:
  - BearerAuth: []
paths:
  /api/generate/submit:
    post:
      tags:
        - Video Series
      summary: Kling O3 Standard Text to Video
      description: >-
        Submit a video generation task. duration, multi_shots and sound must be
        explicitly provided. In multi-shot mode, provide multi_prompt, set
        sound=true and make shot durations sum to duration. Invalid parameters
        are rejected before image upload, task creation or charging.
      operationId: submit_kwaivgi_kling_video_o3_std_text_to_video
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - model
                - input
              additionalProperties: true
              properties:
                model:
                  type: string
                  enum:
                    - kwaivgi/kling-video-o3-std/text-to-video
                  example: kwaivgi/kling-video-o3-std/text-to-video
                  description: >-
                    Vidgo public model ID. Must be
                    `kwaivgi/kling-video-o3-std/text-to-video`.
                input:
                  type: object
                  required:
                    - duration
                    - multi_shots
                    - sound
                  description: >-
                    Video generation parameters. Use standard JSON numbers and
                    booleans. For compatibility, integer strings such as "5" are
                    accepted. Boolean strings true/1/yes/y/on mean true;
                    false/0/no/n/off mean false. These strings are
                    case-insensitive and trimmed. Numeric 1 and 0 are also
                    accepted for boolean fields. Numeric and boolean prompt
                    values are converted to text; 0, false and null are treated
                    as empty. Objects and arrays are not accepted as prompts.
                  properties:
                    prompt:
                      type: string
                      description: >-
                        Required when multi_shots=false. Describe the scene,
                        action and camera movement. Use nonblank text, up to
                        2,500 characters after trimming. Omit prompt when
                        multi_shots=true.
                      maxLength: 2500
                      minLength: 1
                      pattern: \S
                    multi_prompt:
                      type: array
                      items:
                        type: object
                        required:
                          - prompt
                          - duration
                        properties:
                          prompt:
                            type: string
                            description: >-
                              Required nonblank text for this shot, up to 2,500
                              characters after trimming.
                            maxLength: 2500
                            minLength: 1
                            pattern: \S
                          duration:
                            type: integer
                            description: >-
                              Required integer from 1 to 12 seconds for this
                              shot.
                            minimum: 1
                            maximum: 12
                        additionalProperties: true
                      description: >-
                        Required when multi_shots=true; omit in single-shot
                        mode. Supply at least one shot, each with a nonblank
                        prompt of up to 2,500 characters and an integer duration
                        of 1–12 seconds. Shot durations must sum to the
                        top-level duration (3–15 seconds). Extra fields inside a
                        shot are ignored.
                      minItems: 1
                    duration:
                      type: integer
                      description: >-
                        Required integer from 3 to 15 seconds. In multi-shot
                        mode, this must equal the sum of all shot durations.
                        Credits are calculated using this value.
                      minimum: 3
                      maximum: 15
                    multi_shots:
                      type: boolean
                      description: >-
                        Required: explicitly send false for a single shot or
                        true for multiple shots. Single-shot mode requires
                        prompt. Multi-shot mode requires multi_prompt and
                        sound=true, with no nonblank top-level prompt. Omitting
                        this field is an error.
                    sound:
                      type: boolean
                      description: >-
                        Required: explicitly send true to generate audio or
                        false for video without audio. Single-shot mode accepts
                        either value; multi-shot mode requires true.
                    aspect_ratio:
                      type: string
                      description: >-
                        Optional: 16:9 (landscape), 9:16 (portrait) or 1:1
                        (square). Sets the video aspect ratio.
                      enum:
                        - '1:1'
                        - '16:9'
                        - '9:16'
                  additionalProperties: false
                  oneOf:
                    - properties:
                        multi_shots:
                          enum:
                            - false
                      required:
                        - prompt
                      not:
                        required:
                          - multi_prompt
                    - properties:
                        multi_shots:
                          enum:
                            - true
                        sound:
                          enum:
                            - true
                      required:
                        - multi_shots
                        - multi_prompt
                      not:
                        required:
                          - prompt
                callback_url:
                  type: string
                  nullable: true
                  description: >-
                    Optional public HTTP(S) endpoint for task completion
                    notifications. HTTPS is recommended. Omit, use null, or use
                    an empty string to disable callbacks.
              description: >-
                Keep model and callback_url at the root. Unknown root fields are
                ignored; unsupported input fields are rejected.
            examples:
              basic:
                summary: A Wrench in Weightlessness
                value:
                  model: kwaivgi/kling-video-o3-std/text-to-video
                  input:
                    duration: 5
                    sound: true
                    multi_shots: true
                    multi_prompt:
                      - prompt: >-
                          Photoreal cinematic science-fiction inside a compact
                          orbital maintenance module. Medium shot: one adult
                          astronaut with short dark hair, wearing a plain
                          off-white flight suit with orange elbow patches,
                          gently catches a single small silver wrench floating
                          in front of her chest. Her body and the wrench drift
                          in zero gravity. Soft blue Earth light through a round
                          window, warm cabin practicals. Quiet ventilation hum
                          and fabric rustle. Controlled natural movement. No
                          text, logos or watermarks.
                        duration: 2
                      - prompt: >-
                          Cut to a close view of the same astronaut's hand and
                          orange elbow patch in the same orbital cabin. She
                          places the same silver wrench onto a dark magnetic
                          tool panel. The wrench attaches with one crisp
                          metallic click; she releases it and her hand floats
                          gently away. Maintain the same lighting, costume and
                          wrench. End on the stationary attached wrench. Only
                          quiet ventilation and the synchronized magnetic click;
                          no music or speech. No text, logos or watermarks.
                        duration: 3
                    aspect_ratio: '16:9'
              callback:
                summary: A Wrench in Weightlessness with callback
                value:
                  model: kwaivgi/kling-video-o3-std/text-to-video
                  input:
                    duration: 5
                    sound: true
                    multi_shots: true
                    multi_prompt:
                      - prompt: >-
                          Photoreal cinematic science-fiction inside a compact
                          orbital maintenance module. Medium shot: one adult
                          astronaut with short dark hair, wearing a plain
                          off-white flight suit with orange elbow patches,
                          gently catches a single small silver wrench floating
                          in front of her chest. Her body and the wrench drift
                          in zero gravity. Soft blue Earth light through a round
                          window, warm cabin practicals. Quiet ventilation hum
                          and fabric rustle. Controlled natural movement. No
                          text, logos or watermarks.
                        duration: 2
                      - prompt: >-
                          Cut to a close view of the same astronaut's hand and
                          orange elbow patch in the same orbital cabin. She
                          places the same silver wrench onto a dark magnetic
                          tool panel. The wrench attaches with one crisp
                          metallic click; she releases it and her hand floats
                          gently away. Maintain the same lighting, costume and
                          wrench. End on the stationary attached wrench. Only
                          quiet ventilation and the synchronized magnetic click;
                          no music or speech. No text, logos or watermarks.
                        duration: 3
                    aspect_ratio: '16:9'
                  callback_url: https://your-domain.com/callback
      responses:
        '200':
          description: Task submitted
          content:
            application/json:
              schema:
                type: object
                required:
                  - code
                  - data
                properties:
                  code:
                    type: integer
                    enum:
                      - 200
                  data:
                    type: object
                    required:
                      - task_id
                      - status
                      - created_time
                    properties:
                      task_id:
                        type: string
                      status:
                        type: string
                        enum:
                          - not_started
                          - running
                          - finished
                          - failed
                      created_time:
                        type: string
                        format: date-time
              example:
                code: 200
                data:
                  task_id: task-submitted-example
                  status: not_started
                  created_time: '2026-09-22T00:00:00Z'
        '400':
          description: >-
            Invalid input, unsupported tier, inaccessible media, or insufficient
            credits
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '401':
          description: Invalid credentials
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '403':
          description: Access denied
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '404':
          description: Unknown or disabled model
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '408':
          description: Request timed out
          content:
            text/plain:
              schema:
                type: string
              example: Request timeout
        '422':
          description: Invalid JSON or non-object request body
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '429':
          description: Rate or API key credit limit exceeded
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '500':
          description: Internal error
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '502':
          description: Unable to create the video generation task
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
        '503':
          description: This model is currently unavailable
          content:
            application/json:
              schema:
                type: object
                required:
                  - detail
                properties:
                  detail:
                    oneOf:
                      - type: string
                      - type: object
                        additionalProperties: true
                      - type: array
                        items: {}
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: Use VIDGO_API_KEY.

````