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.

Open Presets

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.

TierPicked forModelInputOutput
Fasteverything else: chat and story turnsGLM-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
Balancedtools, code blocks, images, a JSON schema answer or a prompt over 16,000 tokensGLM-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
Frontiera reasoning ask, high reasoning effort, or tools with codeGLM-5.3 Abliterated$2.1825$4.365
Nemotron 3 Ultra 550B Uncensored$1.125$6.60
auto.sh
1curl https://api.uncensoredllm.ai/v1/chat/completions \
2 -H "Authorization: Bearer sk-ullm-live-…" \
3 -H "Content-Type: application/json" \
4 -H "x-session-id: story-118" \
5 -d '{
6 "model": "auto",
7 "auto": {"tier_max": "balanced"},
8 "messages": [{"role": "user", "content": "Continue the scene from the tavern door."}]
9 }'

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.

fallbacks.sh
1curl https://api.uncensoredllm.ai/v1/chat/completions \
2 -H "Authorization: Bearer sk-ullm-live-…" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model": "glm-5.3-uncensored",
6 "models": ["glm-5.3-flash-uncensored","glm-5.3-abliterated"],
7 "routing": "throughput",
8 "messages": [{"role": "user", "content": "Hello"}]
9 }'

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 alias
plus up to 5 fallbacks
Params
temperature, top_p, min_p…
repetition_penalty, max_tokens, stop, reasoning
System prompt
up to 32 KB
prepended to yours, or in its place
Tools
merged by name
server 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:

create-preset.sh
1curl https://api.uncensoredllm.ai/v1/presets \
2 -H "Authorization: Bearer $ULLM_ADMIN_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "name": "noir-narrator",
6 "model": "glm-5.3-uncensored",
7 "models": ["glm-5.3-flash-uncensored","glm-5.3-abliterated"],
8 "params": {"temperature": 0.9, "max_tokens": 900},
9 "system_prompt": "You are the narrator of a hard-boiled noir story. Stay in character. Never summarize.",
10 "system_mode": "prepend"
11 }'
use-preset.sh
1curl https://api.uncensoredllm.ai/v1/chat/completions \
2 -H "Authorization: Bearer sk-ullm-live-…" \
3 -H "Content-Type: application/json" \
4 -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.

More features

Join on Telegram