Unified AI API for Video, Music, Image & LLMs
One API key for 240+ AI models: video, image, music and LLM APIs. Use Claude Code, Codex and Cursor. Pay as you go.
Featured
Made with RunAPI
Wide Open Sky
Suno
Natural TTS voice
Fish Audio
Choosing a video model? Compare Seedance 2.0, Kling 3.0, and Veo 3.1 APIs
200+ Models · 10+ AI services, unified under one API
Why developers choose RunAPI
The boring parts of multi-model AI infrastructure, handled.
All models, one API
Access video, music, image, and LLM models through a single API key — including Suno (no official API available elsewhere) and Kling video generation.
Production ready
Built for production workloads. Async task management, webhook callbacks, automatic retries, and predictable credit-based billing. SDKs in Python, Node.js, PHP, Java, Ruby, and Go.
Transparent pricing
Pay only for what you use. No subscriptions, no hidden fees. See exactly what each generation costs before you call the API.
Endpoint code examples
curl -X POST https://runapi.ai/api/v1/kling/text_to_video \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"model":"kling-v3-turbo-text-to-video","prompt":"A paper kite flying above a quiet coastal town at sunrise","duration_seconds":5,"aspect_ratio":"16:9","output_resolution":"720p"}'
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
model="kling-v3-turbo-text-to-video",
prompt="A paper kite flying above a quiet coastal town at sunrise",
duration_seconds=5,
aspect_ratio="16:9",
output_resolution="720p"
)
import { KlingClient } from "@runapi.ai/kling";
const client = new KlingClient({ apiKey: process.env.RUNAPI_API_KEY });
const task = await client.textToVideo.create({
"model": "kling-v3-turbo-text-to-video",
"prompt": "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"output_resolution": "720p"
});
package main
import (
"context"
"log"
"os"
"github.com/runapi-ai/core-sdk/go/option"
kling "github.com/runapi-ai/kling-sdk/go/kling"
)
func main() {
client, err := kling.NewClient(option.WithAPIKey(os.Getenv("RUNAPI_API_KEY")))
if err != nil {
log.Fatal(err)
}
task, err := client.TextToVideo.Create(context.Background(), kling.TextToVideoParams{
Model: kling.TextToVideoModel("kling-v3-turbo-text-to-video"),
Prompt: "A paper kite flying above a quiet coastal town at sunrise",
DurationSeconds: 5,
AspectRatio: "16:9",
OutputResolution: kling.KlingTextToVideoOutputResolution("720p"),
})
if err != nil {
log.Fatal(err)
}
_ = task
}
require "runapi/kling"
client = RunApi::Kling::Client.new(api_key: ENV.fetch("RUNAPI_API_KEY"))
task = client.text_to_video.create(
model: "kling-v3-turbo-text-to-video",
prompt: "A paper kite flying above a quiet coastal town at sunrise",
duration_seconds: 5,
aspect_ratio: "16:9",
output_resolution: "720p"
)
<?php
require __DIR__ . '/vendor/autoload.php';
use RunApi\Core\ClientOptions;
use RunApi\Kling\KlingClient;
$client = new KlingClient(new ClientOptions(apiKey: getenv('RUNAPI_API_KEY')));
$task = $client->textToVideo->create([
"model" => "kling-v3-turbo-text-to-video",
"prompt" => "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds" => 5,
"aspect_ratio" => "16:9",
"output_resolution" => "720p"
]);
{
"billing": {
"refund": null,
"reservation": null,
"settlement": null
},
"id": "tsk_reference_demo",
"status": "completed",
"videos": [
{
"url": "https://file.runapi.ai/reference-video.mp4"
}
]
}
HOW IT WORKS
Three Steps to Your First Generation
-
Get an API Key
Sign up and generate a free API key from the dashboard. No credit card required.
-
Pick a Model
Browse the model catalog, choose by modality and provider, and copy the model ID.
-
Call the API
Send a POST request with your prompt and model ID. RunAPI routes it to the provider, manages the async lifecycle, and returns structured JSON.
Developer Tools
Give Claude Code, Codex, Gemini CLI, and other coding agents access to 200+ models through MCP server or installable skills.
npx -y @runapi.ai/mcp
One API for Every AI Model
Three lines of code to generate a video, create music, or produce an image.
Playground
Sign in to generate with RunAPI.
Your result will appear here
Start building in minutes
Call the REST endpoint directly, use an SDK, or let your coding agent do it.
POST /api/v1/kling/text_to_video
GET /api/v1/kling/text_to_video/{task_id}
POST /v1/chat/completions
GET /api/v1/me/balance
curl -X POST https://runapi.ai/api/v1/kling/text_to_video \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"model":"kling-v3-turbo-text-to-video","prompt":"A paper kite flying above a quiet coastal town at sunrise","duration_seconds":5,"aspect_ratio":"16:9","output_resolution":"720p"}'
import os
from runapi.kling import KlingClient
client = KlingClient(api_key=os.environ["RUNAPI_API_KEY"])
task = client.text_to_video.create(
model="kling-v3-turbo-text-to-video",
prompt="A paper kite flying above a quiet coastal town at sunrise",
duration_seconds=5,
aspect_ratio="16:9",
output_resolution="720p"
)
import { KlingClient } from "@runapi.ai/kling";
const client = new KlingClient({ apiKey: process.env.RUNAPI_API_KEY });
const task = await client.textToVideo.create({
"model": "kling-v3-turbo-text-to-video",
"prompt": "A paper kite flying above a quiet coastal town at sunrise",
"duration_seconds": 5,
"aspect_ratio": "16:9",
"output_resolution": "720p"
});
claude mcp add runapi -s user -- npx -y @runapi.ai/mcp
codex mcp add runapi -- npx -y @runapi.ai/mcp
gemini mcp add runapi npx -y @runapi.ai/mcp
What Developers Build with RunAPI
AI-Powered Apps
Ship image, video, and music generation into your product without managing provider accounts. One API key, one billing dashboard, one webhook format.
Agent Workflows
Give Claude Code, Codex, Gemini CLI, and other coding agents access to 240+ models through MCP server or installable skills.
Batch Media Pipelines
Generate thousands of images, videos, or audio files with async task management and webhook callbacks. Poll or wait — the CLI and SDKs handle both.
Multi-Model Prototyping
Compare output quality across providers without separate signups. Switch from Kling to Veo to Seedance by changing one parameter.
Everything You Need to Manage API Access
Give every project its own API key, budget, and permissions. Monitor usage across your organization in real time.
Production ready
Built for production workloads. Async task management, webhook callbacks, automatic retries, and predictable credit-based billing. SDKs in Python, Node.js, PHP, Java, Ruby, and Go.
Access Control
Restrict keys to specific models or modalities. Revoke instantly without affecting other keys. Set expiration dates for temporary access.
Usage Analytics
The team dashboard brings API keys, usage, cost tracking, and access status into one workspace.
Building with a team?
We're here to help with enterprise setup, integrations, and technical questions.
RunAPI vs Alternatives
| Feature | RunAPI | OpenRouter | Direct API |
|---|---|---|---|
| Modalities | Video, Image, Music, Audio, LLM | LLM only | Per provider |
| Models | 240+ | 300+ (LLM) | 1 provider |
| Pricing | 15-25% savings | Market rate | Official rate |
| SDKs | 6 languages | 2 languages | Varies |
| CLI | Available | Not available | Not available |
| MCP Server | Available | Not available | Not available |
| Agent Skills | Available | Not available | Not available |
| Async + Webhooks | Available | Not available | Varies |
EXPLORE
Developer Tools
MCP Server
Connect Claude Code, Cursor, and MCP-compatible agents to 160+ models.
Learn moreCLI
Run AI models from your terminal with JSON-first output.
Learn moreSDKs
Python, Node.js, PHP, Java, Ruby, and Go SDKs for programmatic integration.
Learn moreModel Catalog
Browse all 200+ models with pricing, parameters, and code samples.
Learn moreFAQ
Frequently asked questions
Sign up for a free account at runapi.ai, generate an API key from the dashboard, and make your first API request. No credit card is required. The quickstart takes under 10 minutes — install an SDK, set your API key as an environment variable, and call any model endpoint. The model catalog shows every available model with its parameters, pricing, and code samples.
RunAPI connects to 200+ models across 25 providers and 5 modalities. Video generation includes Kling 3.0, Veo 3.1, Seedance 2.0, Hailuo, Wan, Runway, and Luma. Image generation covers Flux 2 Pro, Nano Banana, GPT Image, Seedream, Imagen 4, Ideogram 3, and Recraft. Music is powered by Suno v4 through v5.5. Audio includes ElevenLabs TTS, sound effects, and speech-to-text. LLMs include Claude Opus 4.8, GPT-5.6, Gemini 3 Pro, DeepSeek V4, and Grok. New models are added within days of provider release.
Every API call is billed per request with no monthly minimum, no subscription, and no hidden fees. Failed generations are never charged. Credits do not expire. The pricing page shows exact per-model costs, and the check_pricing API returns real-time rates programmatically.
Yes. Official SDKs are available for Python, Node.js, Ruby, PHP, Java, and Go. Each SDK handles authentication, async task polling, and typed responses. Beyond SDKs, RunAPI provides a CLI for terminal-based generation, an MCP server for Claude Code, Cursor, and other coding agents, and installable model skills for agent runtimes. All tools share one API key.
Failed generations are not charged. The system automatically retries transient provider failures. You receive a webhook callback with the failure details if you configured a callback URL, or you can poll the task status endpoint. The dashboard shows all tasks with their status and error details.
Media tasks (video, music, image) run asynchronously. You submit a request, receive a task ID immediately, and poll for completion or configure a webhook callback URL to receive results automatically. The CLI provides a built-in runapi wait command, and the SDKs offer both polling and callback patterns. Task status transitions from pending through processing to completed or failed.
Yes. RunAPI publishes an MCP server that works with Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, and any MCP-compatible host. It also publishes installable model skills for agent runtimes. Agents can browse models, check pricing, and create generation tasks as native tool calls — no manual API configuration required.
Yes. RunAPI exposes OpenAI-compatible LLM endpoints at /v1/chat/completions, /v1/messages (Anthropic format), and /v1/responses. Any application that works with the OpenAI SDK can point its base URL to RunAPI and access Claude, Gemini, DeepSeek, and other LLMs without code changes. Media generation uses RunAPI-native endpoints with consistent JSON structure across all providers.
No. A single RunAPI API key unlocks all 25 providers. You do not need accounts with Anthropic, OpenAI, Google, Kuaishou, Suno, Black Forest Labs, or any other provider. RunAPI handles provider authentication, rate limiting, and billing consolidation. You see one dashboard, one invoice, one set of API credentials.
RunAPI provides email support at [email protected] and a status page monitoring API uptime. The platform routes requests in real time and adds minimal overhead. Callback delivery failures trigger email alerts with diagnostic details so you can fix webhook endpoints quickly.