rreAPI Docs
rreAPI Docs
HomeWelcome

Image

nano-banana-2-litemidjourney-v8flux-2z-imageqwen-image-2midjourney-v7wan-2-7-imagegpt-image-2gpt-image-2-officialgemini-2.5-flash-image-previewgemini-3-pro-image-previewgemini-3.1-flash-image-previewSeedream 5.0 Prodoubao-seedream-5-0-liteimagen-4-0

Audio

Mureka V9 Song APIVocal Remover APIMusic Extractor APIVoice Cleaner APIMultistem Splitter APIVoice Changer API

Video

topaz-video-upscalerkling-3-0-turbokling-3-0music-video-1-0wan-2-7-videokling-motion-controlpixverse-v6Seedance 2.5doubao-seedance-2.0seedance-2-0-minihappyhorse-1-1happyhorse-1.0happyhorse-1.0-officialviduq3grok-imagine-video-1.5-betagrok-imagine-video-1.5-officialgrok-imagine-1.0-videoVeo 3.1gemini-omni

Chat

claude-fable-5minimax-m3deepseek-v4gpt-5.5gpt-5.4claude-opus-4-8claude-opus-4-7claude-sonnet-4-6

Text

ai-essay-writerhumanizeai-text-detector

Tools

enhance-video-1.0
X (Twitter)

kling-3-0

Kuaishou Kling 3.0 on reAPI — async multi-shot video, image-to-video, native multilingual audio, up to 4K, on one OpenAI-compatible endpoint.

Kuaishou's Kling 3.0 on reAPI — one async endpoint for text-to-video, image-to-video (first/last frame), and multi-shot cinematic sequences, with optional native multilingual audio and up to 4K. Submit returns a task_id; poll until ready. See current pricing on the model page.

Quick example

curl https://reapi.ai/api/v1/videos/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-3-0",
    "prompt": "A soft anime-style girl in a field, warm sunset glow, smooth loop",
    "duration": 6,
    "aspect_ratio": "16:9",
    "mode": "pro"
  }'
import requests

resp = requests.post(
    "https://reapi.ai/api/v1/videos/generations",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
    },
    json={
        "model": "kling-3-0",
        "prompt": "A soft anime-style girl in a field, warm sunset glow, smooth loop",
        "duration": 6,
        "aspect_ratio": "16:9",
        "mode": "pro",
    },
    timeout=30,
)
print(resp.json())
const r = await fetch("https://reapi.ai/api/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer YOUR_API_KEY",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    model: "kling-3-0",
    prompt: "A soft anime-style girl in a field, warm sunset glow, smooth loop",
    duration: 6,
    aspect_ratio: "16:9",
    mode: "pro",
  }),
});
console.log(await r.json());
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]any{
        "model":        "kling-3-0",
        "prompt":       "A soft anime-style girl in a field, warm sunset glow, smooth loop",
        "duration":     6,
        "aspect_ratio": "16:9",
        "mode":         "pro",
    })
    req, _ := http.NewRequest("POST",
        "https://reapi.ai/api/v1/videos/generations", bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    out, _ := io.ReadAll(resp.Body)
    fmt.Println(string(out))
}

Submit response

{
  "id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
  "model": "kling-3-0",
  "status": "processing",
  "created_at": 1735000000
}

Poll GET /api/v1/tasks/{id} (see the Tasks reference) until status === "completed". The completed payload's output.video_urls holds the generated video URL.


Authentication

Every call needs a Bearer token. Generate keys at reapi.ai/settings/apikeys.

Authorization: Bearer YOUR_API_KEY

Endpoint

POST /api/v1/videos/generations
GET  /api/v1/tasks/{id}

Submission is async. The POST returns immediately with a task_id; the task endpoint returns the same envelope until completion. Polling does not consume credits.


Modes

There is no separate model id per modality — the modality is implicit in the request shape:

  • Text-to-video — no image_urls. prompt is required.
  • Image-to-video — pass image_urls: index 0 is the start frame, index 1 (optional) is the end frame. Aspect ratio auto-adapts to the images.
  • Multi-shot — set multi_shots: true and provide multi_prompt (per-shot prompts + durations).

The resolution tier (std 720p / pro 1080p / 4K) is the mode field; native audio is the sound toggle.


Request body

model — string, required

Must be kling-3-0.

prompt — string

Up to 2,500 characters. Required for single-shot; superseded by multi_prompt in multi-shot mode.

image_urls — array, optional

First/last frame for image-to-video. Public HTTPS URLs only — base64 / data: URIs are rejected at the gateway. Up to 2 (index 0 = first frame, index 1 = last frame).

duration — integer, default 5

Total video length in seconds, range 3–15. Billed per second.

aspect_ratio — string, default 16:9

One of 16:9, 9:16, 1:1. Ignored (auto-adapted) when image_urls is supplied.

mode — string, default pro

Resolution tier: std (720p), pro (1080p), or 4K.

sound — boolean, default false

Generate synchronized native audio (dialogue, lip sync, ambient sound). Audio tiers cost more per second.

multi_shots — boolean, default false

Enable multi-shot mode (a connected sequence of shots).

multi_prompt — array, optional (required when multi_shots: true)

Up to 5 shots; each item is { "prompt": string, "duration": int } where per-shot duration is 1–12s and prompt is up to 500 chars.

{
  "multi_shots": true,
  "multi_prompt": [
    { "prompt": "a chef plating a dish, close-up", "duration": 4 },
    { "prompt": "pull back to a busy restaurant", "duration": 5 }
  ]
}

kling_elements — array, optional

Up to 3 reusable @-referenced elements. Each item is { "name": string, "description"?: string, "element_input_urls": [string] } with 2–4 image URLs (JPG/PNG). Reference an element in the prompt with @name.

Multi-shot bills the sum of the per-shot durations; single-shot bills the top-level duration.


Pricing

Kling 3.0 bills per second, by resolution tier (mode) and whether audio is on (sound):

credits = ceil(per_second_usd × seconds × 1000)

where 1 credit = $0.001 USD, and seconds is duration (single-shot) or the sum of multi_prompt durations (multi-shot). Higher tiers and audio carry a higher per-second rate. Failed and rejected requests are not charged.

The exact per-second credit cost for each tier surfaces on the model page and through the playground estimator before submit.


Response

The poll envelope returns the video URL in output.video_urls:

{
  "id": "task_019dfd44b7fd74168541552a3260a623",
  "model": "kling-3-0",
  "status": "completed",
  "output": {
    "video_urls": [
      "https://cdn.reapi.ai/...mp4"
    ]
  }
}

Generated URLs expire — mirror them to your own storage if you need long-term retention.


Errors

Failures return the standard reAPI envelope { error: { code, message, request_id } }. Common cases:

  • Invalid input (prompt over 2500 chars, out-of-range duration, a non-HTTPS media URL, more than 2 image_urls, more than 5 shots) → 400.
  • Insufficient credits → 402.
  • Rate limited → 429.

See the full catalog at /docs/api/errors.


Tips

  • Use cinematic language in the prompt (shot type, camera move, lighting) — Kling 3.0 reads it; there is no dedicated camera-control parameter.
  • For sequences, prefer multi-shot over stitching separate requests — characters stay consistent across cuts.
  • For image-to-video, supply both a first and last frame to control the start and end of the motion.
  • Reach for mode: "4K" only when the destination needs it — the per-second rate is highest there.

Related

  • Video generation models
  • Grok Imagine Video 1.5
  • Tasks API
  • Error codes

Table of Contents

Quick example
Submit response
Authentication
Endpoint
Modes
Request body
model — string, required
prompt — string
image_urls — array, optional
duration — integer, default 5
aspect_ratio — string, default 16:9
mode — string, default pro
sound — boolean, default false
multi_shots — boolean, default false
multi_prompt — array, optional (required when multi_shots: true)
kling_elements — array, optional
Pricing
Response
Errors
Tips
Related