Roar AI
Get started
AI Gateway

Every model, on one key

Already using the OpenAI SDK? Change the address and the key, and everything keeps working — chat, embeddings, images, speech and batch, on every model we carry.

THE WHOLE CHANGE
client = OpenAI(
  base_url="https://api.roar-ai.com/v1",
  api_key="roar_live_…",
)

What an AI gateway is, and the part that matters

One address, one key, every model. You stop holding an account, a card and a contract with each AI company, and you stop trying to work out which of six invoices a number came from.

That much, every gateway does. What separates them is what happens on the way through.

Most of them pick whoever serves a model cheapest, per request. It is sold as a feature and it behaves like a fault. The same model accepts a setting on one call and rejects it on the next, because a different provider answered. Caching works on Monday and not on Thursday. Nothing changed in your code.

We pick the route once, per model, and hold it. The others sit behind it for when one fails. That is the difference between a gateway that shops around and one that answers for the result.

The difference

The same model should not behave differently on Tuesday

Most LLM gateways pick who serves each request on price, per call — which is why the same model accepts a setting one minute and rejects it the next. We choose the route once and hold it.

The rate holds too, so a provider raising theirs costs us margin rather than reaching your invoice.

Your request
The route we chosePINNED
The same answer, every call
Alternates stay behind it, for when a route fails
The surface

More than chat,
on the same key

The same calls you already write, on every model we carry.

Chat completions
/v1/chat/completions
Embeddings
/v1/embeddings
Images
/v1/images/generations
Speech
/v1/audio/speech
Transcription
/v1/audio/transcriptions
Batches
/v1/batches
Files
/v1/files
Models
/v1/models
Control

Give it to the team
without giving up the reins

What leaves, what it costs, and who can do what.

Nothing sensitive leaves by accident

Scanned for personal data and secrets before they reach an external model. Redact, block, or send that call to a private one.

A ceiling you set

Caps per key, project or team, counted from real usage. The tightest one wins.

Keys that only do one job

Scopes on every key, so a prototype cannot reach what production can.

Your call history, readable

See what was sent and what came back, encrypted at rest. Off per team if you would rather nothing was kept.

Paying less

Three cheaper ways to run the same model

None of these is a different model or a worse one. They are the same call, bought differently.

CACHED INPUT

Repeat a long prefix and those tokens bill at the cached rate. Nothing to switch on.

BATCH

Send a file of requests, collect within 24 hours, at roughly half the rate. A real provider discount, passed on.

PRIORITY

Faster and steadier where it is offered, at a premium. For when someone is waiting.

Not every model offers every tier. The rate card marks the ones that do.

Agents can use it directly

Point an MCP client here with the same key. It sees only the tools that key allows.

https://cloud.roar-ai.com/mcp

Change two lines
and try it

Sign up and get a key in a minute. Bring the code you already have.