Video generation

Kling 3.0 Omni video

$0.18 per second of videovideo.kling

Animate a still image you supply into a 720p video with native audio using Kling 3.0 Omni: the picture is the first frame, the prompt says what happens next.

Clips run 3 to 15 seconds. Returns the URL of the generated MP4. That URL is temporary: Goro holds a run's results for 24 hours and nothing guarantees the file outlives that, so collect what you need within 24 hours.

What a call costs

Billed on the exact size of your request, minimum $0.0020 per call.

a price before every call. failed calls are never charged.

When to use it

Use when you have the exact frame the video must start from (a product shot, a character, a location) and want it brought to life with sound: an ad still that needs motion, a portrait that should turn and speak, a mockup that should be handled. Better at keeping the starting image intact than the cheaper models. To send a local or private image, upload it first (POST /v1/uploads, or create_upload over MCP, or goro run --image) and pass the handle as image_handle. Billed per second of video you ask for.

Inputs

Kling 3.0 Omni video takes 7 fields, 1 of them required. Anything you leave out falls back to the tool's own default.

FieldTypeRequiredWhat it does
promptstringyesHow the image should move. Describe the action, the camera move and any dialogue or sound; Kling generates matching audio.
audiobooleanoptionalFixed on. Native audio is part of what this endpoint quotes; a silent video would be a different price.
durationintegeroptionalLength of the generated video in seconds. This is what you are billed on, and it is the only field that changes the price.
image_urlsarray of stringoptionalOne public http or https link to the starting image (JPEG, PNG or WEBP, up to 10 MB). Use this when the image is ALREADY published somewhere; the output URL of an image endpoint works directly. For a file that is not already public, send image_handle instead and it never has to be published anywhere. Exactly one of image_handle, image_urls and image_base64 is required.
resolutionstringoptionalFixed at 720p. Resolution changes the price per second, and this endpoint quotes one exact rate, so 1080p and 4k would get their own endpoints.
image_base64stringoptionalOnly for a SMALL image (under 3 MB) or a caller that cannot run a shell command. The image inline, as base64 of the file's own bytes; a data:image/png;base64, prefix is accepted and its declared type ignored. Understand the cost before choosing it: this string is part of the request, and on an MCP call the request IS the tool arguments, which pass through the model's context window. A 3 MB photograph is 4 MB of base64, on the order of a million tokens, and in practice it is truncated and the run fails looking like file corruption. Do not downscale an image to fit here: use image_handle, which takes up to 10 MB and keeps the file out of the conversation entirely. JPEG, PNG or WEBP. Exactly one of image_handle, image_urls and image_base64 is required.
image_handlestringoptionalThe RIGHT WAY to send a local or private image. Upload the file first with POST /v1/uploads (or the create_upload MCP tool, or the CLI's --image flag, which does the whole thing for you) and put the short handle it returns here. The file goes straight from you to a private bucket: it never passes through a tool call, so it never passes through a model's context window, and up to 10 MB is fine. Nothing is published. The handle is usable for 10 minutes after the upload lands and the file is deleted 30 minutes after that. JPEG, PNG or WEBP. Exactly one of image_handle, image_urls and image_base64 is required.

How to call it

Connect once and your agent can reach Kling 3.0 Omni video the same way it reaches everything else in the catalog. Add Goro as an MCP connector, or paste the setup line into an agent that reads skills.

MCP

Add this server in Claude, Claude Code, or any MCP client.

https://mcp.usegoro.ai/mcp

Skill

One line in your agent's chat. It sets itself up.

set up https://usegoro.ai/SKILL.md

Or plain HTTP

POST /v1/run

{
  "endpoint": "video.kling",
  "input": {
    "audio": true,
    "prompt": "The woman turns to the window and smiles as the curtain lifts in a breeze.",
    "duration": 5,
    "resolution": "720p"
  }
}

Run Kling 3.0 Omni video from your agent.

One balance for every tool in the catalog. Start with Build, $25 of credit for $19 a month.

Get started