---
title: "LibreChat with EU-hosted models · Custom endpoint setup"
description: "Add inference.eu as a custom endpoint in librechat.yaml and give your organisation a self-hosted chat with agents on open-weight models processed in the EU."
canonical: "https://inference.eu/integrations/librechat/"
language: "en"
---

Chat apps · LibreChat

# Use LibreChat with open-source models hosted in the EU

LibreChat is an open-source chat platform with agents, file search, code execution and single sign-on. Add inference.eu as a custom endpoint in librechat.yaml and your users can chat with open-weight models processed in European data centres, inside an application you host.

[Contact sales](https://inference.eu/contact/)[Setup](#setup)

1.  01API format: OpenAI and Anthropic
2.  02EU data centres
3.  03Covered by one DPA

## Set it up in a few minutes

1.  1

    Create an API key in your inference.eu account and add `INFERENCE_EU_API_KEY=<your key>` to LibreChat's `.env` file.

2.  2

    Open `librechat.yaml` and add an entry under `endpoints.custom` named `inference-eu`.

3.  3

    Set `baseURL` to the inference.eu base URL, `apiKey` to `${INFERENCE_EU_API_KEY}` and list default models, with `fetch` enabled.

4.  4

    Make sure `librechat.yaml` is mounted into the container, then restart LibreChat.

5.  5

    Select the inference.eu endpoint in the model menu and start a conversation to confirm it works.

librechat.yaml

```
endpoints:
  custom:
    - name: "inference-eu"
      apiKey: "${INFERENCE_EU_API_KEY}"
      baseURL: "https://api.inference.eu/v1"
      models:
        default: ["gpt-oss-120b", "glm-5.3", "kimi-k3", "qwen3-coder-480b-a35b-instruct"]
        fetch: true
      titleConvo: true
      titleModel: "gpt-oss-120b"
      modelDisplayLabel: "inference.eu"
```

## What LibreChat is

LibreChat is an open-source, self-hosted chat application. Beyond conversations with many model providers, it offers agents with tools and file search, MCP server support, a code interpreter, conversation branching, presets, and enterprise sign-in through OAuth, OpenID Connect or LDAP. Organisations use it as a central assistant that they control.

Providers are configured in `librechat.yaml`. The `endpoints.custom` list accepts any API that speaks the OpenAI format, and entries with `provider: anthropic` speak the Anthropic Messages format. inference.eu works with either, so it appears to users as one more endpoint in the model menu.

## How the configuration works

Each custom endpoint needs a `name`, an `apiKey` and a `baseURL`. Reference the key as `${INFERENCE_EU_API_KEY}` so it stays in `.env`, and set `baseURL` to the inference.eu base URL ending in `/v1`. Under `models`, `default` lists the models users always see, and `fetch: true` loads the full list from the API.

`titleConvo` and `titleModel` control automatic conversation titles; use a fast model so titles do not slow chats. `modelDisplayLabel` sets the name shown next to answers. With Docker, `librechat.yaml` must be mounted into the container, usually through `docker-compose.override.yml`, or LibreChat will ignore it.

## Which models to choose

For general chat, drafting and summarising, `gpt-oss-120b` is a fast default and a good title model. For long documents, file search and questions that need careful reasoning, offer `glm-5.3` and `kimi-k3`. Teams that work with code benefit from `qwen3-coder-480b-a35b-instruct`.

LibreChat agents call tools, search files and use MCP servers, so assign them a model with dependable tool calling, such as `kimi-k3` or `glm-5.3`. Model specs let admins publish curated presets, for example a contract review assistant on `glm-5.3`, so users do not have to choose models themselves.

## Troubleshooting

If the endpoint does not appear, LibreChat did not load `librechat.yaml`: check the mount and the logs for a validation error. A 401 means `INFERENCE_EU_API_KEY` is missing from `.env` or the container was not restarted after adding it. A 404 usually means `baseURL` is missing `/v1`.

If the model list is empty, check `fetch: true` or list models under `default`. If a request fails with a 400 error because of an unsupported parameter, add that parameter to `dropParams`. If agents do not call tools, choose a model with stronger tool calling for the agent.

## Keeping data in the EU

With inference.eu as the endpoint, every message, file excerpt and tool result sent to the model is processed in EU data centres and never used for training. We sign a data processing agreement under Article 28 GDPR, publish our subprocessor list and bill in euros.

LibreChat stores conversations, files and users in its own MongoDB database and file storage, so host them in the EU. Features such as file search embeddings, web search, speech and image generation use separately configured providers; choose EU-hosted options for them, and remove endpoints users should not reach.

## LibreChat

Category

Chat apps

Maker

LibreChat

API format

OpenAI and Anthropic

Processing

EU data centres

Website

[www.librechat.ai](https://www.librechat.ai/)

Documentation

[www.librechat.ai](https://www.librechat.ai/docs/configuration/librechat_yaml/object_structure/custom_endpoint)

## LibreChat: common questions

The questions buyers, developers and legal teams ask us most. Something missing? Ask us directly.

Add an entry under \`endpoints.custom\` in \`librechat.yaml\` with \`name\`, \`apiKey\`, \`baseURL\` and \`models\`. Reference the key from \`.env\` with \`${VARIABLE}\`, restart LibreChat, and the endpoint appears in the model menu.

Yes. Add \`provider: anthropic\` to the custom endpoint and set \`baseURL\` to the inference.eu host without the trailing \`/v1\`. The OpenAI format is the simpler default, and both reach the same models.

LibreChat did not load \`librechat.yaml\`, or the file has a validation error. With Docker, mount the file through \`docker-compose.override.yml\` and check the startup logs, which name the field that failed validation.

gpt-oss-120b is a quick default for everyday chat and conversation titles. GLM-5.3 and Kimi K3 suit long documents, file search and agents, and Qwen3 Coder 480B is a good choice for teams asking coding questions.

Yes. Agents can use custom endpoints, including inference.eu. Choose a model with dependable tool calling, such as Kimi K3 or GLM-5.3, so that file search, MCP tools and actions are called reliably.

You can set \`apiKey: "user\_provided"\` so each user enters their own key. For organisations, a shared key in \`.env\` is simpler to manage, and LibreChat's own user accounts and balances control who can use it.

LibreChat sends some optional parameters by default. If a model rejects one, list it under \`dropParams\` for the inference.eu endpoint, for example \`\["user"\]\`, and restart LibreChat so the change takes effect.

Set \`titleConvo: true\` and \`titleModel\` to a fast inference.eu model such as \`gpt-oss-120b\`. Titles are then generated by that model, keeping them inexpensive and quick without affecting the model users chat with.

LibreChat stores conversations in its own database. Features such as file search embeddings, web search, speech and image generation use the providers you configure for them. Choose EU-hosted options to keep all data in Europe.

Yes. Remove other providers from \`librechat.yaml\` and \`.env\`, and use \`endpoints\` and interface settings to hide the rest. Model specs with \`enforce\` can limit users to the presets you publish.

[Ask a question](https://inference.eu/contact/)

## Related

[All integrations](https://inference.eu/integrations/)

-   [Open WebUIConnect Open WebUI to inference.eu as an OpenAI-compatible connection and give your team a self-hosted chat on open-weight models processed in the EU.Chat apps](https://inference.eu/integrations/open-webui/)
-   [AnythingLLMConnect AnythingLLM to inference.eu with the Generic OpenAI provider and chat with your documents using open-weight models processed in the EU.Chat apps](https://inference.eu/integrations/anythingllm/)
-   [LiteLLMAdd inference.eu to the LiteLLM proxy or Python SDK with the openai/ prefix and route your team's requests to open-weight models processed in the EU.Gateways](https://inference.eu/integrations/litellm/)

## Move your AI workloads to EU infrastructure

Tell us which models you use and roughly how much traffic you have. We reply within one working day with pricing and next steps.

-   Reply within one working day
-   Pricing for your volume
-   DPA ready to sign
