One key for every model and API
Models and tool APIs behind a single AgentSky key, paid from one balance. No vendor accounts to open, no keys to rotate.
Browse modelsChange the base URL, keep the SDK
The Anthropic and OpenAI wires are served as they are. Point the client you already use at the gateway and nothing else changes.
Read the docsAutomatic failover
When a model can be served more than one way, the gateway moves on from whatever is unreachable or rate-limited before a byte of the reply is sent.
How failover worksThe price in every response
Model calls carry usage.cost, API calls carry price.amount. You never reconcile a bill against a log to find out what a call cost.
See the shapeFeatured models
Priced per token on the default plan, callable from the SDK you already use.
Featured APIs
Search, maps, email, speech, transcription, SEO data, and images, all through one run call.
Three steps to your first call.
Get an API key
Sign in and create an ast_ key under Settings. It works on every wire and every API here.
Get an API keyAdd credits
One balance pays for models and APIs alike, with per-call records you can read back.
Add creditsPoint your SDK at the gateway
Change the base URL, keep the client, and read the price out of the response.
Point your SDK at the gateway
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
baseURL: "https://gateway.agentsky.dev",
apiKey: process.env.AGENTSKY_API_KEY, // ast_…
});
const message = await client.messages.create({
model: "anthropic/claude-sonnet-5",
max_tokens: 256,
messages: [{ role: "user", content: "Summarise this ticket." }],
});
console.log(message.usage.cost); // USD, in the responseWorks with the agents you already run.
Claude Code
export ANTHROPIC_BASE_URL=https://gateway.agentsky.dev
export ANTHROPIC_AUTH_TOKEN=ast_…
claudeCodex CLI
export OPENAI_BASE_URL=https://gateway.agentsky.dev/v1
export OPENAI_API_KEY=ast_…
codex