inference.autter.dev
Change the base URL.Keep your code.
The API speaks OpenAI Chat Completions, OpenAI Responses and Anthropic Messages. Your SDK, your tools and your prompts work unchanged.
from openai import OpenAI
client = OpenAI(
base_url="https://inference.autter.dev/v1",
api_key=os.environ["AUTTER_KEY"],
)
r = client.chat.completions.create(
model="autter-large",
messages=[{"role": "user", "content": f"Review this diff:\n{diff}"}],
stream=True,
)
01/
Change the base URL
Point your existing SDK at inference.autter.dev and use an Autter key. Nothing else changes.
OpenAI SDKs base_url = "https://inference.autter.dev/v1"
Anthropic SDKs base_url = "https://inference.autter.dev"02/
Endpoints
Three request shapes, one set of models. Pick the one your code already uses.
- 01/POST /v1/chat/completions (OpenAI Chat Completions)
- 02/POST /v1/responses (OpenAI Responses, with previous_response_id)
- 03/POST /v1/messages (Anthropic Messages)
- 04/GET /v1/models (either shape, by the anthropic-version header)
03/
Streaming
Set stream: true. Chunks are relayed as they arrive from the model; the router adds under a millisecond per chunk.
04/
Errors
Errors use the shape of the endpoint you called. 401 is a bad key, 402 is an empty balance, 413 is an input over the context window, 429 is a rate limit with a retry-after header.
{
"error": {
"type": "insufficient_credits",
"message": "Balance is $0.00. Top up at https://models.autter.dev/dashboard/credits",
"code": 402
}
}05/
Credits
Buy a pack in the dashboard. Each request is held at its maximum cost and settled when it ends. Balances and daily spend are on the usage page.
06/
Data handling
Prompts and outputs are not stored unless you use stored responses, which keep conversations encrypted for 30 days and can be deleted at any time. Source sent for review never trains a model.
07/
For agents
Everything on this site is plain HTML with JSON-LD, and there are machine-readable copies: /llms.txt is the short index, /llms-full.txt is every page as Markdown, and /openapi.yaml is the API spec. An MCP server at /mcp answers questions about the models, prices and docs and can join the waitlist, with no key. Discovery documents live under /.well-known, and /auth.md explains how an agent gets access. Coding agents use the API the same way an SDK does: set the base URL and the key, then call the model.
- 01/POST https://models.autter.dev/mcp
- 02/GET https://models.autter.dev/llms.txt
- 03/GET https://models.autter.dev/llms-full.txt
- 04/GET https://models.autter.dev/openapi.yaml
- 05/GET https://models.autter.dev/.well-known/ai-catalog.json
- 06/GET https://models.autter.dev/auth.md
# Claude Code, Codex, Cursor or any OpenAI-compatible agent
export OPENAI_BASE_URL=https://inference.autter.dev/v1
export OPENAI_API_KEY=$AUTTER_KEY
export OPENAI_MODEL=autter-large
# Anthropic-shaped agents
export ANTHROPIC_BASE_URL=https://inference.autter.dev
export ANTHROPIC_API_KEY=$AUTTER_KEY08/
Create a key
Access opens in waves from the waitlist. Once your invite arrives, sign in with GitHub or Google, open Keys, and create one. The key is shown once, so store it in your secret manager. Keys are scoped to an organisation and can be revoked at any time.