JanitorAI proxy setup with an OpenAI-compatible API
Connect JanitorAI to an OpenAI-compatible API: the exact proxy URL, model name and key fields, cost per message, and fixes for common errors. 18+.
Short answer
In a JanitorAI chat, open API Settings, choose Proxy, and add a configuration with three values: the full chat-completions URL (https://tryunrestrictedai.com/v1/chat/completions), a model ID from our catalog (for example venice-uncensored-role-play), and your API key. Save, refresh, and send a test message.
18+ only. JanitorAI’s own content rules still apply to its site, and our terms apply to our API. The click-by-click version with copy buttons is on the JanitorAI setup page.
Before you start
- An Unrestricted AI account and an API key, created in the console. Keys are shown once.
- API usage needs a monthly plan (Starter is $19 and includes $19 of usage), a prepaid top-up from $5, or the one-time $0.50 API trial that verified accounts can claim in the console. The 50 free daily messages cover our chat app, not the API.
- Set a per-key budget on the key you give JanitorAI so a runaway chat cannot drain your balance.
Step by step
- Create a key. Console, API keys, New key. Name it
janitoraiand set a budget. Copy it. - Open JanitorAI and start or open a chat.
- Open API Settings. JanitorAI’s guide: "In the chat (top-right), click the gear icon > 'API Settings' > 'Add Configuration'".
- Fill in the fields from the table below.
- Generation settings: keep max new tokens at 4,096 or less and the total context at 32,768 tokens or less. Temperature, top-p and the other JanitorAI sliders are accepted (see the next section).
- Save, refresh the page, and send a test message. JanitorAI’s guide also tells you to refresh after saving.
| JanitorAI field | Value |
|---|---|
| Config Name | Unrestricted AI |
| Model Name | venice-uncensored-role-play (or any ID from the catalog) |
| Proxy URL | https://tryunrestrictedai.com/v1/chat/completions (full path, no trailing slash) |
| API Key | Your key, with no spaces |
What we tested (8 Nov 2026)
We sent JanitorAI-shaped requests to production: a streaming request with a system card, an opening assistant line and a user turn, plus temperature, top_p, top_k, repetition_penalty, presence_penalty and frequency_penalty. It streamed a reply. A browser preflight from https://janitorai.com returns Access-Control-Allow-Origin: *, so calls made from the JanitorAI page are allowed.
Requests can carry up to 256 messages. temperature, top_p, max_tokens, stop (up to 4 strings) and stream are forwarded to the model. Other sampler fields JanitorAI sends are accepted and ignored instead of causing an error.
Which model to pick (per 1M tokens, 8 Nov 2026)
All routes below have a 32,768-token service context and 4,096 max output.
| Model ID | Input | Output | Notes |
|---|---|---|---|
venice-uncensored-role-play | $1.00 | $4.00 | Venice’s role-play-tuned route |
venice-uncensored-1-2 | $1.00 | $2.00 | General default |
deepseek-v4-1-flash-uncensored | $1.00 | $2.64 | |
featherless-llama-3.3-70b-instruct-abliterated | $1.30 | $2.00 | Abliterated 70B |
What a message costs
Role-play resends the character card and chat history with every message, so input tokens dominate. Example on venice-uncensored-role-play: 8,000 input tokens plus 300 output tokens is $0.008 + $0.0012, about $0.009 per message, or roughly 108 messages per $1. Shorter chat memory costs less. Try your own numbers in the cost calculator.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| 401 | Wrong or revoked key, or extra spaces | Re-paste the key |
| 402 | Plan allowance, top-up, trial or key budget used up | Check the console |
| 413 | Too much history for the service context | Lower the context or memory size in JanitorAI |
| 400 | A capability we do not offer: n above 1, logprobs: true, tools, or image content | Turn that option off; ordinary sampler sliders are fine |
| 429 | More than 30 requests a minute, or more than 3 in flight | Wait, and don’t spam regenerate |
| Network or "failed to fetch" | Usually a wrong URL path | Use the full /v1/chat/completions URL; CORS is open on /v1 |
FAQ
Is it the full URL or the base URL?
For JanitorAI, enter the full /v1/chat/completions URL. SillyTavern is different: it wants the base URL ending in /v1. See the SillyTavern guide.
Can I use the free 50 messages a day in JanitorAI?
No. The free allowance covers our chat app. API calls use a plan allowance, a top-up or the one-time $0.50 API trial.
Does Unrestricted AI save my JanitorAI chats?
API requests are not saved as conversations in our chat history, and prompt-text collection stopped on 8 Nov 2026. We keep usage metadata (timestamps, model, token counts, charges). The upstream provider processes the text. See the privacy policy.
Why does the model still refuse sometimes?
"Uncensored" means fewer blanket refusals, not guaranteed compliance. Try a different model ID, or read what an abliterated model is.