Models and privacy labels
Browse the catalog, read model capabilities, and understand the privacy label on each route.
Every model in AnonRouter is a route with a declared privacy guarantee, a set of
capabilities, and a price. Model IDs follow a creator/model slug, for example
meta-llama/llama-3.3-70b. The router also resolves a model's raw provider
route id, so either form works in a request.
Latest model aliases
Use a Latest alias when you want a model family to follow AnonRouter's
latest reviewed stable release without changing the model ID in your app. For
example, DeepSeek Flash Latest uses the exact ID
~deepseek/deepseek-flash-latest, including the leading ~.
A Latest alias points to one reviewed model in its creator and family. It is
updated through a reviewed promotion, not by guessing which provider name or
release date is newest. It is an explicit model choice, rather than /auto or
a router that chooses among different families for each request.
| Alias | Model ID |
|---|---|
| DeepSeek Flash Latest | ~deepseek/deepseek-flash-latest |
| DeepSeek Pro Latest | ~deepseek/deepseek-pro-latest |
| Kimi Latest | ~moonshotai/kimi-latest |
| GLM Latest | ~z-ai/glm-latest |
| GLM Flash Latest | ~z-ai/glm-flash-latest |
| MiniMax Latest | ~minimax/minimax-latest |
| Qwen Latest | ~qwen/qwen-latest |
| Qwen Coder Latest | ~qwen/qwen-coder-latest |
Use the alias as the model value in a chat request:
{
"model": "~deepseek/deepseek-flash-latest",
"max_tokens": 1024,
"messages": [{ "role": "user", "content": "Explain this code." }]
}In the private ticket flow, request the ticket with the same alias ID. The concrete target is frozen when the ticket is issued: a promotion between ticket issuance and completion does not switch that request's model. The response names the concrete model that served the request.
Check what Latest currently means
The model page shows the current target and version history. Catalog entries
include alias.targetModelId, alias.revision, and alias.history;
GET /v1/models also exposes the target as canonical_slug. Read the current
catalog rather than hard-coding today's mapping in your app.
Prices, capabilities, context limits, and eligible provider routes follow the
resolved target. A future promotion can change them. Your provider pin,
workspace settings, privacy boundary, and price limits still apply; if the
target is unavailable or fails those checks, the request is refused rather than
silently choosing an unrelated model. A -latest name does not make a model
free or add it to the automatic routing pool.
For reproducible integrations, select the concrete versioned model ID instead of the Latest alias. See provider routing to pin a provider as well, and choose a router when you want selection across models.
List models
GET /v1/models returns the models enabled on the deployment. It requires an
inference or management key.
curl "https://control.anonrouter.ai/v1/models" \
-H "Authorization: Bearer $ANONROUTER_API_KEY"Each entry describes one model:
{
"id": "meta-llama/llama-3.3-70b",
"object": "model",
"owned_by": "meta-llama",
"display_name": "Llama 3.3 70B",
"provider": "venice",
"model_type": "text",
"privacy_class": "private",
"provider_privacy_class": "private",
"context_window": 65536,
"max_output_tokens": 4096,
"pricing": {
"input_usd_per_million_tokens": 0.7,
"output_usd_per_million_tokens": 2.8,
"unit_usd": null
},
"capabilities": {
"embeddings": false,
"streaming": true,
"tools": true,
"web": false,
"reasoning": {
"supported": false,
"effort_configurable": false,
"supported_efforts": [],
"can_disable": false,
"default_effort": null,
"always_on": false
}
},
"routing": {
"enabled": true,
"quality_tier": 4,
"tasks": ["general", "coding"],
"expected_latency_ms": 900
}
}The endpoint is the source of truth
Field values above are illustrative. Prices, context windows, and the enabled model set change over time. Read them from the live endpoint rather than hard-coding them.
model_type is one of text, image, tts, or embedding. For flat-priced
media models, pricing.unit_usd is the per-image or per-character price and the
per-token fields are null.
Public catalog
GET /v1/catalog/models is an unauthenticated, cacheable view of the catalog
with richer privacy metadata (privacyLevel, privacySummary, privacyNotes,
moderation, and modalities). It supports ETag and returns 304 when
unchanged, which makes it convenient for a public model browser.
Route prices and long-context tiers
The listed price of the serving route determines the charge. Input, output, cache-read, and cache-write rates can differ; a model's lowest advertised rate is not a promise that every eligible provider route has that rate. With an active subscription, allowance usage is priced at your plan's price for the route, which is never higher than the pay-as-you-go price.
Some routes publish prompt-size tiers in pricing.long_context_tiers on
GET /v1/models. The public catalog exposes priceTiers and
priceTiersInEffect. in_effect on an OpenAI-shaped tier, or
priceTiersInEffect in the public catalog, says whether tier billing is enabled.
If false, the standard rates apply. When enabled, read the serving route's
schedule: above a tier's prompt threshold, its rates apply to the whole request,
including output and cache buckets. At exactly the threshold, the lower tier
applies. See
metering and long-context pricing.
The published context window and a price threshold are different limits. A higher price tier does not grant a larger window; an intentional route cap still applies. See context limits.
Privacy labels
Every route carries one privacy classification. The label tells you the strongest guarantee that route actually provides.
| Label | privacy_class | What it means |
|---|---|---|
| Anonymous | anonymous | Your identity is hidden, but the model provider can see the prompt while serving it. Provider retention is not guaranteed. |
| Private | private | Prompt and response content is not retained after the request completes. |
| TEE | tee | Inference runs inside a hardware-isolated, attestable enclave. |
| E2EE | e2ee | Your client encrypts the prompt so that only a verified enclave can decrypt it. |
AnonRouter never stores payloads
These labels describe the upstream provider handling. Regardless of the label, AnonRouter itself does not write prompts or responses to disk. On Anonymous routes the provider can still see the prompt, so provider zero-retention is not guaranteed there.
Read `privacyNotes`, not just the label
The label is a category; the per-route notes are the actual boundary, and on two of them the difference matters.
E2EE says the enclave you verified is the only thing that can decrypt, not
that it is the machine running the model. On some Venice routes the enclave
that holds your key is a verified gateway rather than the model host: it
decrypts and forwards the plaintext onward inside the provider. The route's
privacyNotes say so.
private is a retention promise, not an enclave. A private route carries
no attestation. A provider whose name evokes confidential computing is not
thereby a TEE route; the route's privacy label is the claim.
TEE and E2EE labels describe the route modality; they do not by themselves claim a particular strength of attestation. See the E2EE client guide for encrypted transport setup and TEE verification and encrypted inference for the live provider matrix, verification levels, public evidence API, request receipts, and the opaque NEAR v2 protocol.
Free models
Free variants use a separate <creator>/<model>:free ID and cost $0, including
inference fees. anonrouter/free chooses an available free model for each
request; it never selects a paid route. /auto does not select free variants.
Enable free models once for your account on the dashboard Privacy page, a free model's page, or the Free Models Router page. That opt-in is consent to Anonymous routes, where the provider can see and may retain your prompts and responses. No per-request consent field is required, but workspace privacy boundaries still apply.
See free models for setup, examples, eligibility, shared capacity, workspace settings, and errors. See choose a router to compare the Free Models Router with the paid routers.
Capabilities
The capabilities block tells you what a model supports before you call it:
streaming: server-sent event streaming.tools: tool-calling fields are accepted and forwarded to the model.web: the model can use web access.embeddings: the model is an embedding model.reasoning: whether reasoning is supported, whether the effort level is configurable, which efforts are attested, and whether it can be disabled. See reasoning controls.
Moderation
Moderation is a property of the model, not a router policy. Models published as
uncensored run unfiltered. The public catalog exposes a moderation field so you
can filter the catalog by it.
Model health
GET /v1/models/uptime?model=<id>&days=<n> returns a passive success-rate and
latency series for a model, computed from request metadata.
Or hand the whole thing to your agent
One prompt carries the entire setup. Give it to your agent, review what it configures, and you are done.