Runware
Runware serves 5 video models on LLM API from ByteDance and Black Forest Labs.
Models and prices
Prices when Runware serves the request.
No Runware model matches your search.
Video 5
Price per second of video; a range covers its resolutions
dreamina-seedance-2-5-260628 | $0.112–0.625 | Text, Image, Reference | 480p–1080p |
|---|---|---|---|
dreamina-seedance-2-0-mini-260615 | $0.036–0.081 | Text, Image, Reference | 480p–720p |
dreamina-seedance-2-0-fast-260128 | $0.06–0.13 | Text, Image, Reference | 480p–720p |
dreamina-seedance-2-0-260128 | $0.07–0.78 | Text, Image, Reference | 480p–4k |
flux-3-video | $0.17–0.29 | Text, Image | 720p–1080p |
Send requests to Runware
Use the model ID as it is: video, audio and embedding requests take no provider prefix.
Example: Dreamina-Seedance-2.5
POST /v1/videosVideo jobs run in the background: create one, poll it, then download the file.Videos docs
import os
import time
from openai import OpenAI
client = OpenAI(
base_url="https://api.llmapi.ai/v1",
api_key=os.environ["LLMAPI_KEY"],
)
video = client.videos.create(
model="dreamina-seedance-2-5-260628",
prompt="A paper boat drifting down a rainy street",
)
while video.status in ("queued", "in_progress"):
time.sleep(10)
video = client.videos.retrieve(video.id)
if video.status == "failed":
raise RuntimeError(video.error)
client.videos.download_content(video.id).write_to_file("video.mp4")import fs from "node:fs";
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.llmapi.ai/v1",
apiKey: process.env.LLMAPI_KEY,
});
let video = await client.videos.create({
model: "dreamina-seedance-2-5-260628",
prompt: "A paper boat drifting down a rainy street",
});
while (video.status === "queued" || video.status === "in_progress") {
await new Promise((r) => setTimeout(r, 10_000));
video = await client.videos.retrieve(video.id);
}
if (video.status === "failed") throw new Error(video.error?.message);
const content = await client.videos.downloadContent(video.id);
fs.writeFileSync("video.mp4", Buffer.from(await content.arrayBuffer()));curl https://api.llmapi.ai/v1/videos \
-H "Authorization: Bearer $LLMAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-5-260628",
"prompt": "A paper boat drifting down a rainy street"
}'
# Poll GET https://api.llmapi.ai/v1/videos/{id} until "completed",
# then download GET https://api.llmapi.ai/v1/videos/{id}/contentPrices synced October 27, 2026.