Janitor AI token costs: where your balance actually goes
Updated 2026-07-15
JanitorAI's proxy mode resends your character card, lorebook, and entire chat history with every single message, so cost is not a flat per-message rate, it climbs as a conversation grows. Early in a fresh chat a message on a budget model costs a fraction of a cent; the same message 300 turns into a long-running flagship-model chat can cost dozens of times more, purely from accumulated context.
Quick answer: cost climbs as the chat grows, it is not flat.
JanitorAI's own built-in model is included with the app and does not touch your wallet. Proxy mode is different: you point JanitorAI at an OpenAI-compatible API using your own key, and every message gets billed by that provider per token, input and output counted separately. Nothing about this billing model is unique to JanitorAI's proxy screen either; it works the same way in any tool that lets you bring your own OpenAI-compatible key. What differs is how JanitorAI chats tend to get used: the same character and the same lorebook running in one thread for weeks, which is exactly the pattern that makes context size compound instead of staying flat. The bill is not a fixed price per message. A proxy request resends the character card, any lorebook entries a keyword just triggered, your custom prompt, and the full chat history built up so far, every single time you hit send. Message one of a fresh chat might cost a fraction of a cent on a budget model. The same conversation 300 messages later is sending tens of thousands more tokens on every turn, so that message costs many times more, even though nothing about the model or the price per token changed. Two numbers actually decide the bill: how large your recurring context is (card, lorebook, custom prompt) and how long you let a single chat run before starting a new one. The rest of this page works through both with real numbers.
Where the tokens in a single message actually go.
None of this is unique to JanitorAI, it is how any chat completions API works once a character card is involved. What makes roleplay-style chats particularly token-hungry is that a good card plus a working lorebook plus a long-running thread easily reaches the size of a short story before the conversation itself even starts growing. Group chats compound this further. Each character carries its own card and takes its own turn, but the shared conversation history is resent for every character's response, so a four-character group chat can burn several times the tokens of a one-on-one chat for the same number of messages you actually read.
- Character card and personality: loaded once, then resent as input on every message for the life of the chat.
- Greeting and alternate greetings: whichever one starts the chat becomes part of the permanent history from message one.
- Lorebook / world info entries: silent until a keyword in the conversation triggers one, then its full text is injected into that message and stays in history afterward.
- Custom prompt or jailbreak-style instructions: resent alongside the card on every message, so length here is a recurring charge, not a one-time one.
- Growing chat history: every prior message and reply in the thread rides along as input tokens, which is why a message deep into a long chat costs more than the identical message on day one.
- Output tokens: billed separately, usually at a materially higher rate than input, and shaped by the max new tokens setting in the generation settings.
Worked example: the same message gets pricier as a chat runs longer.
Assume a lean, disciplined setup: a 900-token card plus lorebook plus custom prompt, and roughly 150 net new tokens of history added per exchange (your message plus the reply). The table below prices the same style of message at four points in a single chat's life, on a budget model and a flagship model.
| Point in the chat | Input tokens (approx.) | Output tokens | Cost: deepseek-v4-flash | Cost: claude-sonnet-4-6 |
|---|---|---|---|---|
| Message 1 (fresh chat) | ~900 | ~220 | $0.0002 | $0.0048 |
| Message 25 | ~4,500 | ~220 | $0.0006 | $0.0134 |
| Message 100 | ~15,750 | ~220 | $0.0020 | $0.0404 |
| Message 300 (long-runner) | ~45,750 | ~220 | $0.0058 | $0.1124 |
Why the bill catches people off guard.
Most surprise bills trace back to one of these five habits, and none of them show up as an error message. None of them is a bug either; JanitorAI has no way to warn you about any of them, since the app itself never sees your provider's per-token price. The warning sign is always the same: a chat that has been running for weeks and a bill that keeps drifting upward with no obvious cause.
- Lorebook entries fire silently: a keyword match injects a full entry into the message that triggered it, and it stays part of the history from then on, even if you never notice it in the chat window.
- Regenerate reruns the whole message, not just the reply: clicking it rebills the entire accumulated history as input again, so regenerating five times on message 200 costs roughly five times message 200's normal price.
- Group chats multiply the count: every character resends the shared history on its own turn, so the same number of visible replies costs several times more than a solo chat.
- Max new tokens left at the ceiling: a high cap pads every reply toward its limit, and output tokens bill at a materially higher rate than input on most models.
- One chat that never restarts: history only grows, so a habit that felt cheap in week one can cost several times more by month three from context size alone, with no price change anywhere.
What a month of chatting costs, by model.
Blend the light and heavy ends of a chat's life into one average and the picture turns into a monthly number instead of a per-message one. The table assumes roughly 5,000 input tokens and 300 output tokens per message (a mid-size card plus a chat that is neither brand new nor extremely long-running), at 20 messages a day for a casual user and 200 messages a day across several active chats for a heavy roleplayer. Model choice here is not only about price. Each provider sets its own usage policy for fictional content, which the roleplay model comparison linked below covers in more depth; this table is strictly about the token math. These are APIsRouter catalog prices, an OpenAI-compatible gateway where global models are priced 20% below official list and Chinese models sit below their official rates. Swap in your own card's token count and your own daily message volume and these totals move roughly linearly: double the card size or double the message count, and the monthly number moves with it in about the same proportion.
| Model | Price per 1M tokens (in / out) | Casual: ~600 msgs/mo | Heavy: ~6,000 msgs/mo |
|---|---|---|---|
| deepseek-v4-flash | $0.126 / $0.252 | $0.42 | $4.23 |
| deepseek-v4-pro | $0.3915 / $0.783 | $1.32 | $13.15 |
| glm-5 | $0.514 / $2.314 | $1.96 | $19.59 |
| grok-4.5 | $1.60 / $4.80 | $5.66 | $56.64 |
| claude-sonnet-4-6 | $2.40 / $12.00 | $9.36 | $93.60 |
| claude-opus-4-7 | $4.00 / $20.00 | $15.60 | $156.00 |
Practical fixes that actually cut the bill.
The single biggest lever is usually the simplest one on this list: stop letting one chat run forever. Everything else here trims a slice off the bill; a chat that never restarts is a multiplier that keeps compounding underneath all of it. Stack two or three of these at once for the real effect: a lean card on a budget model, max new tokens capped, and chats restarted every few hundred messages costs a small fraction of the same habits left unchecked.
- Prune the card before you paste it in: cut example dialogue and lorebook entries you never see trigger, since every line is a recurring charge, not a one-time cost.
- Cap max new tokens at something realistic like 250 to 350 instead of leaving it at the ceiling; most replies do not need the extra headroom.
- Keep the custom prompt to a few sentences of formatting rules, not a second character sheet resent on every message.
- Resist regenerate spam: if a reply is close, edit it instead of rerolling, since each reroll rebills the full accumulated history.
- Start a fresh chat, or duplicate and trim the history, once a conversation runs past a few hundred messages instead of extending one thread indefinitely.
- Use group chats deliberately, not by default, since each added character multiplies the shared history's token cost per round.
- Route everyday chatting to a lower-priced OpenAI-compatible endpoint and save a costlier flagship model for the scenes where prose quality matters most; APIsRouter is one option with pay-as-you-go billing and no subscription.
Config example: one key, two saved models.
Proxy mode in JanitorAI takes five fields: a label, the exact model ID, the full chat completions endpoint, your API key, and an optional custom prompt. Save one configuration per model so switching between a budget default and a flagship option for special scenes takes two taps, not a re-typed URL. The full endpoint matters: JanitorAI sends requests to exactly the URL you paste, so it needs the complete chat completions path, not just the bare API root that SillyTavern-style tools accept. The script below turns the growing-context math from the earlier table into a monthly total. It deliberately never restarts the chat, which is the single worst-case habit from the fixes above; rerun it with periodic resets to see how much a fresh chat every few hundred messages actually saves. Send one short test message through curl or a similar tool before pointing a long-running chat at a new configuration. A bad model name or a truncated URL fails immediately and obviously; a bad assumption about how fast your context grows only shows up once the bill arrives.
Daily driver:
Configuration name: APIsRouter-budget
Model name: deepseek-v4-flash
Proxy URL: https://api.apisrouter.com/v1/chat/completions
API key: sk-...
Special scenes:
Configuration name: APIsRouter-flagship
Model name: claude-sonnet-4-6
Proxy URL: https://api.apisrouter.com/v1/chat/completions
API key: sk-... (same key, only the model name changes)FAQ
Why did my JanitorAI proxy bill jump so much this month?
Almost always chat length. Proxy mode resends the character card, lorebook, and full history on every message, so the same conversation gets more expensive per message the longer it runs. A chat that grew from 50 to 400 messages without ever restarting can cost several times more per message by the end, even at an unchanged price per token. Check whether the spike lines up with one chat in particular before assuming a model or provider changed anything.
Does JanitorAI's free built-in model use my API key?
No. The free model runs on JanitorAI's own infrastructure and does not touch a proxy key or bill per token; it can queue at peak times instead. Proxy mode is a separate, opt-in setup where you supply your own OpenAI-compatible key and pay that provider directly.
Does regenerating a reply cost extra tokens?
Yes. Regenerate resends the entire accumulated chat history as input again, not just a short retry, so it costs roughly the same as the original message. Rerolling several times on a message deep into a long chat can cost more than several fresh messages would.
Do lorebook or world info entries add to the bill?
Yes, whenever they trigger. A keyword match injects that entry's full text into the message that triggered it, and the entry then stays part of the resent history going forward. A lorebook with many broad trigger words fires more often and adds up faster than one with a few specific ones.
What is the cheapest way to keep Janitor AI token costs down?
Pair a lean card and a short custom prompt with a budget model, and restart chats before they run into the hundreds of messages. One OpenAI-compatible option for this is pay-as-you-go with no subscription, global models priced 20% below official list, Chinese models below their official rates, and a no-signup /topup checkout that emails the key after payment.
Is a flagship model ever worth the extra cost on Janitor AI?
Often yes for shorter or occasional chats; the gap in writing quality between budget and flagship models is real. For high-volume daily chatting or very long-running threads, the per-message cost gap compounds fast enough that most users are better off on a budget model for routine turns and saving a flagship model for specific scenes. Two saved proxy configurations, one per tier, make switching between them a couple of taps instead of a re-typed URL.