Skip to navigation

Create an AI Credential

View as Markdown

Create a saved BYOK AI credential. Name is optional and defaults server-side; pass test=true to verify credentials before saving.

Authentication

AuthorizationBearer

Use Bearer <api-key>.

Headers

BCTRL-VersionenumOptional
Dated API version. Defaults to the release pinned when the API key was created.
Allowed values:
BCTRL-SpacestringOptional
Select one authorized Space by its opaque ID or unique name. Omission uses the operation default.
BCTRL-Subaccount-IdstringOptional
Optional effective subaccount context for organization API keys. Subaccount API keys are already scoped and cannot use this header to act as another subaccount.
Idempotency-KeystringOptional1-200 characters

Optional retry key for this billable operation. Reusing the same key with the same request replays its stable outcome; credential-bearing results may be freshly issued for the same principal. Reusing it with a different request returns 409.

Request

This endpoint expects an object.
providerenumRequired
apiKeystringOptional

The provider API key, or a secret reference such as secret:ai/openai#value.

baseUrlstringOptionalformat: "uri"
defaultModelstringOptional
namestringOptional1-200 characters

Customer-facing resource name. 1–200 characters.

statusenumOptional
Allowed values:
testbooleanOptional

Response headers

BCTRL-Request-IdstringOptional
Current request identifier, also echoed in errors.
BCTRL-VersionstringOptional
Negotiated dated API version.
RateLimit-Limitinteger

Evaluated policy limit; zero when no finite policy was evaluated.

RateLimit-Remaininginteger

Remaining policy budget; zero when no finite policy was evaluated.

RateLimit-Resetinteger

Seconds until reset; zero when no finite policy was evaluated.

Response

Created
apiKeyReferencestring or null

The secret: reference the key is read from, or null when a literal key is stored.

createdAtdatetime
RFC 3339 timestamp with a UTC offset.
hasApiKeyboolean
idstring
namestring1-200 characters
object"ai_credential"
providerenum
statusenum
Allowed values:
updatedAtdatetime
RFC 3339 timestamp with a UTC offset.
baseUrlstringOptionalformat: "uri"
defaultModelstringOptional
subaccountIdstringOptional1-64 characters
Opaque identifier for a BCTRL subaccount.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
409
Conflict Error
429
Too Many Requests Error