POST /v1/model-providers
POST
/v1/model-providersAuthorization
AuthorizationBearer token · headerrequiredHeader parameters
Idempotency-KeystringRetry the same operation with this key to return its saved receipt. Scoped by the operation's authenticated caller or resource. A different input under the same key returns 409. Receipts are retained for at least 7 days after completion, then removed by an hourly sweep. After removal the key can execute again. Fresh-only secrets are never included in a replay.
min length 1 · max length 255
Kikuvi-Workspacestring<uuid>Workspace to create in. Required for a user caller; implied by the key for an API key caller.
Request body
requiredapplication/jsonapi_keystringrequiredmin length 1 · max length 16384
base_urlstringrequiredThe upstream base URL, spelled the way this format's own client
spells it: `https://api.anthropic.com` for anthropic,
`https://api.openai.com/v1` for openai_responses. The proxy appends
only the endpoint path, so a provider that puts its version segment
somewhere else is written out that way here.
max length 2048
descriptionstringmax length 1024 · default: ""
display_namestringrequiredmax length 200
formatModelProviderFormatBodyrequiredMirrors `ModelProviderFormat`'s spellings rather than deriving serde on
the domain type: renaming a domain variant must not silently change the
wire.
Allowed:
anthropicopenai_responsesResponses
201Created BYOK provider binding; the API key is never returned.
One of:
object
created_atstring<date-time>requireddescriptionstringrequireddisplay_namestringrequiredformatModelProviderFormatBodyrequiredMirrors `ModelProviderFormat`'s spellings rather than deriving serde on
the domain type: renaming a domain variant must not silently change the
wire.
Allowed:
anthropicopenai_responsesidstring<uuid>requiredmodelsPlatformModelBody[]requiredModels available through this platform provider.
Show propertiesHide properties
Array of
PlatformModelBodydescriptionstringrequireddisplay_namestringrequiredmodelstringrequiredtypestringrequiredAllowed:
platformobject
created_atstring<date-time>requireddescriptionstringrequireddisplay_namestringrequiredformatModelProviderFormatBodyrequiredMirrors `ModelProviderFormat`'s spellings rather than deriving serde on
the domain type: renaming a domain variant must not silently change the
wire.
Allowed:
anthropicopenai_responsesidstring<uuid>requiredworkspace_idstring<uuid>requiredtypestringrequiredAllowed:
byok400Malformed body, invalid provider configuration, or malformed workspace header.
errorErrorDetailrequiredShow propertiesHide properties
codeErrorCoderequiredThe machine-readable half of an error response, and the field a client
branches on. Closed: every error carries exactly one of these.
Allowed:
unauthorizedforbiddennot_foundinvalid_requestconflictclient_outdatedprecondition_failedtoo_many_requestsinternalmessagestringrequired401Missing, malformed, or invalid bearer token.
errorErrorDetailrequiredShow propertiesHide properties
codeErrorCoderequiredThe machine-readable half of an error response, and the field a client
branches on. Closed: every error carries exactly one of these.
Allowed:
unauthorizedforbiddennot_foundinvalid_requestconflictclient_outdatedprecondition_failedtoo_many_requestsinternalmessagestringrequired403Caller lacks model_provider.manage.
errorErrorDetailrequiredShow propertiesHide properties
codeErrorCoderequiredThe machine-readable half of an error response, and the field a client
branches on. Closed: every error carries exactly one of these.
Allowed:
unauthorizedforbiddennot_foundinvalid_requestconflictclient_outdatedprecondition_failedtoo_many_requestsinternalmessagestringrequired404No such workspace, or the caller cannot see it.
errorErrorDetailrequiredShow propertiesHide properties
codeErrorCoderequiredThe machine-readable half of an error response, and the field a client
branches on. Closed: every error carries exactly one of these.
Allowed:
unauthorizedforbiddennot_foundinvalid_requestconflictclient_outdatedprecondition_failedtoo_many_requestsinternalmessagestringrequired409Idempotency-Key was already used for a different request.
errorErrorDetailrequiredShow propertiesHide properties
codeErrorCoderequiredThe machine-readable half of an error response, and the field a client
branches on. Closed: every error carries exactly one of these.
Allowed:
unauthorizedforbiddennot_foundinvalid_requestconflictclient_outdatedprecondition_failedtoo_many_requestsinternalmessagestringrequired