anoman
Sign InGet API Key
Documentation home

Quickstart

Anoman is an OpenAI-compatible drop-in. Change base_url and api_key — nothing else.

Sign up and create a key

Go to app.anoman.io, create an account, and generate an API key from the dashboard. Keys start with anm-sk-.

Or use your existing OpenAI SDK

Python

pip install anoman-ai

TypeScript

npm install anoman-ai

OpenAI SDK

# No install needed — use your existing OpenAI SDK
pip install openai  # already installed? skip this

Chat completion

Python (Anoman SDK)

from anoman import AnomanClient
 
client = AnomanClient(api_key="anm-sk-...")
response = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

Python (OpenAI SDK)

from openai import OpenAI
 
client = OpenAI(
    base_url="https://api.anoman.io/v1",
    api_key="anm-sk-..."
)
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)

TypeScript

import { AnomanClient } from "anoman-ai";
 
const client = new AnomanClient({ apiKey: "anm-sk-..." });
const response = await client.chat.completions.create({
  model: "claude-sonnet-4-6",
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

cURL

curl https://api.anoman.io/v1/chat/completions \
  -H "Authorization: Bearer anm-sk-..." \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-4o", "messages": [{"role": "user", "content": "Hello!"}]}'

Every response includes guardrail + routing metadata

The _anoman block is appended to every completion response. It contains guardrail scores, routing decision, cache status, and actual cost.

Response JSON

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "choices": [{
    "message": { "role": "assistant", "content": "Hello! How can I help?" }
  }],
  "usage": { "prompt_tokens": 9, "completion_tokens": 7 },
  "_anoman": {
    "guardrails": { "injection": { "status": "pass", "score": 0.02 } },
    "routing": { "mode": "realtime", "region": "id" },
    "cache": { "hit": false },
    "cost_usd": "0.000041"
  }
}

Works with every AI agent — one env var

Claude Code

export ANTHROPIC_BASE_URL=https://api.anoman.io/anthropic
export ANTHROPIC_API_KEY=anm-sk-...
 
claude  # All calls routed through Anoman guardrails

Cursor / Aider

export OPENAI_BASE_URL=https://api.anoman.io/v1
export OPENAI_API_KEY=anm-sk-...

LangChain

from langchain_openai import ChatOpenAI
 
chat = ChatOpenAI(
    base_url="https://api.anoman.io/v1",
    api_key="anm-sk-..."
)

Full list of supported agents: Platform / Integrations →

Build with Anoman today.

On this page