VoltaAI — a VoltaServices property
OpenAI-compatible chat and image endpoints across the major AI models. British-operated. Pay per call or subscribe.
What's in the gateway
VoltaAI Gateway is an OpenAI-compatible router in front of the labs we actually rate — Anthropic, Google, OpenAI, DeepSeek, Mistral, Qwen, plus best-of-breed image and video. Drop the base URL in your client and the same code talks to all of them.
We keep no chat content unless you ask us to. Logs hold the metadata we need to bill and to fix problems — model, tokens, latency, status — nothing of the prompt or the reply.
Models
| Model | Provider | Tier | Type | Vision | Tools | Status |
|---|---|---|---|---|---|---|
| Loading model registry… | ||||||
Counts update from /api/status/models. Last sync:
—.
Compatibility
If your code already works with OpenAI's chat completions, it works with
VoltaAI. Same payload, same streaming format, different
base_url.
curl https://api.voltaai.uk/v1/chat/completions \
-H "Authorization: Bearer vk_..." \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-4.5",
"stream": true,
"messages": [{"role": "user", "content": "What runs on this gateway?"}]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.voltaai.uk/v1",
api_key="vk_...",
)
stream = client.chat.completions.create(
model="claude-sonnet-4.5",
messages=[{"role": "user", "content": "What runs on this gateway?"}],
stream=True,
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="", flush=True)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.voltaai.uk/v1",
apiKey: process.env.VOLTA_KEY,
});
const stream = await client.chat.completions.create({
model: "claude-sonnet-4.5",
messages: [{ role: "user", content: "What runs on this gateway?" }],
stream: true,
});
for await (const chunk of stream) {
process.stdout.write(chunk.choices[0].delta.content ?? "");
}
Tiers