Features / Routing
One model id, the uncensored tiers behind it.
Send model "auto" and the router picks a build from the uncensored fast, balanced or frontier tier for each request. Name backups and they answer when a model fails. Save a character or a house style as a preset and call it by name.
The auto router’s uncensored tiers
The router tries each tier’s models in this order. Prices per million tokens, from the live catalog. auto.tier_max caps the tier a request may reach.
| Tier | Picked for | Model | Input | Output |
|---|---|---|---|---|
| Fast | everything else: chat and story turns | GLM-5.3 Flash Uncensored | $0.1053 | $0.3685 |
| MiMo-V2.5 Uncensored | $0.75 | $4.00 | ||
| DeepSeek V4.1 Flash Abliterated | $0.8488 | $1.6975 | ||
| Balanced | tools, code blocks, images, a JSON schema answer or a prompt over 16,000 tokens | GLM-5.3 Uncensored | $0.282 | $0.846 |
| DeepSeek V4 Pro Uncensored | $0.97 | $1.94 | ||
| DeepSeek V4.1 Flash Abliterated Fast | $1.75 | $3.50 | ||
| MiMo V2.6 Pro Uncensored | $1.5225 | $3.045 | ||
| Frontier | a reasoning ask, high reasoning effort, or tools with code | GLM-5.3 Abliterated | $2.1825 | $4.365 |
| Nemotron 3 Ultra 550B Uncensored | $1.125 | $6.60 |
curl https://api.uncensoredllm.ai/v1/chat/completions \ -H "Authorization: Bearer sk-ullm-live-…" \ -H "Content-Type: application/json" \ -H "x-session-id: story-118" \ -d '{ "model": "auto", "auto": {"tier_max": "balanced"}, "messages": [{"role": "user", "content": "Continue the scene from the tavern door."}] }'Fallbacks and route order
models names up to five backups tried in order. routing (or provider.sort) orders a model’s routes by price, latency or throughput.
curl https://api.uncensoredllm.ai/v1/chat/completions \ -H "Authorization: Bearer sk-ullm-live-…" \ -H "Content-Type: application/json" \ -d '{ "model": "glm-5.3-uncensored", "models": ["glm-5.3-flash-uncensored","glm-5.3-abliterated"], "routing": "throughput", "messages": [{"role": "user", "content": "Hello"}] }'Ways to name a preset
- model
- @preset/noir-narrator
- short
- @noir-narrator
- with a model
- glm-5.3-uncensored@preset/noir-narrator
- beside model
- "preset": "@preset/noir-narrator"
What a preset holds
- Model
- an id or your aliasplus up to 5 fallbacks
- Params
- temperature, top_p, min_p…repetition_penalty, max_tokens, stop, reasoning
- System prompt
- up to 32 KBprepended to yours, or in its place
- Tools
- merged by nameserver tools included
Presets for characters and system prompts
Write the narrator once and every client calls it by name: SillyTavern, Janitor AI, your own app. Change the preset and every caller gets the new version; the history keeps the old ones. The full picture is on Custom models. Create it on the Presets page or with an admin key:
curl https://api.uncensoredllm.ai/v1/presets \ -H "Authorization: Bearer $ULLM_ADMIN_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "noir-narrator", "model": "glm-5.3-uncensored", "models": ["glm-5.3-flash-uncensored","glm-5.3-abliterated"], "params": {"temperature": 0.9, "max_tokens": 900}, "system_prompt": "You are the narrator of a hard-boiled noir story. Stay in character. Never summarize.", "system_mode": "prepend" }'curl https://api.uncensoredllm.ai/v1/chat/completions \ -H "Authorization: Bearer sk-ullm-live-…" \ -H "Content-Type: application/json" \ -d '{"model": "@preset/noir-narrator", "messages": [{"role": "user", "content": "The rain hasn’t stopped for three days."}]}'Any client that lets you type a model id can send @preset/<name>, from SillyTavern to Janitor AI. The console docs have the same requests for every SDK.
Questions
A model from this catalog's uncensored tiers, chosen per request on our side without an extra model call. The answer's model field and x-uplink-model name the model, x-uplink-auto-tier its tier, and it bills at that model's price.
Yes, with an x-session-id header: the same session gets the same model for 30 minutes from its last request, so a character does not change voice mid-scene.
Only after every route of the model before it has failed before a byte reached you, so a stream falls back only before its first token. The model that answers is named in the response and billed at its own price. Up to 5 fallbacks per request, or a default list on the key.
A model, its fallbacks, default parameters, a system prompt of up to 32 KB that goes ahead of yours or replaces it, and tools. Your request’s own fields win. Presets keep a version history and are edited on the console’s Presets page or at /v1/presets.
routing: "price", "latency" or "throughput" sets the order a request tries the model’s routes in. The price you pay is the same whichever route answers.