Custom Configurations

A custom configuration is one set of LLM routing and provider settings: which AI providers and models are available, and optionally API keys. An account can have multiple custom configurations (e.g. “Production”, “Staging”). When the API is called (e.g. for chat completions), the system uses the config tied to the request. Every API key is bound to a config—there is no account default config. If the request does not specify a provider or model, the system chooses one from the config’s providers and models.

Multiple configs per account

In other words: each custom configuration is a named set of providers and models (and optional keys). The config used per request is determined by the API key’s binding. The system decides which provider and model to use when the request does not suggest one.

What can be set

In a custom configuration, the following are defined:

  1. Providers and models — For each provider:
    • Which models are allowed (e.g. gpt-4o, gpt-4o-mini).
    • Optionally an API key for that provider (otherwise the product uses its own keys).
    • For custom OpenAI-compatible endpoints: the base URL (api_base).

When a request does not specify a provider or model, the system picks from the config’s providers and models (e.g. first provider, first model in that provider’s list).

So the configuration controls which providers, which models, and whether account keys or the service’s keys are used.

Two ways configs are used

Default config (no account or shared config)

Account custom configuration (API key bound)

So in practice: either the shared default is used, or the config bound to the API key (optionally built on the default via inheritance).

Inheritance in plain terms

So inheritance means basing the configuration on the default (or another of the account’s configs) and only changing what is needed.

How this affects requests

In short: custom configurations define the allowed providers and models and optional API keys; the system uses the config bound to the API key when the caller uses a key, otherwise the default config. The system chooses provider and model when the request does not suggest one.

Managing custom configuration via the API

Custom configurations are managed through the config API: POST /config to create (returns a config_id), GET /config to list summaries, GET /config/{config_id} to get one, PUT or PATCH /config/{config_id} to update, DELETE /config/{config_id} to remove. Optional name lets you label configs. When creating an API key, config_id is required. For full endpoint details, request/response shapes, and authentication, see Routing & Provider Config.