Self-hosted · Bring your own keys

One API for every AI provider.

Route OpenAI, Claude Code, Codex, and compatible SDKs through one stable gateway. Automatically fail over when models, quotas, or providers let you down.

26 providers 3 API formats 1 stable endpoint
live routing trace Live
POST /v1/chat/completions
Virtual model free-router
priority routing
01 OpenRouterqwen/qwen3-coder:free 429 · failover
02 Groqllama-3.3-70b-versatile 200 · 438 ms
Response returnedAutomatic recovery, no app changes req_9e1109
99.9%router availability
Capability awaretools · vision · JSON

Plus Hugging Face, SambaNova, SiliconFlow, ModelScope, GitHub Models, Kilo Code, Aion Labs, and Z.ai.

Your application should not care which provider answers.

Keep provider-specific complexity inside the gateway. Your application calls one model alias while the router handles availability, compatibility, and recovery.

01

Automatic failover

Retry transient failures, respect rate-limit cooldowns, open circuits around unhealthy providers, and continue through the next eligible model.

OpenRouter Groq Response
02

Model-aware capabilities

Route tools, JSON mode, structured output, vision, reasoning, streaming, and embeddings only to compatible active models.

03

One virtual model

Create aliases such as free-router or vision-router with their own provider order and routing strategy.

04

Full request timeline

See every eligibility check, provider attempt, failover decision, response timing, token count, and returned routing header.

05

Quotas without surprises

Track daily and monthly requests or tokens per provider. Stop routing before a free tier is exhausted and see exactly when capacity resets.

7,420 / 10,000 requests
06

Bring your own keys

Your provider credentials stay on your deployment. The dashboard never displays a saved provider key again.

Request analytics Last 24 hours ▾
Requests12,489↑ 18.2%
Success rate98.7%↑ 1.4%
Avg. latency624 ms↓ 82 ms
Groq42% OpenRouter31% Cerebras18%

Observability designed for routing.

General API logs tell you that a request failed. LLM router shows which providers were considered, why they were skipped, what was retried, and where the response came from.

  • Provider, API format, model alias, and client dashboards
  • Router, provider, first-token, and stream timing
  • Request IDs and routing headers end to end
  • Fallback, tool-call, token, and deduplication analytics
Explore the dashboard

Connect once. Route everywhere.

Use the provider keys and models you already have. No application-specific adapters and no provider SDK lock-in.

  1. 1
    Add provider keys

    Connect one or more providers and select an active model for each.

  2. 2
    Choose a routing policy

    Use priority, round-robin, weighted, random, or lowest-latency routing.

  3. 3
    Point your SDK at the router

    Keep your existing OpenAI, Codex, or Claude Code client.

JavaScript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://llmrouter.dpdns.org/v1",
  apiKey: flm_YOUR_KEY_HERE,
});

const response = await client.chat.completions.create({
  model: "free-router", // Your Model alias
  messages: [{ role: "user", content: "Hello!" }],
});

Give your application a routing layer.

Deploy the gateway, connect your keys, and keep one stable endpoint as providers and models change.