What is a proxy in JanitorAI? What it is and what it needs
Updated
A JanitorAI proxy is not a VPN or a hack. It is a custom AI provider: JanitorAI sends each chat turn to a web address you give it, with your API key and a model name, and shows the reply. For UnsavedAI that means the full URL ending in /v1/chat/completions, a key starting with sk-, and the model gemma-4-12b. Save it, then refresh the page.
Try it now, free, no account neededStart a story with The NarratorAny story you want, you chooseWhat "proxy" means in JanitorAI
JanitorAI keeps your characters and chats, but it does not have to write the replies itself. Under Provider you can pick Proxy, which tells JanitorAI: send the conversation to this other service and use whatever comes back. The word is a leftover from the early days, when people relayed requests through their own servers. Today it almost always means "an OpenAI-compatible API from a provider I chose".
So when people ask which proxy to use, they are really asking which model and which provider. The proxy settings are only the address book entry that points JanitorAI at it.
The three values every proxy needs
- Proxy URL: where to send the chat. JanitorAI wants the complete address, including /chat/completions at the end. For UnsavedAI it ends in /v1/chat/completions.
- API key: proves the request is yours. Ours start with sk- and are 67 characters long with no spaces.
- Model: the exact name the provider uses, typed in lowercase. gemma-4-12b works on every plan; gemma-4-31b needs Priority.
All three are on the Setup page with copy buttons once you have an account. Make a key just for JanitorAI so you can revoke it without touching your other apps.
Why it needs the full URL and a refresh
Most apps, SillyTavern included, take a base URL ending in /v1 and add the rest themselves. JanitorAI does not, so a URL that stops at /v1 lands nowhere and you see a network error or "Not found". This is the single most common reason a new proxy fails.
The other one is the refresh. JanitorAI only loads a new or edited proxy after the page reloads, so saving and immediately sending a message can still use the old settings. Save, refresh, then send a short "hi" as a test.
What goes where
Your character card, chat history and settings live on JanitorAI. Every time you send a message, JanitorAI builds a prompt from the card, your persona, recent history and your new line, and sends that whole bundle through the proxy. The provider writes the reply and sends it back.
UnsavedAI never stores API traffic and nobody reads or screens it, but JanitorAI still keeps its own copy of your chat as it always has. JanitorAI is also the one site allowed to call our API straight from a browser tab, which is why its proxy works without a server of your own.
When the proxy fails
Read the error text JanitorAI shows; it usually names the problem. - "A valid API key is required." means the key was cut short, has a space, or was revoked. - "This model is not included in your plan." means you typed gemma-4-31b on Free. - "Unknown model. Available models: ..." means a typo in the model name; the message lists the right ones. - "Failed to fetch" usually clears after a refresh, or means the URL is missing its end.
For the click-by-click version with every label, follow the JanitorAI setup guide. Then tune replies with our JanitorAI generation settings.
Questions people ask
Is using a proxy on JanitorAI allowed?
Yes. Proxy is one of the provider options JanitorAI offers in its own settings; it is how you choose a model from another provider.
Is a JanitorAI proxy free?
It depends on the provider. With UnsavedAI, an account and the gemma-4-12b model are free; Priority adds gemma-4-31b and skips the queue for $4.99 a month.
Do I need a new key for every character?
No. One key works for every chat in JanitorAI. Make separate keys per app, not per character.
