Validate Llm Connection
Validate an LLM provider API key and model availability.
Two callable shapes:
- Inline - raw
apiKey+ optionalbaseUrlsupplied directly. Used when the user is pasting a fresh key in the form. - Saved connection -
savedConnectionIdreferences a storedllmConnection; BE loads the decryptedapiKey+baseUrl+providerserver-side so the browser never holds the plaintext.
Calls the provider’s free list-models endpoint to check key validity
and model existence. The “apiKey required unless ollama or saved” rule
is enforced by the request model’s @model_validator.
Per-tenant rate limit: 30 req/min/bucket -> 429 with Retry-After.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Request body for POST /agents/validate-llm.
Two callable shapes:
- Inline -
apiKey(+ optionalbaseUrl) supplied directly. Used when the user is pasting a fresh key in the form. - Saved connection -
savedConnectionIdreferences a row inagent_connections.llmConnections. The BE loads the decryptedapiKey/baseUrlserver-side so the browser never has to hold (or re-send) a stored plaintext to test it. Mirrors the MCPsavedConnectionIddiscovery path.
Unified LLM provider enum.
A single AgentLlmConnection row carries one provider and a set of
capabilities (chat / embedding). PROVIDER_CAPABILITIES below pins
which capabilities each provider can serve — picked by the FE Connections
drawer and re-validated server-side on every write.
anthropic, openai, openai-responses, ollama, azure, azure-openai, bedrock, qwen, openai-compatible 200Raw key - never stored
512512If set, BE resolves provider/apiKey/baseUrl from the tenant's saved llmConnection by id and ignores the inline apiKey / baseUrl.
100Response
Successful Response
The response is of type Response Validatellmconnection · object.