Skip to main content

How to Set Up DeepSeek on Janitor AI: Proxy URL, Model Name, Key

For DeepSeek in Janitor AI, enter https://api.deepseek.com/chat/completions and the model deepseek-flash. deepseek-chat was discontinued on July 24, 2026.

LaoZhang AI TeamPublishedUpdated 16 min read
On this page
Codex-generated route board for setting up DeepSeek on Janitor AI without mixing proxy URL, API key, and model name

To set up DeepSeek on Janitor AI, open a chat, choose Proxy, add a configuration, and fill three fields from the same account. As of October 22, 2026, the direct DeepSeek values are: Proxy URL https://api.deepseek.com/chat/completions, Model Name deepseek-flash (or deepseek-v4-pro), and an API key from the DeepSeek Platform. Through OpenRouter, use https://openrouter.ai/api/v1/chat/completions, an OpenRouter key, and a slug such as deepseek/deepseek-v4.1-flash.

Values from older tutorials fail for specific reasons. deepseek-chat and deepseek-reasoner were scheduled for discontinuation on July 24, 2026, and DeepSeek no longer lists them. deepseek-v4-flash is still accepted, but DeepSeek now serves it with the newer V4.1 Flash model. OpenRouter lists no :free DeepSeek model as of the same date. If the first test fails, read the error before you change anything: 401 is the key, 402 is the balance, 404 is the URL or model name, and 429 is a rate or daily limit.

Quick setup matrix

Pick one row and keep every field in that row. A typical broken setup combines a URL from one service, a key from another, and a model name copied from an old post.

Codex-generated setup matrix showing DeepSeek direct route and provider proxy fields for Janitor AI

The chart's model row and URL show the May 2026 values; the table and text below have the current ones.

RouteProxy URLAPI keyModel NameUse it when
Direct DeepSeek APIhttps://api.deepseek.com/chat/completionsDeepSeek Platform keydeepseek-flash or deepseek-v4-proYou want DeepSeek's own prices, peak/off-peak billing, and one fewer middle layer
OpenRouterhttps://openrouter.ai/api/v1/chat/completionsOpenRouter keydeepseek/deepseek-v4.1-flash or deepseek/deepseek-v4-proYou already use OpenRouter credits or want one key for many models
Values from older tutorialshttps://api.deepseek.com/v1 or the bare base URLAnydeepseek-chat, deepseek-reasoner, deepseek-r1:free, deepseek/deepseek-chat-v3-0324:freeOnly to understand why an old setup stopped working; replace them with a row above

Facts in this table are as of October 22, 2026, from DeepSeek's models and pricing page and OpenRouter's public model list.

DeepSeek publishes https://api.deepseek.com as its OpenAI-format base URL, and its own example request goes to https://api.deepseek.com/chat/completions. Janitor's Proxy URL field shows the placeholder https://url.com/v1 and offers an Add /chat/completions button, and Janitor's own OpenRouter instructions use the full chat-completions address. Enter the full URL. If you pasted only the base URL, click Add /chat/completions to complete it.

The /v1/chat/completions form also reaches DeepSeek's server: on October 22, 2026, both addresses answered a request carrying an invalid key with the same 401 message. That test proves the host is reachable. It does not prove a reply, because DeepSeek checks the key before it looks at the path. No message was sent from a Janitor chat with a funded DeepSeek key, so treat /chat/completions as the documented choice rather than a confirmed Janitor result.

Choose direct DeepSeek or a provider proxy first

Use the direct DeepSeek API when you want DeepSeek's account, key, endpoint, model names, and prices. You top up a balance on the DeepSeek Platform; when it runs out, DeepSeek returns 402 Insufficient Balance. Prices are half during off-peak hours, which matters for long roleplay sessions (see the cost section below).

Use OpenRouter when you already have OpenRouter credits or want one key for many model families. Janitor then sends the request to OpenRouter, and OpenRouter picks a provider that serves the DeepSeek model you named. The model name must be OpenRouter's slug, with the deepseek/ prefix. Per-token prices depend on the provider OpenRouter picks, so read them on the model's OpenRouter page.

Do not mix the two. A DeepSeek key sent to OpenRouter fails, an OpenRouter key sent to DeepSeek fails, and deepseek/deepseek-v4.1-flash sent to DeepSeek's endpoint fails because DeepSeek only knows deepseek-flash and deepseek-v4-pro. The 401 message tells you which service rejected the key:

401 message you seeService that answeredWhat it means
Authentication Fails, Your api key: ****xxxx is invalidDeepSeekThe URL points at DeepSeek and the key is wrong, revoked, or from another service. The last four characters show which key was sent.
Authentication Fails (governor)DeepSeekNo key reached DeepSeek. Paste the key into the API key field again.
Missing Authentication headerOpenRouterThe URL points at OpenRouter and the key is malformed, or it is a DeepSeek key.
No cookie auth credentials foundOpenRouterNo key reached OpenRouter.

These messages were recorded on October 22, 2026 by sending requests with invalid or missing keys to both endpoints.

Janitor also has its own paid janitor+ Router, which bills per token from a Janitor wallet and needs no outside API key. Which models it offers has to be checked inside your Janitor account. Choose it only if you would rather not manage a DeepSeek or OpenRouter account.

Set it up in Janitor AI

The button and field names below are the ones in Janitor's English interface text as of October 22, 2026 (interface version 10.0.0.143). Other interface languages and later versions can word them differently.

  1. Open the chat where you want DeepSeek and open the API settings for that chat.
  2. Choose Proxy.
  3. Click Add Configuration (or + New in the proxy configurations list).
  4. Give it a Configuration Name, for example "DeepSeek Flash direct".
  5. In Model Name, type deepseek-flash, or deepseek-v4-pro if you want the larger model.
  6. In Proxy URL, paste https://api.deepseek.com/chat/completions. If you typed only https://api.deepseek.com, click Add /chat/completions.
  7. In API key, paste your DeepSeek key with no spaces before or after it.
  8. Leave Custom prompt (optional) empty for the first test.
  9. Click Check API Key/Model. Janitor's help notes that this button can show "Network Error" even on a working setup; if it does, continue to the next step instead of rotating keys.
  10. Click Save Settings, then refresh the page. Janitor's own notice says a new or changed Proxy URL takes effect only after a refresh.
  11. Send one short message, such as "Reply with one sentence that says the connection works."

Keep the first test short so that any failure points at the connection, not at your character card. Two other details in the same panel are worth knowing. Janitor warns that it is not affiliated with any proxy and that your IP and chat log may be logged by the proxy service. When you export or copy configurations as JSON (name, apiUrl, apiKey, model), keys are not kept in history, so you re-enter the key after restoring.

To test the key outside Janitor, send the same values from a terminal. Replace $DEEPSEEK_API_KEY with your key or set it as an environment variable:

bash
curl https://api.deepseek.com/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -d '{"model":"deepseek-flash","messages":[{"role":"user","content":"Reply with one sentence that says the connection works."}],"thinking":{"type":"disabled"}}'

A JSON reply with a choices array means the key, balance, and model name are fine, so the problem is in the Janitor fields or the missing refresh. A 401 or 402 here points to the key or the balance, and Janitor settings will not fix it. With an invalid key, this exact command returned HTTP 401 Authentication Fails on October 22, 2026; a successful run needs a funded key.

Model name: current IDs, provider slugs, and old aliases

On DeepSeek's own API, two model names are current as of October 22, 2026: deepseek-flash and deepseek-v4-pro. Any other name in Janitor community posts is either an alias that still works for now or a name that has been removed.

Name in the Model Name fieldWhat it means on October 22, 2026Use it in Janitor?
deepseek-flashDeepSeek-V4.1-Flash-1017, released October 17, 2026. 1M context, thinking on by default.Yes. The cheaper default.
deepseek-v4-proDeepSeek-V4-Pro-0813. 1M context, thinking on by default. Cache-miss input costs 4.4 times the Flash rate and output 3.3 times.Yes, if you want the larger model.
deepseek-v4-flashLegacy name. Still accepted, but the old V4 Flash model is retired; DeepSeek serves these requests with V4.1 Flash at the Flash price.It works today. Switch to deepseek-flash, since DeepSeek has published no end date for the alias.
deepseek-chat, deepseek-reasonerScheduled for discontinuation on July 24, 2026 at 15:59 UTC and absent from DeepSeek's current docs.No. Replace with deepseek-flash.

Sources: DeepSeek models and pricing, the DeepSeek V4.1 Flash-1017 release note, and the archived DeepSeek docs page from July 15, 2026 that gives the deepseek-chat cutoff. The exact error a deepseek-chat request returns now was not tested.

If you searched for "DeepSeek V4 Flash" or "DeepSeek V4 Pro" on Janitor AI: V4 Pro is still deepseek-v4-pro, and V4 Flash has been replaced by V4.1 Flash under the name deepseek-flash. The old deepseek-v4-flash name still reaches V4.1 Flash for now.

On OpenRouter, names carry the deepseek/ prefix. As of October 22, 2026 its catalog lists deepseek/deepseek-v4.1-flash and deepseek/deepseek-v4-pro, dated variants such as deepseek/deepseek-v4.1-flash-1017 and deepseek/deepseek-v4-pro-0813, and older models such as deepseek/deepseek-v3.2, deepseek/deepseek-r1-0528, and deepseek/deepseek-chat-v3-0324. None of them ends in :free.

A model name only counts on the endpoint that receives it. deepseek-flash is unknown to OpenRouter, and deepseek/deepseek-v4.1-flash is unknown to DeepSeek. That mismatch is a frequent cause of a 404 after an otherwise correct setup.

Troubleshooting the first failed test

Codex-generated error map for 401, 404, 429, network error, invalid model, and API-not-ready Janitor AI DeepSeek setup failures

Change one field per retry. If you change the URL, key, model, and prompt at once, the next error cannot tell you which change mattered.

First symptomLikely causeWhat to check first
401 Authentication FailsWrong key, or a key from the other serviceUse the 401 message table above to see which service answered, then paste a fresh key from that service.
402 Insufficient Balance (DeepSeek) or 402 on OpenRouterNo money left on that accountTop up DeepSeek or add OpenRouter credits. Model and URL changes will not help.
404, "The selected model or proxy endpoint is unavailable"Proxy URL path or Model Name not found on that endpointConfirm the URL ends in /chat/completions and the model name belongs to that service. On OpenRouter, "No endpoints found for model name" means the slug is gone.
400Request format DeepSeek cannot read; on OpenRouter, often a request over the model's context lengthShorten memory or chat history, then retry with a short message.
422 Invalid ParametersA setting value DeepSeek does not acceptReset Janitor's generation settings to defaults and retry.
429 Rate Limit ReachedRequests too fast or too many at once; on OpenRouter free models, the daily capWait, avoid rapid rerolls, and check OpenRouter's daily limit if you use a :free model.
500 Server Error or 503 Server OverloadedDeepSeek-side problemWait and retry later. Your settings are not the cause.
"A network error occurred"Wrong Proxy URL or a page that was not refreshed after savingFix the URL, click Save Settings, and refresh the page.
Stuck generating, empty replyThinking mode taking long, or a busy serverWait. DeepSeek keeps the connection open and gives up only if generation has not started after 10 minutes. Then lower the response length and test with a short message.

DeepSeek's codes come from its error code reference and rate limit page; the OpenRouter and Janitor messages come from Janitor's OpenRouter error guide.

"The selected model or proxy endpoint is unavailable" (404)

This message does not appear in Janitor's interface text or help pages, so its exact trigger is not documented. The 404 status and the wording point to one of two causes: the Proxy URL path does not exist on that host (for example a bare /v1), or the Model Name does not exist there (for example a :free DeepSeek slug on OpenRouter, or possibly deepseek-chat on DeepSeek). Fix the URL first, then copy a model name from the table above.

"The AI provider rejected this request"

This message is also undocumented. Read it as "DeepSeek or OpenRouter returned an error." The cause is usually one of the coded errors above: a wrong key (401), no balance (402), an unknown model (404), or a request too long for the model (400). If Janitor shows a status code next to it, use that row of the table.

Tune roleplay settings after the connection works

A working short test proves the connection, not the writing quality. Tune style after DeepSeek answers, one setting at a time.

Thinking mode is on by default

Both deepseek-flash and deepseek-v4-pro run in thinking mode unless the request turns it off. The model writes its reasoning before the reply, so the first words arrive later and each reply uses more tokens. DeepSeek returns that reasoning separately from the reply, and Janitor's Show Thinking toggle decides whether you see it in the chat.

In thinking mode, DeepSeek ignores temperature, presence_penalty, and frequency_penalty without returning an error. Moving Janitor's temperature slider will therefore not change DeepSeek's style. Janitor's proxy settings, as listed in its current English interface text, have no field for DeepSeek's thinking switch, so expect thinking to stay on; this has not been confirmed in a live chat. Steer style through the character card and the custom prompt instead. The details are in DeepSeek's thinking mode guide.

SettingStarting pointWhy
TemperatureLeave at defaultDeepSeek ignores it while thinking is on
Max response lengthModerate for the first scenesLonger replies cost more and take longer, on top of the reasoning text
Context and memoryKeep only what the scene needsJanitor sends it with every message, so it drives cost
RerollsFix a failing setting before rerollingEach reroll is a full new request and is billed again
Custom promptAdd after the connection worksA short style prompt is easier to debug than a long one

Custom prompt for DeepSeek V4 in Janitor

Janitor has two prompt fields for proxies. The Global prompt applies to all proxy configurations and is sent above the per-configuration Custom prompt. Use them for style, length, and staying in character. A short example that works with any model:

Reply only as the character. Write in third person, past tense, 150–250 words.
Do not write dialogue or actions for my persona.
End each reply at a point where I can respond.

Keep the prompt short. Janitor sends it with every message, so a long prompt raises the cost of every reply. If replies run long or drift out of character, change one line at a time and test again.

What one Janitor reply costs on DeepSeek: $0.0015 to $0.0125

Janitor's interface notes that your provider counts tokens for the full request: character details, your persona, conversation history, memory, selected prompts, and any platform safety instructions. The character's token count alone understates it. So input tokens, not the reply, drive the cost of a long chat.

DeepSeek prices per 1 million tokens as of October 22, 2026:

ModelInput, cache miss (off-peak / peak)Input, cache hit (off-peak / peak)Output (off-peak / peak)
deepseek-flash$0.15 / $0.30$0.003 / $0.006$0.60 / $1.20
deepseek-v4-pro$0.66 / $1.32$0.022 / $0.044$1.98 / $3.96

Worked example for one reply with 8,000 input tokens (no cache hits) and 500 output tokens:

  • deepseek-flash off-peak: 8,000 × $0.15 / 1M + 500 × $0.60 / 1M = $0.0012 + $0.0003 = $0.0015, about $0.15 per 100 replies.
  • deepseek-flash peak: $0.0030, about $0.30 per 100 replies.
  • deepseek-v4-pro off-peak: $0.00528 + $0.00099 = $0.00627, about $0.63 per 100 replies.
  • deepseek-v4-pro peak: $0.01254, about $1.25 per 100 replies.

Thinking mode adds reasoning text to each reply, so real costs will likely run above these figures; DeepSeek's thinking mode guide does not state a separate rate for reasoning tokens. Any part of the input billed as a cache hit costs far less, as the table shows.

Peak hours are 01:00–04:00 and 06:00–10:00 UTC, Monday through Friday, except Chinese public holidays. In US Eastern Daylight Time that is 9 PM to midnight and 2 AM to 6 AM, from Sunday evening to Friday morning; after clocks fall back on November 1, both windows start one hour earlier on the clock. Weekends are off-peak all day. DeepSeek says its prices can change. For the full price table and when waiting pays off, see DeepSeek API Peak Hours: Current Prices and When to Wait.

Free DeepSeek routes are not a setup guarantee

As of October 22, 2026, there is no free DeepSeek model on OpenRouter. Its catalog has 18 models ending in :free, and none is a DeepSeek model. Janitor's own TL;DR Quickstart Proxy Instructions, last updated in January 2025, still shows deepseek/deepseek-chat-v3-0324:free. That slug is no longer in OpenRouter's catalog; Janitor's OpenRouter error guide lists 404 "No endpoints found for model name" for a model that is gone.

OpenRouter's free models of other brands have limits: 20 requests per minute, plus 50 requests per day on accounts that have bought less than 10 credits, or 1,000 per day after buying at least 10 (OpenRouter API rate limits). A long roleplay session can hit 50 messages quickly, especially with rerolls.

The cheapest honest DeepSeek option is the paid one at off-peak hours: on deepseek-flash, a typical 8,000-token reply costs about $0.0015, as calculated above. Sites that offer "free DeepSeek proxies" or shared keys sit between you and the model, can log your chats, and can disappear without notice.

Never paste your own API key into a character card, a public prompt, a screenshot, or a shared preset. The key belongs only in Janitor's API key field or in your provider dashboard. If a key leaks, delete it in the DeepSeek or OpenRouter dashboard and create a new one.

FAQ

What proxy URL should I use for DeepSeek on Janitor AI?

For DeepSeek's own API, use https://api.deepseek.com/chat/completions. If you entered only https://api.deepseek.com, click Add /chat/completions in Janitor's Proxy URL field. For OpenRouter, use https://openrouter.ai/api/v1/chat/completions. Refresh the page after saving.

Which DeepSeek model name should I put in Janitor AI?

On the direct DeepSeek API, use deepseek-flash (DeepSeek-V4.1-Flash-1017 as of October 22, 2026), or deepseek-v4-pro for the larger, pricier model. On OpenRouter, use deepseek/deepseek-v4.1-flash or deepseek/deepseek-v4-pro. Names without the deepseek/ prefix only work on DeepSeek's endpoint.

Can I use deepseek-chat or deepseek-reasoner?

No. DeepSeek scheduled both names for discontinuation on July 24, 2026, and they are no longer in its docs. Replace them with deepseek-flash. Thinking mode, which deepseek-reasoner used to provide, is now on by default.

Does deepseek-v4-flash still work on Janitor AI?

Yes, for now. DeepSeek still accepts deepseek-v4-flash but serves it with V4.1 Flash at the Flash price, and recommends switching to deepseek-flash. No end date for the old name has been published.

Is OpenRouter required for Janitor AI DeepSeek setup?

No. Janitor's proxy option works with DeepSeek's own API directly. Choose OpenRouter only if you want one OpenRouter key and credit balance for many models. Its DeepSeek models are paid.

Is there a free DeepSeek proxy for Janitor AI?

Not on OpenRouter as of October 22, 2026: none of its 18 :free models is a DeepSeek model. Paid deepseek-flash at off-peak hours costs about $0.0015 for an 8,000-token reply. Avoid sites that hand out shared keys.

Why does Janitor AI say invalid model?

The Model Name does not exist on the endpoint in your Proxy URL. Common cases are a deepseek/... slug sent to DeepSeek, deepseek-flash sent to OpenRouter, an old :free slug, or a discontinued name such as deepseek-chat. Copy a name from the model table above that matches your URL.

Why do I get 401 after pasting my DeepSeek API key?

The key was rejected by the service your Proxy URL points to. Authentication Fails, Your api key: ****xxxx is invalid means DeepSeek rejected it; check the last four characters and look for extra spaces. Missing Authentication header means the URL points to OpenRouter, which does not accept DeepSeek keys.

Why do I get 429 or quota errors?

On DeepSeek, 429 means requests are too fast or too many at once; slow down and avoid rapid rerolls. An empty DeepSeek balance gives 402 instead. On OpenRouter free models, 429 "free-models-per-day" means the daily cap of 50 or 1,000 requests is used up.

What prompt should I use for DeepSeek V4 on Janitor AI?

Start without one, confirm the connection, then add a short Custom prompt about style, length, and staying in character, like the example in the roleplay settings section. Janitor sends the prompt with every message, so shorter prompts also cost less.

Where should I learn more about current DeepSeek API models?

For DeepSeek's model names, prices, and peak hours, see DeepSeek API Peak Hours: Current Prices and When to Wait. For using the same DeepSeek and OpenRouter accounts in Claude Code instead of Janitor, see Claude Code with OpenRouter and DeepSeek: Setup, Routes, and First-Error Fixes.

Sources checked

More in API Guides