VoltaAI — a VoltaServices property

Many models,
one API.
On infrastructure we run.

OpenAI-compatible chat and image endpoints across the major AI models. British-operated. Pay per call or subscribe.

Open the chat Get an API key View pricing →
models with vision image generators checking…

What's in the gateway

One key. One endpoint.
The models you'd use anyway.

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.

  • Streaming on every text model. SSE, token-by-token.
  • Per-key rate limits and model allowlists. Useful for delegating keys to apps and team-mates.
  • Vision and tool use where the underlying model supports it. We don't paper over differences — we surface them.
  • UK-operated. Built and run from London. ICO-registered.

Models

Every model the gateway speaks for.

Full registry →
Model Provider Tier Type Vision Tools Status
Loading model registry…

Counts update from /api/status/models. Last sync: .

Compatibility

OpenAI-compatible. Drop the base URL in.

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