Docs
Open App

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.

AliasModel 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:

Illustrative model object
{
  "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.

Labelprivacy_classWhat it means
AnonymousanonymousYour identity is hidden, but the model provider can see the prompt while serving it. Provider retention is not guaranteed.
PrivateprivatePrompt and response content is not retained after the request completes.
TEEteeInference runs inside a hardware-isolated, attestable enclave.
E2EEe2eeYour 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.

On this page