llmcloud.ai
Migrate · Portkey

Same primitives, less ceremony.

Virtual keys, routes, configs, guardrails, observability — all here, all reachable through the OpenAI SDK without Portkey-specific headers.

Portkey
import Portkey from "portkey-ai";
const portkey = new Portkey({
  apiKey: process.env.PORTKEY_API_KEY,
  virtualKey: "vk-anthropic-prod",
  config: "pc-router-v3",
});
await portkey.chat.completions.create({
  model: "claude-3-5-sonnet",
  messages: [{ role: "user", content: "Hi" }],
});
llmcloud.ai
import OpenAI from "openai";
const client = new OpenAI({
  baseURL: "https://api.llmcloud.ai/v1",
  apiKey: process.env.LLMCLOUD_API_KEY,       // scoped virtual key
});
await client.chat.completions.create({
  model: "auto:quality",                       // or "anthropic/claude-4.5-sonnet"
  messages: [{ role: "user", content: "Hi" }],
});

Concept map

Portkeyllmcloud.ai
Virtual keyVirtual key (scoped API key)
Config (routes, retries, cache)Per-key policy + auto:* + route.fallback
GuardrailsPII / injection / content rules at the router
Traces + logsAnalytics dashboard + OTel + log webhooks
Prompts libraryPrompt registry (Q1 2026, join waitlist)
Custom providersOpenAI-compatible upstreams, BYOK, or Self-host
Do I need custom SDK headers?+

No. Standard OpenAI headers plus the Bearer token — that's it. Policies live on the key or in the request body under route.

Can I import my Portkey configs?+

During private beta we run a config-import CLI for teams migrating with >10 configs. Talk to us.