List Providers
Every provider kind (language model, embeddings, web search, speech to text, text to speech, voice agent model, telephony, enrichment): the providers it can use, the server's env default and this workspace's override. Resolution: workspace override, else the env default. Credentials are never returned (`credentials_configured`). Owners and admins.
API key access
admin scope with an API key (ro_pat_...). A signed-in session uses the caller's role./api/v1/settings/providersAccess token from /api/v1/auth/login, or an API key (ro_pat_..., RO-176) from /api/v1/workspaces/current/api-keys: the key implies its workspace and needs the route's scope. MCP connectors (/api/v1/mcp only) may use an OAuth access token (ro_oat_..., RO-284).
In: header
Header Parameters
Id of the workspace to act on (must be a member).
Response Body
curl -X GET "http://localhost:8000/api/v1/settings/providers" \ -H "X-Workspace-Id: string"{
"items": [
{
"kind": "llm",
"label": "string",
"description": "string",
"source": "workspace",
"providers": [
{
"name": "openai_compatible",
"label": "string",
"base_url": "required",
"model": "required",
"api_key": "required",
"api_secret": true,
"default_base_url": "string",
"default_model": "string"
}
],
"option_names": [
"string"
],
"default": {
"provider": "string",
"model": "string"
},
"override": {}
}
],
"allow_private_urls": true
}Delete Provider
Remove the override (and its stored credentials): the server's env default serves this workspace again.
Save Provider
Override the provider of one kind for this workspace (e.g. a self-hosted OpenAI-compatible model: `{"provider": "openai_compatible", "base_url": "http://vllm:8000/v1", "model": "qwen3-32b"}`). The API key is stored encrypted and never returned; omit it to keep the stored one. Base URLs must be public unless the server allows private URLs. Changing the embedding provider re-embeds this workspace's knowledge base in the background.