A Janitor AI proxy is usually not a VPN or an IP-hiding tool. It is an LLM API route, and the setup works only when the endpoint, exact model ID, and API key belong to the same provider; a reverse proxy adds another server and another trust decision.
Choose the route before opening Janitor AI
For most users, a direct OpenAI-compatible API endpoint is the simplest Janitor AI proxy setup. An aggregator such as OpenRouter is useful when you want one account to expose multiple models, while a reverse proxy makes sense when you control the relay or need to adapt a private or local backend.
| Route | Request path | Who handles the request? | Setup burden | Best starting point? |
|---|---|---|---|---|
| Direct API | Janitor AI → provider or gateway | The endpoint operator and its upstream model provider | Low | Yes, for a normal external API |
| Aggregator | Janitor AI → model aggregator → selected model | The aggregator plus its upstream provider | Low to medium | Yes, when you need model choice |
| Reverse proxy | Janitor AI → your relay → provider or local model | You, the relay host, and the upstream provider | Medium to high | Only when you control the relay |
Do not confuse a shared “free proxy” with a direct API connection. A shared relay can read traffic sent through it, disappear without notice, or ask for credentials it should never receive. A provider key used with that provider’s own endpoint is a different arrangement.
What Janitor AI proxy fields actually mean
When you use Janitor AI’s Proxy form, verify three route-specific values: the endpoint URL, the exact model ID, and the API key. They should all come from the same provider or relay.
| Janitor AI field | What to enter | What commonly goes wrong |
|---|---|---|
| Configuration Name | Any label, such as AIReiter GPT-5.6 Luna | Changing this label does not change the model |
| Model Name | The provider’s exact current model ID | A display name, capitalization change, or stale :free suffix can produce a model error |
| Other API/Proxy URL | The endpoint format required by the route | A base URL may be accepted by an SDK but not by Janitor AI’s proxy field |
| API Key | A key created for that same endpoint or relay | A key from another provider, a revoked key, or a key with an extra space will fail |
The full request URL and an SDK base URL are not always interchangeable. An OpenAI-compatible SDK commonly uses a base such as https://example.com/api/v1 and appends /chat/completions itself. Janitor AI’s proxy field may require the final URL, https://example.com/api/v1/chat/completions, so follow the endpoint’s client-specific instructions.
Janitor AI also has a character-level proxy permission. In an official moderator announcement, Janitor AI explained that selecting Allow Proxy lets people use a bot with proxies because the proxy receives the bot’s information. A character restricted to OpenAI and JanitorAI options cannot be used through an outside proxy. That permission is separate from whether your API key is valid.
The five-minute Janitor AI setup
Create one configuration, save, refresh, and test with a short prompt to isolate endpoint, model-ID, or key errors.
1. Create a provider key
Create an API key with the provider or gateway whose URL you will paste into Janitor AI. Copy it when the service shows it, store it as a secret, and do not post it in screenshots, Discord messages, browser extensions, or shared proxy forms.
A model marked free can still require a provider key. “Free” usually describes the model’s current price or quota at that provider; it does not mean Janitor AI can call the model without authentication.
2. Open the Proxy panel
Open a character chat in Janitor AI and locate API Settings. Choose Proxy, then Add Configuration or the equivalent control. For current product guidance, check Janitor AI’s official Help Center account and configuration category, because labels and placement can change.
Users have reported changed fields and required model entries in Janitor AI’s proxy UI. (Example user report)
3. Fill, save, refresh, and test
Enter values supplied by one route. Do not combine an endpoint from one service, a model ID copied from another service, and a key from a third account.
- Give the configuration a recognizable name.
- Paste the exact model ID from the provider’s live model page or model list.
- Paste the complete endpoint required by Janitor AI’s proxy field.
- Paste the matching API key.
- Save the configuration.
- Refresh or reopen the Janitor AI tab, then send a short test message.
If the character is not proxy-enabled, switch to a character that allows proxies before diagnosing the endpoint. A valid provider configuration cannot override a creator’s proxy restriction.
AIReiter configuration: a verified OpenAI-compatible route
For an AIReiter route, put the final Chat Completions URL in Janitor AI’s Proxy URL field, not the shorter SDK base URL. AIReiter’s GPT-5.6 integration guide lists Chat Completions at /api/v1/chat/completions, shows gpt-5.6-luna as an example model, and separates the client base URL from the client-appended path.
Use this configuration as the starting point:
| Janitor AI field | AIReiter value |
|---|---|
| Configuration Name | AIReiter GPT-5.6 Luna |
| Model Name | gpt-5.6-luna |
| Other API/Proxy URL | https://aireiter.com/api/v1/chat/completions |
| API Key | Your AIReiter API key |
The endpoint distinction is:
- Janitor AI Proxy URL:
https://aireiter.com/api/v1/chat/completions - OpenAI-compatible SDK base URL:
https://aireiter.com/api/v1 - Model-list check:
https://aireiter.com/api/v1/models
Do not paste /api/v1/models into Janitor AI; it is a diagnostic route for checking whether the model ID is available. AIReiter’s guide shows this self-check pattern:
curl -sS "https://aireiter.com/api/v1/models" \
-H "Authorization: Bearer $AIREITER_API_KEY"
If the response does not contain gpt-5.6-luna, use the exact model ID returned by the list and update the Janitor AI configuration. Keep the endpoint and key unchanged when testing a model-ID problem.
AIReiter uses pay-as-you-go billing rather than a plan tier, so the API key still needs an account with usable balance. The current AIReiter pricing page is the source to check before relying on a displayed rate; a chat’s cost depends on input and output tokens, not only the number of messages.
OpenRouter or another provider: adapt the same form
The Janitor AI form stays the same when you switch providers, but the endpoint, key, and model ID must change together. OpenRouter’s official quickstart documents its OpenAI-compatible API, and its current model catalog is the place to copy a live model ID.
| Field | OpenRouter pattern |
|---|---|
| Model Name | Copy the exact current ID from OpenRouter’s model catalog |
| Other API/Proxy URL | https://openrouter.ai/api/v1/chat/completions |
| API Key | A key created in your OpenRouter account |
Treat a model suffix such as :free as a live availability label, not permanent configuration data. Free models can be removed, rate-limited, or renamed; copy the current ID immediately before saving the Janitor AI configuration.
An official Janitor AI moderator thread links to Janitor’s proxy/OpenRouter quickstart and troubleshooting material, while separating Janitor integration issues from provider billing and account support. For a direct provider connection, replace all three route-specific values with that provider’s own endpoint, key, and model ID.
Reverse proxy vs direct API: the security decision
A direct route has the fewest moving parts: the provider or gateway handles authentication, limits, billing, logging, and its privacy policy. A reverse proxy inserts a relay, which can inspect, transform, log, or reject traffic before it reaches the upstream model.
Use a reverse proxy only when you have a reason to operate one, such as connecting a private backend through an authenticated HTTPS relay or normalizing a provider protocol. A private localhost URL works only if the component making the request runs on that same machine; if Janitor AI’s server makes the request, its server cannot reach your computer’s localhost. Use a properly authenticated public HTTPS relay when that architecture is required.
If you control the relay, keep this checklist:
- Require HTTPS and a separate authentication token for the relay.
- Store the upstream provider key on the relay rather than pasting it into an unknown shared service.
- Disable verbose request-body logging, or set a short, documented retention period.
- Restrict allowed upstream hosts and request methods.
- Check whether the relay forwards headers, conversation history, and character data.
- Revoke and replace credentials after suspected exposure.
A real-user warning illustrates why anonymous relays deserve scrutiny:
“if u use the moxxie proxy on janitor ai please stop using it !! whoever used that proxy your chats have gotten leaked and so has your ip address...” — @Ash3rz_c0m, user warning on X, June 2023 (source)
This is a user-reported incident, not proof that every reverse proxy is malicious. Do not put a real provider key or private conversation into a relay whose operator, retention, and incident history you cannot verify.
Diagnose failures by the hop that failed
Most Janitor AI proxy errors become easier to isolate when you test the route in layers. First check whether Janitor AI’s built-in model responds, then verify configuration values one at a time before investigating quotas or provider outages.
| Symptom or status | Likely layer | First check |
|---|---|---|
400 or “invalid model” | Request or model selection | Copy the exact live model ID; check capitalization, provider prefix, and any suffix |
401 Unauthorized | Authentication | Revoke a doubtful key, create a replacement, remove spaces, and confirm it belongs to the endpoint provider |
402 or payment/quota message | Account balance or entitlement | Check credit, billing status, and the provider’s current free allowance |
404 or “model not found” | URL or model route | Compare the full endpoint path and model ID with the provider’s current docs |
429 | Rate or usage limit | Wait, reduce request frequency, change to an available model, or add balance where appropriate |
500, 502, 503, or timeout | Upstream or relay availability | Retry later, check provider status, and test without a custom relay if possible |
| “Failed to fetch” or network error | Browser, endpoint, CORS, or unreachable relay | Recheck HTTPS, the full URL, and whether the relay is publicly reachable |
Status-code meanings vary by provider, so use the response body as the higher-priority clue. A model-name error is not fixed by regenerating a key, and a revoked key is not fixed by changing temperature.
Community reports show why model IDs need a freshness check. In a Janitor AI beginner thread, u/Puzzleheaded-Town350 posted:
“I get this message ‘proxy error 400 open-mistral-nemo-2407 is not a valid model’” — u/Puzzleheaded-Town350 in r/JanitorAI_Official
Use this order when a new configuration fails:
- Test Janitor AI’s built-in model to separate a platform problem from a proxy problem.
- Confirm that the character allows proxies.
- Confirm the final endpoint URL, including
/chat/completionswhen the route requires it. - Confirm the exact model ID from the provider’s live list.
- Confirm that the key matches the endpoint and still has permission or balance.
- Retry with default generation settings before adjusting temperature or token limits.
Privacy and account hygiene
The endpoint can receive prompts, conversation history, model-selection data, and sometimes character information. Review the privacy terms and retention settings for the direct provider, aggregator, or relay you choose.
If a key may have been exposed, revoke it, create a replacement, remove the old value from Janitor AI configurations, and check usage history. Do not test a leaked key by continuing to use it.
Janitor AI proxy FAQ
Is a Janitor AI proxy a VPN?
No. It routes chat requests to an external LLM; a VPN changes network routing and does not supply a language model.
Do I need an API key for a free model?
Usually, yes. A provider may charge nothing for a model or quota while still requiring an account-specific key.
Should I paste the full URL or only /api/v1?
Use the final URL that Janitor AI’s Proxy field expects. For the AIReiter example, that is https://aireiter.com/api/v1/chat/completions; /api/v1 is the SDK base URL.
Why does one character refuse to work with a proxy?
The character creator may have disabled proxy use. A valid external key cannot override that setting.
Can Janitor AI call localhost directly?
Only if the component making the request runs on the same machine as the local server. Otherwise, use an appropriately secured public HTTPS relay rather than exposing an unauthenticated local service.
Why did a previously working model ID stop working?
Providers change model availability, aliases, quotas, and free-tier labels. Recheck the live model list and update the model field first.
Is a shared free proxy safe?
Do not assume so. The operator can potentially read requests or capture credentials; prefer a direct provider route or a reverse proxy that you operate and can audit.
Start with one private key, one exact model ID, and one complete endpoint. Direct API setup wins on simplicity; a reverse proxy earns its maintenance only when you need control over the relay or upstream connection.