Skip to main content
PUT
/
admin
/
providers
/
{id}
Update a provider
curl --request PUT \
  --url https://{organization_id}.platform.barndoor.ai/api/llm-gateway/admin/providers/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "base_url": "<string>",
  "auth_type": "api_key",
  "api_key": "<string>",
  "credentials": {},
  "enabled": true,
  "settings": {},
  "connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "request_timeout_secs": 1800,
  "stream_idle_timeout_secs": 900
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "org_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "OpenAI Production (US)",
  "model_provider": "openai",
  "auth_type": "api_key",
  "base_url": "<string>",
  "enabled": true,
  "settings": {},
  "catalog_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "connection_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "request_timeout_secs": 1800,
  "stream_idle_timeout_secs": 900,
  "catalog_slug": "<string>"
}

Authorizations

Authorization
string
header
required

JWT obtained through Barndoor's authentication flow. Pass the token verbatim in Authorization: Bearer <token>. Use the Barndoor SDK's loginInteractive() helper to obtain a token in scripts and notebooks.

Path Parameters

id
string<uuid>
required

Provider UUID

Body

application/json

All fields optional. connection_id supports an explicit null value to detach the provider from a shared credential and switch it back to a direct API key (which must be provided in the same request via api_key or credentials).

name
string
base_url
string
auth_type
string

The authentication scheme this credential or provider uses to talk to the upstream model provider. Valid values depend on model_provider: for OpenAI/Anthropic-style vendors this is typically api_key; for AWS Bedrock it is one of aws_role, aws_keys, or bedrock_api_key; for Google Vertex it is google_adc, google_service_account, or google_impersonation; Anthropic OAuth passthrough uses oauth_passthrough.

Example:

"api_key"

api_key
string<password>
credentials
object
enabled
boolean
settings
object
connection_id
string<uuid> | null
request_timeout_secs
integer | null
Required range: 1 <= x <= 3600
stream_idle_timeout_secs
integer | null
Required range: 1 <= x <= 1800

Response

The updated provider

A named upstream provider backed by a credential and a model family.

id
string<uuid>
required
org_id
string<uuid>
required
name
string
required
Example:

"OpenAI Production (US)"

model_provider
enum<string>
required

Slug of the upstream model provider this resource speaks to

Available options:
openai,
anthropic,
azure_openai,
google_ai,
bedrock,
vertex,
groq,
together,
mistral,
cohere,
xai,
fireworks,
perplexity,
openrouter,
deepseek,
custom
Example:

"openai"

auth_type
string
required

The authentication scheme this credential or provider uses to talk to the upstream model provider. Valid values depend on model_provider: for OpenAI/Anthropic-style vendors this is typically api_key; for AWS Bedrock it is one of aws_role, aws_keys, or bedrock_api_key; for Google Vertex it is google_adc, google_service_account, or google_impersonation; Anthropic OAuth passthrough uses oauth_passthrough.

Example:

"api_key"

base_url
string<uri>
required
enabled
boolean
default:true
required
settings
object
required
catalog_id
string<uuid> | null

Reference to a built-in provider catalog template, if used

connection_id
string<uuid> | null

Reference to a shared Credentials record, if any

request_timeout_secs
integer | null

Provider-tier total-request timeout override. When null (the default) the gateway inherits the platform default. Affects every route served by this provider unless a more specific Model Route value overrides it.

Required range: 1 <= x <= 3600
stream_idle_timeout_secs
integer | null

Maximum allowed idle gap between streamed response chunks. null inherits the platform default.

Required range: 1 <= x <= 1800
catalog_slug
string | null

Catalog slug shorthand used in some response listings