Docs
Configuration
librechat.yaml
Object Structure
Custom Endpoint

Custom Endpoint Object Structure

Each endpoint in the custom array should have the following structure:

Example

Endpoint Object Structure
endpoints:
    custom:
        # Example using Mistral AI API
    - name: "Mistral"
        apiKey: "${YOUR_ENV_VAR_KEY}"
        baseURL: "https://api.mistral.ai/v1"
        models: 
        default: ["mistral-tiny", "mistral-small", "mistral-medium", "mistral-large-latest"]
        titleConvo: true
        titleModel: "mistral-tiny" 
        modelDisplayLabel: "Mistral"
        # addParams:
        #   safe_prompt: true # Mistral specific value for moderating messages
        # NOTE: For Mistral, it is necessary to drop the following parameters or you will encounter a 422 Error:
        dropParams: ["stop", "user", "frequency_penalty", "presence_penalty"]

name

Key:

KeyTypeDescriptionExample
nameStringA unique name for the endpoint.Will be used as the "title" in the Endpoints Selector

Required

Example:

endpoints / custom / name
name: "Mistral"

apiKey

Key:

KeyTypeDescriptionExample
apiKeyString (apiKey | "user_provided")Your API key for the service. Can reference an environment variable, or allow user to provide the value.It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}`

Required

Example:

endpoints / custom / apiKey
apiKey: "${MISTRAL_API_KEY}"

or

endpoints / custom / apiKey
apiKey: "your_api_key"

or

endpoints / custom / apiKey
apiKey: "user_provided"

baseURL

Key:

KeyTypeDescriptionExample
baseURLString (baseURL | "user_provided")Base URL for the API. Can reference an environment variable, or allow user to provide the value.It's highly recommended to use the env. variable reference for this field, i.e. `${YOUR_VARIABLE}`

Required

Example:

endpoints / custom / baseURL
baseURL: "https://api.mistral.ai/v1"

or

endpoints / custom / baseURL
baseURL: "${MISTRAL_BASE_URL}"

or

endpoints / custom / baseURL
baseURL: "user_provided"

iconURL

Key:

KeyTypeDescriptionExample
iconURLStringThe URL to use as the Endpoint Icon.

Default: ""

Example:

endpoints / custom / iconURL
iconURL: https://github.com/danny-avila/LibreChat/raw/main/docs/assets/LibreChat.svg

Notes:

  • If you want to use existing project icons, define the endpoint name as one of the main endpoints (case-sensitive):
    • “openAI” | “azureOpenAI” | “google” | “anthropic” | “assistants” | “gptPlugins”
  • There are also “known endpoints” (case-insensitive), which have icons provided. If your endpoint name matches the following names, you should omit this field:
    • “Mistral"
    • "OpenRouter"
    • "Groq"
    • "APIpie"
    • "Anyscale"
    • "Fireworks"
    • "Perplexity"
    • "together.ai"
    • "Ollama"
    • "MLX”

models

Key:

KeyTypeDescriptionExample
modelsObjectConfiguration for models.

Required

Properties:

default

Key:

KeyTypeDescriptionExample
defaultArray of StringsAn array of strings indicating the default models to use.If fetching models fails, these defaults are used as a fallback.

Required

Example:

endpoints / custom / models / default
default:
  - "mistral-tiny"
  - "mistral-small"
  - "mistral-medium"

fetch

Key:

KeyTypeDescriptionExample
fetchBooleanWhen set to `true`, attempts to fetch a list of models from the API.May cause slowdowns during initial use of the app if the response is delayed. Defaults to `false`.

Default: false

Example:

endpoints / custom / models / fetch
fetch: true

userIdQuery

Key:

KeyTypeDescriptionExample
userIdQueryBooleanWhen set to `true`, adds the LibreChat user ID as a query parameter to the API models request.

Default: false

Example:

endpoints / custom / models / userIdQuery
userIdQuery: true

titleConvo

Key:

KeyTypeDescriptionExample
titleConvoBooleanEnables title conversation when set to `true`.

Default: false

Example:

endpoints / custom / titleConvo
titleConvo: true

titleMethod

Key:

KeyTypeDescriptionExample
titleMethodString ("completion" | "functions")Chooses between "completion" or "functions" for title method.Defaults to "completion" if omitted.

Default: "completion"

Example:

endpoints / custom / titleMethod
titleMethod: "completion"

titleModel

Key:

KeyTypeDescriptionExample
titleModelStringSpecifies the model to use for titles.Defaults to "gpt-3.5-turbo" if omitted. May cause issues if "gpt-3.5-turbo" is not available. You can also dynamically use the current conversation model by setting it to "current_model".

Default: "gpt-3.5-turbo"

Example:

endpoints / custom / titleModel
titleModel: "mistral-tiny"

or

endpoints / custom / titleModel
titleModel: "current_model"

summarize

Key:

KeyTypeDescriptionExample
summarizeBooleanEnables summarization when set to `true`.This feature requires an OpenAI Functions compatible API

Default: false

Example:

endpoints / custom / summarize
summarize: false

summaryModel

Key:

KeyTypeDescriptionExample
summaryModelStringSpecifies the model to use if summarization is enabled.Defaults to "gpt-3.5-turbo" if omitted. May cause issues if "gpt-3.5-turbo" is not available.

Default: "gpt-3.5-turbo"

Example:

endpoints / custom / summaryModel
summaryModel: "mistral-tiny"

forcePrompt

Key:

KeyTypeDescriptionExample
forcePromptBooleanIf `true`, sends a `prompt` parameter instead of `messages`.Combines all messages into a single text payload or "prompt", following OpenAI format, which uses the `/completions` endpoint of your baseURL rather than `/chat/completions`.

Default: false

Example:

endpoints / custom / forcePrompt
forcePrompt: false

modelDisplayLabel

Key:

KeyTypeDescriptionExample
modelDisplayLabelStringThe label displayed in messages next to the Icon for the current AI model.The display order is: 1. Custom name set via preset (if available), 2. Label derived from the model name (if applicable), 3. This value is used if the above are not specified. Defaults to "AI".

Default: "AI"

Example:

endpoints / custom / modelDisplayLabel
modelDisplayLabel: "Mistral"

addParams

Key:

KeyTypeDescriptionExample
addParamsObject/DictionaryAdds additional parameters to requests.Adds/Overrides parameters. Useful for specifying API-specific options.

Example:

endpoints / custom / addParams
addParams:
  safe_prompt: true

dropParams

Key:

KeyTypeDescriptionExample
dropParamsArray/List of StringsRemoves default parameters from requests.Excludes specified default parameters. Useful for APIs that do not accept or recognize certain parameters.

Example:

endpoints / custom / dropParams
dropParams:
  - "stop"
  - "user"
  - "frequency_penalty"
  - "presence_penalty"

Note: For a list of default parameters sent with every request, see the “Default Parameters” section.

headers

Key:

KeyTypeDescriptionExample
headersObject/DictionaryAdds additional headers to requests. Can reference an environment variableThe `headers` object specifies custom headers for requests. Useful for authentication and setting content types.

Example:

endpoints / custom / headers
headers:
  x-api-key: "${ENVIRONMENT_VARIABLE}"
  Content-Type: "application/json"

Note: Supports dynamic environment variable values, which use the format: "${VARIABLE_NAME}".