Sign in / Join
New · Auto models

Let us pick the model.

Ask for an auto model and we choose the right model for each conversation.

Quick jobs go to a fast model, hard work goes to the strongest one. Every response tells you which model answered. Prefer a specific model? Pick it by name, as before.

requestany OpenAI- or Anthropic-compatible client
# Use an auto model like any other model name
curl https://api.endlesstokens.ai/v1/chat/completions \
  -H "Authorization: Bearer $ET_KEY" \
  -d '{"model": "et:auto", "messages": [...]}'

# The response says which model answered
x-et-routed-model: <model-name>
x-et-route-tier:   Mid

Three auto modelsPick one name, we do the rest

et:auto

Our own models, chosen per conversation. Included with every pass.

  • Routes between the open models we host.
  • Optional: switch on your own Anthropic or OpenAI key, and it can send the hardest work there too.
  • With your key switched on, it also uses it when our GPUs are full, instead of making you wait.
Needs a passYour key: optional

claude:auto

Only Anthropic models, chosen per conversation.

  • Uses your own Anthropic API key.
  • Anthropic bills you for that usage, at their prices.
Needs a pass+ your Anthropic key

openai:auto

Only OpenAI models, chosen per conversation.

  • Uses your own OpenAI API key.
  • OpenAI bills you for that usage, at their prices.
Needs a pass+ your OpenAI key

How routing decidesThe right size of model for each job

Every request is sorted into one of three tiers by what it asks for: tools, length, thinking and the shape of the request. In doubt, we pick the higher tier.

Low

Simple jobs

Titles, short summaries, quick lookups, the small background calls your coding agent makes.

Goes to a fast, lighter model

Mid

Everyday work

Everyday coding, tool use, edits and answers.

Goes to a balanced model

High

Hard work

Planning, design, large refactors, long context and extended thinking.

Goes to the strongest model

One conversation, one model

A conversation stays on the model it started on, so answers stay consistent and the cache stays warm. If a lighter model struggles, we move that conversation up. Never down.

  1. Low
  2. Mid
  3. High
  4. Your key

The last step is for et:auto only, and only if you switch on your own key.

What moves a conversation up

A broken tool callAn empty or cut-off answerYou retry the same prompt

The router also learns over time which requests need a stronger model. It learns from anonymised numbers derived from requests. We never keep your text. How we handle this

No black boxYou always see which model answered

every responseheaders
x-et-routed-model: <model-name>
x-et-route-tier:   High

# The body keeps the name you asked for,
# so your client never breaks:
{"model": "et:auto", ...}

And on your usage page

The portal lists each request with the auto model you asked for and the model that answered.

TimeAsked for → answered by
14:02et:auto → <model-name>Mid
14:05et:auto → <model-name>High
14:05et:auto → <model-name>Low

Bring your own keyUse your own Anthropic or OpenAI key

Bring your own key (BYOK) means you save your own Anthropic or OpenAI API key in the portal. Requests that use it go straight to that provider, and the provider bills you directly.

  • Works with any pass. You need an active endlesstokens pass to save a key.
  • Checked, encrypted, hidden. We check the key with the provider when you save it, store it encrypted, and only ever show its last 4 characters.
  • Your consent first. When you save a key, you agree that prompts sent with it go to that provider.
  • Off for et:auto until you switch it on. Each key has a switch, "Let et:auto use this key". Off by default.
  • Call their models by name. With a key saved, you can also ask for that provider's specific models.
  • Yours to remove. Replace or delete a key at any time. Deleting your account deletes your keys.

Who pays for what

Our modelsYour pass. No token cap.
Anthropic or OpenAI modelsYou pay the provider directly, at their prices.

We don't resell Anthropic or OpenAI. Their models are reached only with your own key, under your own account with them.

Add your key in the portal ↗

Privacy
To route requests well, we keep anonymised numeric signals derived from your requests. We never keep the text, and the signals are not linked to your account. Requests sent with your own provider key are never used.

Full details in our privacy policy ↗.

Auto models FAQ

What does an auto model cost?

et:auto is included in every pass, at no extra cost. When a request goes to Anthropic or OpenAI with your own key, that provider bills you for it, at their prices. We add nothing on top.

Which models does it use?

et:auto uses the open models we host (see Models) and, only if you switch it on, the models your own key can reach. claude:auto uses only Anthropic models and openai:auto only OpenAI models. Every response names the model that answered.

How do I opt out?

Pick a model by name. We only route when you ask for an auto model.

Will my conversation jump between models?

No. One conversation stays on one model. It moves up to a stronger model only if the lighter one struggles, and never moves down.

Can et:auto spend my provider key without asking?

No. The switch "Let et:auto use this key" is off by default, for each key. While it is off, et:auto uses only our models.

What if my provider key stops working?

et:auto carries on with our strongest model. claude:auto and openai:auto return the provider's error, and the portal asks you to replace the key.

Do you keep my prompts to train the router?

No. We keep only anonymised numbers derived from requests, never the text, and they are not linked to your account. Requests sent with your own provider key are never used.

Try it: set your model to et:auto

Works in Claude Code, Codex, Cline and any OpenAI- or Anthropic-compatible client. Set every model slot to the auto name, including the small, fast one.