Audio & Music
Producer API access for FUZZ music generation from exact lyrics or instrumental production briefs.
Browse, compare, and integrate the best AI models for video, image, music, audio, and text generation — all through one unified API.
# Available Endpoints
POST /v1/chat/completions # LLM
POST /v1/images/generations # Image
POST /api/v1/kling/text_to_video # Video
POST /v1/audio/speech # TTS
POST /v1/audio/transcriptions # STT
POST /api/v1/suno/text_to_music # Music
const response = await fetch("https://runapi.ai/v1/chat/completions", {
method: "POST",
headers: { Authorization: `Bearer ${RUNAPI_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ model: "your-model-id", messages: [{ role: "user", content: "Hello" }] })
})
const result = await response.json()
import os
import httpx
response = httpx.post(
"https://runapi.ai/v1/chat/completions",
headers={"Authorization": f"Bearer {os.environ['RUNAPI_API_KEY']}"},
json={"model": "your-model-id", "messages": [{"role": "user", "content": "Hello"}]}
)
<?php
$ch = curl_init("https://runapi.ai/v1/chat/completions");
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer $RUNAPI_API_KEY", "Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode(["model" => "your-model-id", "messages" => [["role" => "user", "content" => "Hello"]])]);
$result = json_decode(curl_exec($ch), true);
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder(URI.create("https://runapi.ai/v1/chat/completions"))
.header("Authorization", "Bearer " + RUNAPI_API_KEY)
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString("{\"model\":\"your-model-id\",\"messages\":[]}")).build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
require "net/http"
uri = URI("https://runapi.ai/v1/chat/completions")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer #{ENV.fetch('RUNAPI_API_KEY')}"
request["Content-Type"] = "application/json"
request.body = {model: "your-model-id", messages: []}.to_json
requestBody := strings.NewReader(`{"model":"your-model-id","messages":[]}`)
request, _ := http.NewRequest(http.MethodPost, "https://runapi.ai/v1/chat/completions", requestBody)
request.Header.Set("Authorization", "Bearer "+os.Getenv("RUNAPI_API_KEY"))
request.Header.Set("Content-Type", "application/json")
response, err := http.DefaultClient.Do(request)
defer response.Body.Close()
# Authenticate once
runapi login
# Inspect available models
runapi models list --modality video
# Use the selected model in your workflow
runapi models show <model-id>
Leading AI models, one API
2 models
Audio & Music
Producer API access for FUZZ music generation from exact lyrics or instrumental production briefs.
Audio & Music
Suno API access for AI music generation — create songs with vocals, instruments, and lyrics from a text prompt.
2 models No models match
Pick any model and generate in seconds.
One SDK for 230+ models across all modalities. Switch providers without changing code.
Transparent pay-as-you-go pricing. No subscriptions, no hidden fees, credits never expire.
Team API keys, usage analytics, and priority support.
Generate ad variants per audience segment with Kling, Veo, and Runway
Create studio-quality product shots with Flux and Midjourney
Clone voices and generate intros with Fish Audio and ElevenLabs
Give your agent access to any model through MCP or REST
Score videos and podcasts with Suno and Udio
Localize apps into 40+ languages with natural voices
Visit /models or use the CLI: runapi models list. Filter by modality, provider, or search by name.
Yes. One API key works across all 230+ models. Switch between video, image, music, audio, and LLM models freely.
We add new models continuously. Major releases are typically available within days of launch. Follow our changelog for updates.
Yes. Contact us with the model name and provider. We evaluate all requests and prioritize based on demand.
We notify users 30 days before retirement. Your existing code continues working — just update the model parameter to a newer version.
Text models bill per million input and output tokens; media models bill per second, per image, or per minute. Every rate is listed on the model page and in the pricing table.