One endpoint for every model
Route every call through a single OpenAI-compatible endpoint with server-side keys and failover. Publish a new model or prompt from the dashboard - live on the next request.
Point your existing SDK at Cran
Set the base URL and use model: auto for your published architecture, a workflow slug, or any catalog model. Fallbacks and conditional routes are built in.
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://trycran.in/api/v1",
apiKey: process.env.CRAN_API_KEY,
});
// model: "auto" uses your published architecture
const res = await client.chat.completions.create({
model: "auto",
messages: [{ role: "user", content: "Classify this refund." }],
});Smart cost routing
Serves the cheapest model your own tests approved, with failover and a savings receipt on every call.
Publish without redeploy
Change model, prompt, or temperature in the dashboard - proxied calls pick it up on the next request.
Streaming
Full SSE passthrough - your streaming UI keeps working.
Automatic failover
Retries across providers on error; a failing model is pulled from rotation within seconds, fleet-wide.
Explore the rest of the control plane
Map your AI in 2 minutes.
Connect your repo, route every call through Cran, and publish routing when you have proof - not vibes.