Skip to main content
Bring your own model by pointing Bolna at any endpoint that speaks the OpenAI chat completions API. Your endpoint can run anywhere: vLLM, Ollama, SGLang, TGI, a LiteLLM proxy, or a hosted gateway. Bolna calls it exactly as it calls OpenAI, only at your URL and with your key. Use this when you need a fine-tuned or open-weight model, when the weights have to stay on your own infrastructure, or when you already pay a provider directly and want the tokens billed there.

Quick config

Register the model once under Integrations → LLM → Custom LLM in the dashboard, then select it on the agent’s LLM tab. See Using custom LLMs for the walkthrough and the API.

What your endpoint must support

Bolna sends requests with the OpenAI SDK, so the endpoint has to behave like OpenAI’s chat completions API.
Your model id is passed through unchanged, so it must match whatever your server expects.

Key settings


When to use a custom LLM vs a hosted provider

Use a custom LLM when:
  • You run a fine-tuned or open-weight model that no hosted provider offers
  • The weights or the traffic have to stay on your own infrastructure
  • You already have a contract with a provider and want the tokens billed to it directly
Use a hosted provider integration when:
  • You want a frontier model without operating an inference server
  • You need Bolna’s per-provider features, such as Azure data residency or provisioned throughput
  • You would rather not own capacity planning, cold starts and upgrades

FAQ

No. Custom models always use chat completions, because the Responses API’s server-side conversation chaining is specific to OpenAI and a self-hosted server cannot resolve a previous response id.
The first call pays the cold start, which the caller hears as silence before the agent speaks. Keep a warm instance if first-token latency matters. Registration tolerates an unreachable endpoint, so scaling to zero does not block you from adding the model.
Your provider. Bolna records a custom model’s token usage against your own endpoint, so that model’s inference is not billed by Bolna.
Yes. A model added on the account is available to it and to all of its sub-accounts. A model added inside a sub-account stays in that sub-account, invisible to the main account and to sibling sub-accounts.
No. The endpoint must resolve to a public address. Expose it through a public hostname, with your key as the bearer token.