Skip to main content
POST
Custom Providers
Register any OpenAI-compatible chat-completions endpoint as a custom provider, then reference its models by the namespaced id custom:<providerId>:<modelId> in a model plan or on an orchestrator-graph Model node. Prompts to your own models are free and never draw Theo credits — you pay your provider directly.

Authentication

Requires an API key with billing scope.

Register a provider

POST /api/v1/custom-providers
string
required
Display name (1–120 chars).
string
required
The endpoint base URL — must be http(s).
string
required
The provider’s API key. Stored encrypted; never returned by the API.
object[]
required
1–50 models. Each: { id, label, contextWindow? }.
boolean
On-device / on-prem: reachable only from a linked desktop, never dispatched from the cloud. Default false.
Returns { id } — the provider id. Reference a model as custom:<id>:<modelId>.

List providers

GET /api/v1/custom-providers{ providers: [{ id, name, base_url, models }] }. API keys are never included.

Delete a provider

DELETE /api/v1/custom-providers/{id}{ deleted: true }.

Example

Then pin it on a key: