llmcloud.ai
Platform · Unified API

One endpoint. Every model.

Point the OpenAI SDK at api.llmcloud.ai and every model on every provider is one string away — no bespoke SDKs, no per-vendor auth, no vendor-lock code paths.

MVP · join waitlist
Before — OpenAI only
import OpenAI from "openai";
const openai = new OpenAI();
await openai.chat.completions.create({
  model: "gpt-5",
  messages: [{ role: "user", content: "Hi" }],
});
After — every model
import OpenAI from "openai";
const openai = new OpenAI({
  baseURL: "https://api.llmcloud.ai/v1",
  apiKey: process.env.LLMCLOUD_API_KEY,
});
await openai.chat.completions.create({
  // any provider model — or an auto:* policy
  model: "auto:quality",
  messages: [{ role: "user", content: "Hi" }],
});

What you get for free

compat

OpenAI-compatible

Chat completions, streaming, tool calling, structured outputs, embeddings — same schema as the OpenAI SDK.

one auth

One key, every provider

No juggling Anthropic, Google, xAI, Groq, Cerebras, Fireworks or Together keys. One header, one bill.

auto:*

Router-native

Swap the model string for auto:quality, auto:cost, auto:speed or auto:reasoning to let the router pick per request.

streaming

SSE + tools

Streaming, function calls, JSON mode and vision inputs all flow through the same connection.

headers

Rich response metadata

x-llmcloud-model, x-llmcloud-provider, x-llmcloud-cost-usd, x-llmcloud-cache — attribution baked into every response.

sdks

Works with everything

OpenAI Python + TS SDKs, Vercel AI SDK, LangChain, LlamaIndex, LiteLLM, Instructor — no adapters required.

Do I have to change my code?+

Just base_url and api_key. Everything else — tools, streaming, JSON mode — keeps working.

Which SDKs are supported?+

Anything that speaks OpenAI Chat Completions or Responses. That covers the OpenAI SDKs, Vercel AI SDK, LangChain, LlamaIndex, Instructor and LiteLLM.

Can I still pass provider-specific model names?+

Yes. Pass anthropic/claude-4.5-sonnet, google/gemini-3-pro or fireworks/deepseek-v3.1 directly, or use an auto:* policy.