Back to guides
Pricing·September 21, 2026·12 min read

LibreChat pricing and API costs — what the software costs, and what the tokens cost

MIT software, a 404 pricing page, and a cost readout that prices your traffic from a table it ships.

Last reviewed on .

LibreChat costs nothing. It is MIT-licensed software with no plans, no seats and no pricing page at all — librechat.ai/pricing returned HTTP 404 when this page was checked on September 19, 2026. What an operator budgets is three separate things: somewhere to run it, the model API tokens it sends, and optional side services. The one that decides the bill is the tokens — and the trap is that the dollar figure LibreChat displays is priced from a table it ships, not from what your provider actually charged.

Three things get mistaken for a LibreChat price. The first is the Code Interpreter API, a separate service the team once sold, whose storefront now reads "Subscriptions Currently Unavailable" and publishes no figure. The second is managed hosting sold by third parties, which is that vendor's hosting fee. The third is a different project entirely: libre-chat on PyPI, a dormant Python chatbot by Vincent Emonet whose last release, 0.0.6, was uploaded January 9, 2024 — its documentation will not configure this one. Directory sites that present LibreChat with plan tiers or a quote form are describing a plan the project does not sell.

LibreChat pricing, line by line

Line itemWhat it costsWhere that comes from
LibreChat itself$0, MITLICENSE on main and the About page
A hosted LibreChat planDoes not exist/pricing is a 404; the site nav has no pricing, cloud or enterprise link
Code Interpreter API (the one paid product)Closed to new subscribers; no price publishedcode.librechat.ai/pricing
Code Interpreter, self-hosted replacement$0 software, Apache-2.0; you pay the computeLibreChat-AI/code-interpreter
Admin Panel$0, AGPL-3.0LibreChat-AI/admin-panel
Agents API (beta)$0; a feature of your own instanceAgents API docs — gated behind remoteAgents; the docs say permissions default to false, with admin users excepted
Model API tokensYour provider's per-token rateYour provider's own billing
Somewhere to run itYour host's priceLibreChat publishes no RAM, vCPU or disk minimum and no example bill
Third-party managed image$0.05 per hour software fee plus AWS infrastructureAWS Marketplace listing by Cloud Infrastructure Services

One correction to make before you plan around the project. LibreChat was acquired by ClickHouse, announced November 4, 2025; the post commits to keeping the MIT license and says existing deployments are unaffected. The repository is unchanged and active — not archived, MIT, and last pushed September 21, 2026 per the GitHub API. Licences do differ across the stack, which matters if you redistribute: the app and the RAG API are MIT, the code-interpreter service is Apache-2.0, and the Admin Panel is AGPL-3.0. One inconsistency to settle for yourself if the licence is load-bearing — the LICENSE file and the About page both say MIT, while package.json on main declares ISC. The two disagree; the LICENSE file is the document that governs. Whether ClickHouse now sells any paid LibreChat product is not something this page could establish either way.

Version pinning has one quirk worth knowing. Every GitHub release object on this repository is flagged as a prerelease, so the "latest release" endpoint returns nothing at all. The newest tag is v0.8.8-rc3 from September 15, 2026; the newest non-rc tag is v0.8.7 from June 24, 2026.

The cost LibreChat shows you is not the cost you paid

This is the part a pricing page cannot tell you, and it is the reason a gateway user can end up with a ledger that bears no relation to their balance. LibreChat keeps its own internal currency: the token usage documentation fixes 1,000,000 credits at one US dollar. Unless you override the rate yourself, each request is converted into credits using one LibreChat looks up on its own side.

That lookup is a substring match. The comment in packages/api/src/utils/tokens.ts states the rule plainly: the matcher takes the longest key in the price table that is contained in the model name. And the table in packages/data-schemas/src/methods/tx.ts carries vendor list rates. Put those together and a gateway model id gets priced as whatever shorter key happens to be a substring of it.

Model id you sendKunavo catalog, in / out per 1MTable key it matchesWhat the ledger debits, in / out per 1M
gpt-5-6-luna$0.07 / $0.42gpt-5$1.25 / $10.00
claude-haiku-4-5$0.40 / $2.00claude-haiku-4-5$1.00 / $5.00
gemini-3-8-flash$0.525 / $2.625gemini-3$2.00 / $12.00
gpt-5-6-terra$0.70 / $4.20gpt-5$1.25 / $10.00
claude-sonnet-4-6$1.20 / $6.00claude-sonnet-4-6$3.00 / $15.00
claude-sonnet-5$2.00 / $10.00claude-sonnet-5$2.00 / $10.00

Left column is the live Kunavo catalog; right column is LibreChat's own constants, read from main on September 19, 2026. Three readings. claude-sonnet-5 matches itself and the two sides agree, so nothing looks wrong — which is exactly why this is easy to miss. claude-sonnet-4-6 also matches itself, but at the vendor's list rate rather than the catalog rate you are charged. And gpt-5-6-luna and gpt-5-6-terra have no entry of their own: the longest table key contained in each is gpt-5, so the ledger bills both as that model. The same happens to gemini-3-8-flash, whose dash spelling does not contain the dotted key for its own model but does contain gemini-3.

When nothing matches at all, the source returns a fixed fallback of 6 credits per token, applied to input and output alike — $6 per million tokens in both directions, well above the input rate of every model in the table above. Either way, the fix is the same: declare a tokenConfig block under your custom endpoint. The code checks that override before consulting its own table, and its comment says as much. Rates go in as USD per million tokens, and prompt, completion and context are each required per model.

Two related defaults from the balance documentation: spend limits are off until you set balance.enabled, and when you turn them on a new user starts with 20,000 credits — two US cents at LibreChat's own conversion. Auto-refill is separately off, defaulting to 10,000 credits every 30 days. Two more from the neighbouring pages of the same configuration reference: cost figures stay hidden from users until interface.contextCost is enabled, which defaults to false, and the transactions page says switching balances on enables transaction recording regardless of the transactions.enabled setting.

Best API for LibreChat: which route wins when

RouteWins whenWhat you give up
Direct vendor APIEveryone uses one vendor and you want its own caching and batch discountsA second vendor means a second key and a second custom endpoint block
One gateway, one custom endpointThe picker should hold several vendors under one key and one balanceModel ids can resolve to the wrong row in LibreChat's price table, so tokenConfig is a one-time manual step
Google's free tierA personal or evaluation instance where cost must be zeroGoogle's pricing page states free-tier data is used to improve its products; the paid tier states it is not
Per-user BYOKEach person should fund their own usageSet apiKey or baseURL to the literal user_provided; with a user-provided baseURL, LibreChat does not forward your configured header templates
Local modelPrivate or low-stakes work with no per-request chargeA capability gap against hosted frontier models, and hardware you run yourself
A consumer chat subscriptionNever, for this purposeLibreChat needs an API key. A Claude Pro seat at $17 per month on annual billing, or $20 billed monthly, does not feed it

Vendor rates checked September 19, 2026 for budget anchoring: Anthropic lists Claude Sonnet 5 at $2 in and $10 out per million tokens, with the note that the $2/$10 rate is now standard and a scheduled increase will not occur; OpenAI lists gpt-5 at $1.25/$10 and gpt-5-nano at $0.05/$0.40 in the short-context columns of its standard table; Google lists Gemini 3.8 Flash paid at $0.75 in and $3.75 out through December 31, 2026, rising to $1.50/$7.50 after that, with a genuinely free tier above it. Claude subscription prices come from the same check. ChatGPT's subscription prices are deliberately absent: openai.com returned 403 to every automated fetch on the check date, and an unverified figure does not belong in a budget.

Cheapest API for LibreChat

Among hosted APIs the cheapest listed option is not a gateway and not a discount. It is Google's Gemini Developer API free tier, which charges nothing for input, output or context caching on Gemini 3.8 Flash — with one tradeoff stated on the same page, that free-tier data is used to improve Google's products while the paid tier says it is not. Grounding with Google Search is metered separately, at 5,000 free requests a month shared across the Gemini 3.x models and $14 per 1,000 after that. For a personal LibreChat instance where cost must be zero and the content is not sensitive, that is the honest answer. The only thing that undercuts it is a local model, which has no per-request charge at all and costs you the hardware instead.

Past that, cheapest listed price and lowest cost to finish the task are different claims, and this page will not promise you an absolute lowest price. A small model that needs three attempts at a summary costs more than a mid-tier one that needs a single pass, and in LibreChat the difference shows up twice: once in the retry, and once in the conversation history that retry leaves behind for every later turn to re-send. Three habits do more for the bill than a rate comparison. Pin a cheap titleModel so titles never hit a flagship. Keep the default model list short, so nobody reaches for the expensive one out of curiosity. And declare tokenConfig, so the numbers you are optimizing against are your own rather than LibreChat's built-in table. The same reasoning in more depth is in AI cost optimization.

A worked monthly budget for one LibreChat instance

These are illustrative token arithmetic, not measured costs and not a bill ceiling. There is no published figure for what a LibreChat user consumes in a month, so the shape below is an assumption you should replace with your own transcript volume. Assume one active user sends 120 turns in a month, each carrying 8,000 input tokens of accumulated history and returning 700 output tokens960k input and 84k output tokens. Rates are live Kunavo catalog prices.

ModelInput / output per 1MEstimate, one user per monthEstimate, 50 users per month
GPT-5.6 Luna$0.07 / $0.42$0.10$5.12
Claude Haiku 4.5$0.40 / $2.00$0.55$27.60
Gemini 3.8 Flash$0.525 / $2.625$0.72$36.23
GPT-5.6 Terra$0.70 / $4.20$1.02$51.24
Claude Sonnet 4.6$1.20 / $6.00$1.66$82.80
Claude Sonnet 5$2.00 / $10.00$2.76$138.00

Conversation titles are a separate line most budgets forget. With titleConvo on, LibreChat makes its own request to generate each title, and titleModel decides which model answers it. Assume 40 new conversations per user per month at 1,200 input and 30 output tokens each: across 50 users that is $5.40 on Claude Sonnet 5 against $0.19 on GPT-5.6 Luna. Pinning a cheap title model is one line of YAML.

And the accounting gap from the section above, in the same units. Suppose that month runs on GPT-5.6 Luna, whose catalog estimate is $0.10 per user. Without a tokenConfig block, LibreChat matches the id to its gpt-5 entry and debits the internal balance $2.04 instead. Had the id matched nothing at all, the fallback rate would debit $6.26 for the same 1.044 million tokens. Balances set from an unconfigured ledger cut people off long before they have spent what you think.

Kunavo's catalog amount is a billing floor rather than a cap: when the upstream reports its charge, the bill is the greater of catalog cost and upstream cost times the applicable markup. Cache charges and the side services below sit outside this example. The minimum top-up is $10 in prepaid credit, which funds a balance rather than buying a plan — see billing details.

Best model for LibreChat: pick by what the endpoint must reach

There is no official answer to this, and any page that gives you a ranking is giving you an opinion. What LibreChat does publish is a constraint list. Its compatibility matrix, last reviewed June 18, 2026, marks a custom OpenAI-compatible endpoint as supporting streaming, web search, code interpreter, artifacts, file search, OCR and memory — while tools and function calling, and vision, are marked as depending on the model, and image generation and MCP are only reachable through the Agents endpoint rather than a plain chat conversation.

That turns model choice into three concrete questions. If people will run Agents or MCP tools, the model has to call tools reliably, so the cheapest tier is not automatically usable. If people will paste screenshots or PDFs, it needs vision. If neither applies — an instance used mostly for drafting and Q&A — a mid-tier model does the work and the flagship is discretionary. Our own recommendation, with the reasoning shown rather than a verdict asserted: put one strong model and one cheap model in models.default, pin the cheap one as titleModel, and let people switch. A picker with two sensible options beats a ranking that ages badly.

What never goes through your model endpoint

Four LibreChat features look like model features and bill somewhere else entirely. Budgeting them as part of your model API spend both overstates what the endpoint will charge and understates the total.

FeatureWho bills itHow it is configured
Code InterpreterThe sandbox service you run, or its computeLIBRECHAT_CODE_BASEURL plus JWT auth or LIBRECHAT_CODE_API_KEY
Web searchSeparate search, scrape and rerank vendorsSerper, SearXNG, Tavily or the keyless Keenable for search; Firecrawl, Tavily or Keenable for fetching; Jina or Cohere for reranking, or none
OCRThe OCR vendor, by its own key and base URLocr.apiKey and ocr.baseURL; optional, since the feature falls back to plain text parsing
File chat embeddingsWhichever embeddings provider you point the RAG API atThe RAG API's own RAG_OPENAI_API_KEY, RAG_OPENAI_BASEURL and EMBEDDINGS_PROVIDER

The embeddings line needs one thing said plainly: Kunavo does not serve an embedding model, so LibreChat's file-chat step runs against an outside provider or locally even when Kunavo handles your chat traffic. Whether some other gateway serves embeddings is a question for that gateway's own catalog. If you want it to cost nothing, the RAG API configuration page is explicit that the default Docker image is the lite build and supports only remote embeddings; local embeddings require swapping the image in the compose file for the full build. Web search has a free path too, since Keenable works without a key for both search and page fetch. This page did not check any of those vendors' own prices, so none are quoted here.

Wiring a gateway in, with the prices declared

Everything below follows the custom endpoint schema, checked September 19, 2026. name, apiKey, baseURL and models are each required, and the endpoint name must be unique and must not reuse a built-in one such as openAI or anthropic.

librechat.yaml
# librechat.yaml — a gateway as a custom endpoint, with prices declared.
# Schema version on main is 1.3.16; published examples still show older values.
version: 1.3.16

endpoints:
  custom:
    # The name must be unique and must not reuse a built-in endpoint name.
    - name: "Kunavo"
      apiKey: "${KUNAVO_API_KEY}"
      # LibreChat appends /chat/completions to this unless directEndpoint: true
      baseURL: "https://api.kunavo.com/v1"
      models:
        default: ["claude-sonnet-5", "gpt-5-6-terra", "gemini-3-8-flash"]
        fetch: true                        # populate the picker from GET /models
      titleConvo: true
      titleModel: "gpt-5-6-luna"           # titles do not need a flagship

      # Without this block LibreChat prices your traffic from its own table.
      # prompt/completion are USD per MILLION tokens; context is that model's
      # own window. All three are required for every model you list here.
      tokenConfig:
        claude-sonnet-5:
          prompt: 2
          completion: 10
          context: 1000000
        gpt-5-6-terra:
          prompt: 0.7
          completion: 4.2
          context: 1050000

Three things that catch people out. First, LibreChat appends /chat/completions to your base URL by default, so set directEndpoint: true only if your base URL is already the full completions endpoint. Second, OPENAI_REVERSE_PROXY — which older tutorials still recommend for a gateway — is marked deprecated in the environment variable reference, which directs you to a custom endpoint instead. Third, a custom endpoint can speak the native Anthropic Messages protocol rather than chat completions by setting provider: 'anthropic', currently the only supported value; that field is present in the config schema at tag v0.8.7 and absent at v0.8.6, so treat it as v0.8.7 and newer. With it, list models explicitly under models.default, because the OpenAI-style model fetch is not used on that path.

A custom endpoint name can also be used in endpoints.agents.allowedProviders, per the agents configuration, so gateway-backed models are usable by LibreChat Agents rather than being limited to plain chat.

Setting it up

Kunavo publishes an OpenAI-compatible endpoint and a set of client setup guides, and the YAML above follows LibreChat's own documented schema. That is a configuration reference, not a compatibility test: LibreChat has not been runtime-tested here against Kunavo's endpoint, and everything on this page was read from LibreChat's source and documentation rather than from a running instance. Keep a working route available while you try it, send one bounded conversation, then compare what your account recorded against what LibreChat's own ledger says — the gap between those two numbers is the whole point of the tokenConfig block.

Start from the OpenAI-compatible API guide and the client integration index, and create a Kunavo account when you are ready to fund a key. If you are still choosing an interface, LibreChat vs Open WebUI compares the two on setup friction; best LLM gateway covers the routing question in its own right.

FAQ

How much does LibreChat cost?

Nothing. LibreChat is MIT-licensed software with no plans, no seats and no subscription; librechat.ai/pricing returns HTTP 404 and the site navigation has no pricing, cloud or enterprise link. What an operator pays is somewhere to run it, the model API tokens it sends, and any optional side services — web search, OCR, a code sandbox, file-chat embeddings — each of which bills separately from its own vendor. Directory sites that present LibreChat with plan tiers or a quote form are describing a product that does not exist.

Is there a paid LibreChat plan or hosted version?

Not from the project. The only paid product on the project's own sites is the Code Interpreter API at code.librechat.ai, and that storefront now shows a notice that subscriptions are unavailable and new subscriptions are not being accepted; the 2025 acquisition post announced its discontinuation in its current form with a May 1, 2026 target. Its replacement is an Apache-2.0 sandbox service you self-host and point LibreChat at. Third parties do sell managed LibreChat — an AWS Marketplace image from Cloud Infrastructure Services carries a $0.05 per hour software fee on top of AWS infrastructure — but those are that vendor's hosting fees, not LibreChat's price.

What is the best API for LibreChat?

It depends on how many people use the instance and whether you switch models. A direct vendor API wins when everyone uses one vendor's models and you want that vendor's own caching and batch discounts. A gateway behind a single custom endpoint wins when the model picker should hold several vendors under one key and one balance. Per-user BYOK, set by writing the literal user_provided into apiKey, wins when each person should fund their own usage. A local model through Ollama wins for private or low-stakes work at no per-request charge. There is no official LibreChat recommendation. What its compatibility matrix does impose on a custom endpoint is structural rather than about a vendor: tools and function calling and vision are marked as depending on the model, and image generation and MCP are reachable only through the Agents endpoint.

What is the cheapest API for LibreChat?

Among hosted APIs, the cheapest listed option is Google's Gemini Developer API free tier, which charges nothing for input, output or context caching on Gemini 3.8 Flash — with a stated tradeoff that free-tier data is used to improve Google's products, where the paid tier says it is not. A local model carries no per-request charge at all, at the cost of the hardware you run it on. Beyond that, cheapest per token and cheapest to finish the task are different questions: a small model that needs three attempts at a summary can cost more than one that needs one. Budget from your own transcript volume rather than from a rate card alone, and remember that web search, OCR and file-chat embeddings bill outside your model endpoint entirely.

Why is LibreChat showing the wrong cost for my models?

Because LibreChat prices requests from a table it ships rather than from what your provider charged. Its matcher takes the longest entry in that table contained in your model id, so a gateway id such as gpt-5-6-luna matches the entry gpt-5 and is debited at that entry's rate. When no entry matches at all, the source on main falls back to a fixed rate of 6 credits per token, which is $6 per million tokens in both directions. The fix is a tokenConfig block under your custom endpoint declaring prompt, completion and context per model in USD per million tokens; the source checks that override before consulting its own table.

What is the best model for LibreChat?

Choose by what the endpoint has to reach, not by a leaderboard. LibreChat's own compatibility matrix marks tools and function calling and vision as depending on the model for a custom OpenAI-compatible endpoint, and it routes image generation and MCP through the Agents endpoint rather than a plain chat conversation. So an instance that runs Agents or MCP tools needs a model that actually calls tools, and an instance where people paste screenshots needs a vision model. Pin a separate cheap model as titleModel regardless, because conversation titles are generated by their own request and there is no reason to pay a flagship rate for them.

Does LibreChat have usage limits or budgets per user?

It has them and they are off by default. Setting balance.enabled to true turns on token-credit tracking; the documented defaults give a new user a startBalance of 20,000 credits, and LibreChat defines 1,000,000 credits as one US dollar, so that opening balance is two US cents. Automatic refill is a separate switch, defaulting to off, with a 30-day interval and a 10,000-credit refill. Enabling balances also forces transaction recording on regardless of the transactions setting, and cost figures stay hidden from users until interface.contextCost is switched on.

Checked September 19 and re-checked September 21, 2026: the LibreChat GitHub API and the two LibreChat-AI satellite repositories, the 404 on librechat.ai/pricing, the Code Interpreter storefront notice, the ClickHouse acquisition post, the custom endpoint, token usage, balance and compatibility documentation pages, and the price table and config schema in the repository at main, v0.8.6 and v0.8.7. Anthropic, OpenAI and Google list prices read from their own pricing pages on those dates. Kunavo token rates come from the live catalog. ChatGPT subscription prices and any historic Code Interpreter API price could not be verified and are not stated. Every dollar example here is illustrative token arithmetic rather than a measured bill.