The OpenRouter alternative
Frontier LLMs. 1,000+ media models.
One key.
Fast, affordable Claude, GPT, Gemini and DeepSeek plus Seedance 2.5, Veo 3.1, Nano Banana Pro and 1,000+ more media models, each with its own endpoint and studio. Pay as you go.
Opens the playground with your message. Sign in to run it.
Why builders pick WaveSpeedAI over OpenRouter
Fast.
Blazing-fast inference on every model. Your images and videos come back fast, in the studio and through the API.
Affordable.
Images from $0.024, videos from $0.05 per run. Pay only for what you generate, with no subscription and no monthly fee.
- Language models
- 113+
- Media models
- 1,041+
- Monthly fee
- $0
- LLMs and media
- 1 key
Brains and media, one key
One account runs Claude, GPT, Gemini, DeepSeek and Kimi plus Seedance 2.5, Kling 3.0, Veo 3.1, Nano Banana Pro and GPT Image 2.5. Build the whole product on one key.
OpenRouter: A unified API across model providers.
A real endpoint per media model
Every image, video, audio and 3D model gets its own endpoint with a full input schema, examples and a live price. No guessing at parameters.
OpenRouter: Media models through the same interface as chat.
Studios, not just chat
Test any model in image, video, avatar, audio and 3D generators, with upscalers and editors right alongside.
OpenRouter: An API and a chat interface.
Media superpowers for agents
A CLI, Agent Skill and MCP server hand coding agents every media model, with setup guides for Codex, Claude Code and more.
OpenRouter: Model access for agents through its API.
Language and media
Chat and code models side by side with image, video, audio and 3D models. One key, one bill, zero juggling.
Drop-in compatible
OpenAI-compatible chat completions and Responses plus an Anthropic-compatible Messages endpoint. Swap the base URL and go.
Ready for agents
Copy-paste configs for Codex, Claude Code, OpenClaw, OpenCode and Hermes, with every request in your logs.
Pay as you go
Add credits, pay per token or per generation. No monthly fees, no commitments.
Featured models
View allChat with any LLM
Swap the base URL. Keep your OpenAI client. Done.
POSThttps://llm.wavespeed.ai/v1/chat/completions
curl https://llm.wavespeed.ai/v1/chat/completions \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-opus-5.5",
"messages": [{"role": "user", "content": "Hello!"}]
}'import os
from openai import OpenAI
client = OpenAI(base_url="https://llm.wavespeed.ai/v1", api_key=os.environ["WAVESPEED_API_KEY"])
reply = client.chat.completions.create(
model="anthropic/claude-opus-5.5",
messages=[{"role": "user", "content": "Hello!"}],
)
print(reply.choices[0].message.content)import OpenAI from 'openai'
const client = new OpenAI({ baseURL: 'https://llm.wavespeed.ai/v1', apiKey: process.env.WAVESPEED_API_KEY })
const reply = await client.chat.completions.create({
model: 'anthropic/claude-opus-5.5',
messages: [{ role: 'user', content: 'Hello!' }],
})
console.log(reply.choices[0].message.content)Generate images and video
The same key unlocks 1,000+ media models.
POSThttps://api.wavespeed.ai/api/v3/bytedance/seedream-v5.0-pro
curl -X POST "https://api.wavespeed.ai/api/v3/bytedance/seedream-v5.0-pro" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A glass teapot on a sunlit windowsill, soft morning light"
}'
# → {"data": {"id": "<prediction id>", ...}}
curl "https://api.wavespeed.ai/api/v3/predictions/<prediction id>/result" \
-H "Authorization: Bearer $WAVESPEED_API_KEY"import os, time, requests
headers = {"Authorization": f"Bearer {os.environ['WAVESPEED_API_KEY']}"}
task = requests.post("https://api.wavespeed.ai/api/v3/bytedance/seedream-v5.0-pro", headers=headers, json={
"prompt": "A glass teapot on a sunlit windowsill, soft morning light"
}).json()["data"]
while True:
result = requests.get(f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result", headers=headers).json()["data"]
if result["status"] == "completed":
print(result["outputs"])
break
if result["status"] == "failed":
raise RuntimeError(result.get("error"))
time.sleep(2)const headers = { Authorization: `Bearer ${process.env.WAVESPEED_API_KEY}`, 'Content-Type': 'application/json' }
const { data: task } = await fetch('https://api.wavespeed.ai/api/v3/bytedance/seedream-v5.0-pro', {
method: 'POST',
headers,
body: JSON.stringify({
"prompt": "A glass teapot on a sunlit windowsill, soft morning light"
}),
}).then((r) => r.json())
while (true) {
const { data: result } = await fetch(`https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`, { headers }).then((r) => r.json())
if (result.status === 'completed') { console.log(result.outputs); break }
if (result.status === 'failed') throw new Error(result.error)
await new Promise((r) => setTimeout(r, 2000))
}WaveSpeedAI vs OpenRouter
| WaveSpeedAI | OpenRouter | |
|---|---|---|
| Language models | LLM API with OpenAI- and Anthropic-compatible endpoints | A unified API for models from many providers |
| Image, video and audio | Dedicated endpoints for every major image, video, audio and 3D model, with browser studios | Text, image, video and audio through one interface |
| Billing | Pay as you go credits, billed per token or per generation | Pay-as-you-go credits with a platform fee |
| Agent tooling | Agent setup guides, a CLI, an Agent Skill and an MCP server for media models | A unified API and a chat interface |
| Creative tools | Image, video, avatar, audio and 3D generators, upscalers and editors in the browser | Model access through its API and chat interface |
Frequently Asked Questions
Is WaveSpeedAI an OpenRouter alternative?
Yes, and then some. You get an OpenAI-compatible LLM API with models from Anthropic, OpenAI, Google, DeepSeek, Moonshot and more, and the same account unlocks 1,000+ image, video, audio and 3D models.
Can I use the OpenAI SDK?
Yes. Point the OpenAI SDK at https://llm.wavespeed.ai/v1 with your WaveSpeedAI API key and pass the model id. That is the whole migration. Anthropic-compatible and Responses endpoints are there for agents that expect them.
Does it work with coding agents?
Yes. The agent setup guides give copy-paste configs for Codex, Claude Code, OpenClaw, OpenCode and Hermes, and every request shows up in your WaveSpeedAI logs.
How is it billed?
Pay per use. Add credits once: language models bill per token, media models per generation. No monthly fees, no commitments.
Can I try it for free?
Yes. Eligible new accounts get $1 in free credits to start building, with no credit card needed. Some premium models may not be available with trial credits.
One key. Ship everything.
$1 in free credits for eligible new accounts. No card needed.
OpenRouter is a trademark of its respective owner. WaveSpeedAI is not affiliated with, endorsed by or sponsored by OpenRouter. Comparisons reflect publicly available information at the time of writing and may change.