The private AI routerNo logs. No training.

Northstar Labs

Production routing and usage across the team.

This Week's Usage

View activity

Spend

$11.16

Last 7 days

venice/llama-3.3-70b$4.11venice/qwen-2.5-coder-32b$3.24anthropic-compatible/clau…$2.37Others$1.44

Requests

3,842

Last 7 days

venice/llama-3.3-70b1,164venice/qwen-2.5-coder-32b1,008anthropic-compatible/clau…842Others828

Tokens

12.80M

Last 7 days

venice/qwen-2.5-coder-32b4.7Mvenice/llama-3.3-70b3.8Manthropic-compatible/clau…2.6MOthers1.7M

Workspace controls

Jump into gateway controls without exposing prompt or response content.

The models you know and love.

Browse all models

Use any AI modelwithout giving up your privacy

Reach every provider through one OpenAI-compatible endpoint, routed and metered from metadata alone, with prompts sealed inside an enclave that no one can read. Switch models without changing your integration, and see every route’s privacy level and price before you send. Open source

Private access

No email, no phone, no identity. Create an account from a recovery phrase, with opaque sessions and hashed API keys.

Confidential compute

No one can read your prompts. Inference runs inside an enclave, metered only from token counts.

Uncensored by default

Moderation is a model property, not a gateway policy. Pick an uncensored model and it runs unfiltered.

Built for agents,
private by default

Point any client, agent, or IDE at one private endpoint.

opencodeOpenCodeNousResearchHermes AgentClaude CodeClaude CodeOpenWebUIOpen WebUICodexCodex
Image
ClaudeOpenAIDeepSeekMetaQwen

Point any agent at it

Every tool that speaks the OpenAI API speaks this one. Change one base URL to reach the whole catalog, including routes inside an attested Intel TDX enclave.

What happens to my prompts?

ZhipuGLM 5.2

They are sealed in your browser and opened only inside the enclave. No key we hold can read them, usage is metered from metadata, and nothing you type is stored or used for training.

E2EEVenice
Ask anything privately

Chat that keeps nothing

A hosted chat on the same routes as the API. Prompts and responses are never written down, so there is no history to leak later.

attest

$ git clone anonrouter/confidential-content-plane

$ anonrouter attest --route tee

fetching quote…

measurement 8f2c…a41d

signer intel-tdx

✓ quote verified

✓ matches published build

Open source, so you can check

The confidential content plane is public. Read what runs inside the enclave, then check the attestation quote against the build you just read.

request.sh
curl https://api.anonrouter.ai/v1/chat/completions \  -H "Authorization: Bearer $ANONROUTER_API_KEY" \  -d '{"model": "anthropic/claude-opus-4.8"}'# Same call. Different endpoint.

Keep the SDK you already use

The official OpenAI libraries work unchanged in TypeScript, Python, and plain curl. Same request shape, same streaming format.

ZhipuGLM 5.2by z-aiE2EE
OpenAIGPT Solby openaiPrivate
GeminiGemini 3.5 Flashby googleAnonymous
DeepSeekDeepSeek V4 Flashby deepseekTEE

Privacy labeled per route

Every route carries the guarantee it actually provides, so you can filter the catalog down to the level your work requires.

Build on one private, OpenAI-compatible API

Chat Completions API

One OpenAI-compatible endpoint for every model. Change the base URL.

import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.anonrouter.ai/v1",
  apiKey: process.env.ANONROUTER_API_KEY,
});

const res = await client.chat.completions.create({
  model: "anthropic/claude-opus-4.8",
  messages: [{ role: "user", content: "..." }],
});

Automatic routing

Send /auto to use the cheapest capable model within your privacy boundary.

// One model id, every route. The gateway picks
// the cheapest capable model you're allowed to use.
const res = await client.chat.completions.create({
  model: "/auto",
  messages: [
    { role: "user",
      content: "Summarize this thread..." },
  ],
});

Studio API

Generate images and speech from every media model through one private gateway.

const image = await client.images.generate({
  model: "black-forest-labs/flux-1.1-pro",
  prompt:
    "A koi fish gliding through still water, " +
    "watercolor on rice paper, soft ink washes, " +
    "generous negative space, a single red maple leaf drifting past",
  size: "1024x1024",
});

Start anonymous.
Stay that way.

Create a private account, add credits, and connect through one OpenAI-compatible endpoint. Your prompts are never logged, stored, or used for training.

1

Choose your level of privacy

Create a standard account for convenient recovery, or skip email entirely and use a recovery phrase. Either way, your session stays opaque and your identity never becomes part of the inference request.

Account access
Username
north-orchid-42
Recovery phrase12 words
1ember2canyon3violet4drift5saddle6lunar7moss8quartz9anchor10plume11cedar12halo
Create private account
Terms & Privacy
2

Set up your API key

Create a scoped inference key and point any OpenAI-compatible SDK at AnonRouter. Switching takes a base URL and a key, not a rewrite: keys are hashed at rest, and prompts pass through without ever being stored.

API keysNew key
Search by name or prefix...
11 active
NameUsageLimit
production$8.42No limit
staging$0.55$5.00
claude-code$2.19$10.00
ci-pipeline$0.019$3.00
local-dev$0$1.00
side-project$0.389No limit
request.ts
const client = new OpenAI({  baseURL: "https://api.anonrouter.ai/v1",  apiKey: process.env.ANONROUTER_API_KEY}); const res = await client.chat.completions.create({
3

Choose the right model

Browse 200+ models, each labeled with its privacy level, pricing, and capabilities before you send anything. Filter the catalog to the guarantee you need, or send /auto and the router picks the cheapest capable route inside your privacy boundary.

Privacy

Four levels, clearly labeled

Every route is labeled with the guarantee it actually provides, so you can filter the catalog by the level you need.

Uncensored

Moderation is a model property, not a gateway policy. Models published uncensored run unfiltered. Filter the catalog

Private AI infrastructure
that forgets by design

Route every request through one OpenAI-compatible API without storing your prompts, responses, or identity in the inference path.

Frequently asked questions

An LLM router is one API in front of many AI models. Instead of wiring your app to each provider, you send requests to a single OpenAI-compatible endpoint and the router picks the right model, handles failures, and settles billing across providers.

AnonRouter is a private LLM router. It does all of that from usage metadata alone: prompts, responses, and keys pass through and are never written to disk. There is no request history to leak, sell, or train on, and a private account does not require an email address.

A private LLM router. One OpenAI-compatible endpoint reaches 200+ models across providers, with routing, fallbacks, and metering handled for you. Everything settles from usage metadata, and your prompts are never stored.
No. AnonRouter speaks the OpenAI Chat Completions API, so most apps switch by changing the base URL and API key. Point your existing SDK at the router and go.
Send model "/auto" and the router classifies the task in memory, filters to models inside your privacy boundary, then picks the cheapest capable route. Classification labels are never stored.
Model usage is charged at the displayed provider rate without a hidden per-model markup. Credit checkout separately shows the service fee, currently a promotional 5% (subject to a $0.75 minimum) down from the regular 8%. There is no subscription or monthly commitment; individual credit purchases currently start at $1.

Your prompts are not our business.

Create account