---
title: "Test Llm Config Inline"
method: POST
path: "/workflows/v1/llm-configs/test"
tags: ["LLM Configs"]
---

# Test Llm Config Inline

`POST /workflows/v1/llm-configs/test`

Run a one-shot test invocation against a fully inline LLM configuration that has not been persisted
yet (the create flow), and return the model's reply.

Because there is no stored record to recover secrets from, the provider api_key must be supplied in
``body.config`` (or omitted to fall back to the team's stored vendor credentials). Provider/runtime
failures are returned as HTTP 200 with ``success=False`` and a clean ``error`` message, mirroring the
saved-config test endpoint, so the dashboard can render them inline.

## Request body

- LLMConfigTestInlineRequest
  - `system_prompt` string, required — Required, non-empty system prompt.
  - `messages` LLMTestMessage[] — Optional ordered conversation history to send to the model.
    - `role` 'human' | 'ai' | 'system' — Sender role of the message.
    - `content` string, required — Text content of the message.
  - `config` union, required — Full config to test inline, before any config record is persisted (create flow). Unlike the saved-config test, there is no stored record to recover secrets from: the provider api_key must be supplied here, or omitted to fall back to the team's stored vendor credentials.
    - AzureOpenAILLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `model` 'gpt-5-chat' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-4.1-nano' | 'gpt-4.1-mini' | 'gpt-4.1'
      - `type` 'azure_openai_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `endpoint` string, nullable — Endpoint URL for Azure OpenAI API requests. Automatically inferred from env var `AZURE_OPENAI_ENDPOINT` if not provided.
      - `api_version` string, nullable — Azure OpenAI API version. Falls back to `OPENAI_API_VERSION` env var if not provided.
      - `reasoning_effort` string, nullable — Reasoning effort level for GPT-5-* models. Options are 'low', 'medium', 'high'.
    - OpenAILLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `model` 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.2' | 'gpt-5.1' | 'gpt-5-nano' | 'gpt-5-mini' | 'gpt-5' | 'gpt-5.4-pro' | 'gpt-5.2-pro' | 'gpt-5.2-chat-latest' | 'gpt-5.3-chat-latest' | 'gpt-4.1-nano' | 'gpt-4.1-mini' | 'gpt-4.1' | 'gpt-4' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-3.5-turbo'
      - `type` 'openai_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `base_url` string, nullable — Base URL path for OpenAI API requests, leave blank if not using a proxy or service emulator.
      - `organization` string, nullable — Organization ID for OpenAI API requests, Automatically inferred from env var `OPENAI_ORG_ID` if not provided.
      - `reasoning_effort` string, nullable — Reasoning effort level for GPT-5-* models. Options are 'minimal', 'low', 'medium', 'high'.
    - GoogleLLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `model` 'gemini-flash-latest' | 'gemini-flash-lite-latest' | 'gemini-3.6-flash' | 'gemini-3.1-pro-preview' | 'gemini-3.5-flash' | 'gemini-3.5-flash-lite' | 'gemini-3.1-flash-lite' | 'gemini-3-flash-preview' | 'gemini-2.5-pro' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite'
      - `type` 'google_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `thinking_budget` integer, nullable — Indicates the thinking budget in tokens. By default, it is set to 0.
    - AnthropicLLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `model` 'claude-opus-5' | 'claude-sonnet-5' | 'claude-fable-5' | 'claude-opus-4-8' | 'claude-opus-4-7' | 'claude-opus-4-6' | 'claude-opus-4-5-20251101' | 'claude-opus-4-1-20250805' | 'claude-sonnet-4-6' | 'claude-sonnet-4-5-20250929' | 'claude-haiku-4-5' | 'claude-haiku-4-5-20251001'
      - `type` 'anthropic_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `thinking_budget` integer, nullable — Token budget for Claude's extended thinking feature. Set to 0 to disable. When enabled, Claude will show its reasoning process before providing a final answer.
    - BedrockLLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, nullable — Amazon Bedrock long-term API key (bearer token). If set, it is used for authentication and the access-key fields below are ignored. Leave empty to authenticate with an access-key pair or the default AWS credential chain (IAM role).
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `model` 'zai.glm-5' | 'zai.glm-4.7' | 'zai.glm-4.7-flash' | 'moonshotai.kimi-k2.5' | 'moonshot.kimi-k2-thinking' | 'qwen.qwen3-vl-235b-a22b' | 'qwen.qwen3-32b-v1:0'
      - `type` 'bedrock_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `region` string, nullable — AWS region the Bedrock model is invoked in. Defaults to us-east-1 if not provided.
      - `aws_access_key_id` string, nullable — AWS access key ID for Bedrock. Leave empty to use the platform default (`BEDROCK_ACCESS_KEY` env var, then the AWS credential chain).
      - `aws_secret_access_key` string, nullable — AWS secret access key for Bedrock. Leave empty to use the platform default (`BEDROCK_SECRET_KEY` env var, then the AWS credential chain).
    - CustomLLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `model` string, nullable — Name of the model served behind the custom LLM gateway (free-form string, e.g. 'gpt-4.1-mini', 'llama-3-70b', 'mistral-large').
      - `reasoning_effort` string, nullable — Reasoning effort level for GPT-5-* models. Options are 'minimal', 'low', 'medium', 'high'.
      - `type` 'custom_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `base_url` string, nullable — Base URL of the custom OpenAI-compatible LLM gateway (e.g. 'http://api.interactly.ai/workflows/llm-proxy').
      - `default_headers` object, nullable — Optional HTTP headers to include in every request to the gateway (e.g. routing keys, tenant IDs).
      - `rewrite_base_url` boolean — When True, uses an httpx event hook to rewrite every request URL to the exact base_url. Use this for gateways that don't accept the /chat/completions suffix the SDK appends.
      - `verify_ssl` boolean — Whether to verify SSL certificates. Set to False for gateways with self-signed certificates.
      - `response_unwrap_key` string, nullable — When set, the gateway response JSON is expected to wrap the standard OpenAI response inside this key (e.g. 'result'). The runtime will extract the nested object before passing it to the OpenAI SDK. Leave empty for gateways that already return standard format.
      - `integration_auth` IntegrationAuthConfig — Configuration for integration-backed bearer-token authentication. Provider-agnostic: any integration that exposes an OAuth2 client-credentials token endpoint (Okta, Athena, ECW, ...) can be referenced here. The runtime only needs the integration ID – the integrations service resolves the provider and returns the bearer token.
        - `integration_id` string, nullable — ID of an integration to use for bearer-token authentication. When set, the runtime fetches a cached OAuth token from this integration and injects it as the Authorization header. Ignored when api_key or an Authorization default_header is already provided.
      - `use_responses_api` boolean — Whether to use the GPT 5.x+ style Responses API, instead of Chat Completions API for this Custom LLM. See https://developers.openai.com/api/reference/resources/responses
    - WorkflowDefaultLLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `type` 'global_default_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
    - NoLLMConfigInput
      - `logical_id` string, nullable — Unique identifier for the LLM configuration
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
      - `streaming` boolean — Whether to enable streaming for the LLM response.
      - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
      - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
      - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
      - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
      - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
      - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
      - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
      - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
      - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
      - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
      - `type` 'no_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
    - LLMGroupConfigInput
      - `type` 'llm_group' — Discriminator field which must always be 'llm_group'
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `logical_id` string, nullable — Unique identifier for the LLM Group
      - `llms` union[] — List of LLM configurations, in preferred order of use.
        - union
          - AzureOpenAILLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `model` 'gpt-5-chat' | 'gpt-5-mini' | 'gpt-5-nano' | 'gpt-4.1-nano' | 'gpt-4.1-mini' | 'gpt-4.1'
            - `type` 'azure_openai_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
            - `endpoint` string, nullable — Endpoint URL for Azure OpenAI API requests. Automatically inferred from env var `AZURE_OPENAI_ENDPOINT` if not provided.
            - `api_version` string, nullable — Azure OpenAI API version. Falls back to `OPENAI_API_VERSION` env var if not provided.
            - `reasoning_effort` string, nullable — Reasoning effort level for GPT-5-* models. Options are 'low', 'medium', 'high'.
          - OpenAILLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `model` 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.4-nano' | 'gpt-5.2' | 'gpt-5.1' | 'gpt-5-nano' | 'gpt-5-mini' | 'gpt-5' | 'gpt-5.4-pro' | 'gpt-5.2-pro' | 'gpt-5.2-chat-latest' | 'gpt-5.3-chat-latest' | 'gpt-4.1-nano' | 'gpt-4.1-mini' | 'gpt-4.1' | 'gpt-4' | 'gpt-4o-mini' | 'gpt-4o' | 'gpt-3.5-turbo'
            - `type` 'openai_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
            - `base_url` string, nullable — Base URL path for OpenAI API requests, leave blank if not using a proxy or service emulator.
            - `organization` string, nullable — Organization ID for OpenAI API requests, Automatically inferred from env var `OPENAI_ORG_ID` if not provided.
            - `reasoning_effort` string, nullable — Reasoning effort level for GPT-5-* models. Options are 'minimal', 'low', 'medium', 'high'.
          - GoogleLLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `model` 'gemini-flash-latest' | 'gemini-flash-lite-latest' | 'gemini-3.6-flash' | 'gemini-3.1-pro-preview' | 'gemini-3.5-flash' | 'gemini-3.5-flash-lite' | 'gemini-3.1-flash-lite' | 'gemini-3-flash-preview' | 'gemini-2.5-pro' | 'gemini-2.5-flash' | 'gemini-2.5-flash-lite'
            - `type` 'google_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
            - `thinking_budget` integer, nullable — Indicates the thinking budget in tokens. By default, it is set to 0.
          - AnthropicLLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `model` 'claude-opus-5' | 'claude-sonnet-5' | 'claude-fable-5' | 'claude-opus-4-8' | 'claude-opus-4-7' | 'claude-opus-4-6' | 'claude-opus-4-5-20251101' | 'claude-opus-4-1-20250805' | 'claude-sonnet-4-6' | 'claude-sonnet-4-5-20250929' | 'claude-haiku-4-5' | 'claude-haiku-4-5-20251001'
            - `type` 'anthropic_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
            - `thinking_budget` integer, nullable — Token budget for Claude's extended thinking feature. Set to 0 to disable. When enabled, Claude will show its reasoning process before providing a final answer.
          - BedrockLLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, nullable — Amazon Bedrock long-term API key (bearer token). If set, it is used for authentication and the access-key fields below are ignored. Leave empty to authenticate with an access-key pair or the default AWS credential chain (IAM role).
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `model` 'zai.glm-5' | 'zai.glm-4.7' | 'zai.glm-4.7-flash' | 'moonshotai.kimi-k2.5' | 'moonshot.kimi-k2-thinking' | 'qwen.qwen3-vl-235b-a22b' | 'qwen.qwen3-32b-v1:0'
            - `type` 'bedrock_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
            - `region` string, nullable — AWS region the Bedrock model is invoked in. Defaults to us-east-1 if not provided.
            - `aws_access_key_id` string, nullable — AWS access key ID for Bedrock. Leave empty to use the platform default (`BEDROCK_ACCESS_KEY` env var, then the AWS credential chain).
            - `aws_secret_access_key` string, nullable — AWS secret access key for Bedrock. Leave empty to use the platform default (`BEDROCK_SECRET_KEY` env var, then the AWS credential chain).
          - CustomLLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `model` string, nullable — Name of the model served behind the custom LLM gateway (free-form string, e.g. 'gpt-4.1-mini', 'llama-3-70b', 'mistral-large').
            - `reasoning_effort` string, nullable — Reasoning effort level for GPT-5-* models. Options are 'minimal', 'low', 'medium', 'high'.
            - `type` 'custom_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
            - `base_url` string, nullable — Base URL of the custom OpenAI-compatible LLM gateway (e.g. 'http://api.interactly.ai/workflows/llm-proxy').
            - `default_headers` object, nullable — Optional HTTP headers to include in every request to the gateway (e.g. routing keys, tenant IDs).
            - `rewrite_base_url` boolean — When True, uses an httpx event hook to rewrite every request URL to the exact base_url. Use this for gateways that don't accept the /chat/completions suffix the SDK appends.
            - `verify_ssl` boolean — Whether to verify SSL certificates. Set to False for gateways with self-signed certificates.
            - `response_unwrap_key` string, nullable — When set, the gateway response JSON is expected to wrap the standard OpenAI response inside this key (e.g. 'result'). The runtime will extract the nested object before passing it to the OpenAI SDK. Leave empty for gateways that already return standard format.
            - `integration_auth` IntegrationAuthConfig — Configuration for integration-backed bearer-token authentication. Provider-agnostic: any integration that exposes an OAuth2 client-credentials token endpoint (Okta, Athena, ECW, ...) can be referenced here. The runtime only needs the integration ID – the integrations service resolves the provider and returns the bearer token.
              - …
            - `use_responses_api` boolean — Whether to use the GPT 5.x+ style Responses API, instead of Chat Completions API for this Custom LLM. See https://developers.openai.com/api/reference/resources/responses
          - WorkflowDefaultLLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `type` 'global_default_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
          - NoLLMConfigInput
            - `logical_id` string, nullable — Unique identifier for the LLM configuration
            - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
            - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
            - `provider` 'default_provider' | 'azure_openai' | 'openai' | 'google' | 'anthropic' | 'bedrock' | 'custom', nullable — The selected Large Language Model provider from the available options.
            - `streaming` boolean — Whether to enable streaming for the LLM response.
            - `max_retries` integer, nullable — Maximum number of retries for the LLM request in case of failure.
            - `max_parse_retries` integer, nullable — Maximum number of times to re-invoke the LLM when a successful response cannot be parsed into the expected structured (JSON) output. Distinct from `max_retries`, which controls transport-level retries (network errors, rate limits, 5xx) inside the LLM client.
            - `max_tokens` integer, nullable — Maximum number of tokens to generate in the response.
            - `temperature` number, nullable — Controls the randomness of the model's output. Lower values make the output more deterministic.
            - `request_timeout_ms` integer, nullable — Timeout for the request in milliseconds.
            - `seed` integer, nullable — Seed for random number generation to ensure reproducibility.
            - `model_kwargs` object — Additional keyword arguments to pass to the LLM provider's API.
            - `api_key` string, password, nullable — API key to access the LLM provider endpoint. Once saved, the key is stored securely and is never shown back in the UI. You can update it at any time by entering a new value; leaving it blank keeps the existing key in use for this LLM.
            - `do_not_split_sentences` boolean — Whether to avoid splitting sentences in the LLM response.
            - `truncated_max_recent_messages` integer, nullable — Maximum number of recent messages to keep when truncating the conversation history. If not set, no truncation is applied. If set, the recent conversation history will be truncated to contain only the specified number of messages when invoking the LLM for next response. If set to 0, only the system prompt is used.
            - `type` 'no_llm' — Differentiator field that helps in identifying this particular type of config when serializing and deserializing
      - `operation_mode` 'parallel_select_one' | 'sequential_with_proactive'
      - `min_patience_time_ms` integer, nullable — Grace period in milliseconds until which we will unconditionally wait, unless all LLMs have responded.
      - `max_patience_time_ms` integer, nullable — Threshold milliseconds after which we will stop waiting. If no LLM has responded by this time, we will return None.
    - LLMGroupWithBackchannelConfigInput
      - `type` 'llm_group_with_backchannel' — Discriminator field which must always be 'llm_group_with_backchannel'
      - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
      - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
      - `id` string, nullable — Unique identifier for the LLM Group
      - `main_llm_config` LLMGroupConfigInput
        - `type` 'llm_group' — Discriminator field which must always be 'llm_group'
        - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
        - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
        - `logical_id` string, nullable — Unique identifier for the LLM Group
        - `llms` union[] — List of LLM configurations, in preferred order of use.
          - union
            - AzureOpenAILLMConfigInput
              - …
            - OpenAILLMConfigInput
              - …
            - GoogleLLMConfigInput
              - …
            - AnthropicLLMConfigInput
              - …
            - BedrockLLMConfigInput
              - …
            - CustomLLMConfigInput
              - …
            - WorkflowDefaultLLMConfigInput
              - …
            - NoLLMConfigInput
              - …
        - `operation_mode` 'parallel_select_one' | 'sequential_with_proactive'
        - `min_patience_time_ms` integer, nullable — Grace period in milliseconds until which we will unconditionally wait, unless all LLMs have responded.
        - `max_patience_time_ms` integer, nullable — Threshold milliseconds after which we will stop waiting. If no LLM has responded by this time, we will return None.
      - `non_backchannel_response_prefix` string, nullable — If back channel response is being sent, only the LLM output following this prefix will follow the backchannel response
      - `backchannel_llm_config` LLMGroupConfigInput
        - `type` 'llm_group' — Discriminator field which must always be 'llm_group'
        - `named_llm_config_id` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its ID.
        - `named_llm_config_name` string, nullable — If this configuration was resolved from a reusable named LLM configuration, this holds its name.
        - `logical_id` string, nullable — Unique identifier for the LLM Group
        - `llms` union[] — List of LLM configurations, in preferred order of use.
          - union
            - AzureOpenAILLMConfigInput
              - …
            - OpenAILLMConfigInput
              - …
            - GoogleLLMConfigInput
              - …
            - AnthropicLLMConfigInput
              - …
            - BedrockLLMConfigInput
              - …
            - CustomLLMConfigInput
              - …
            - WorkflowDefaultLLMConfigInput
              - …
            - NoLLMConfigInput
              - …
        - `operation_mode` 'parallel_select_one' | 'sequential_with_proactive'
        - `min_patience_time_ms` integer, nullable — Grace period in milliseconds until which we will unconditionally wait, unless all LLMs have responded.
        - `max_patience_time_ms` integer, nullable — Threshold milliseconds after which we will stop waiting. If no LLM has responded by this time, we will return None.
      - `backchannel_static_responses` string[] — List of static responses from which one will be selected as a backchannel response.
      - `backchannel_static_responses_selection_mode` 'random' | 'sequence'
      - `backchannel_min_patience_time_ms` integer, nullable — Grace period in milliseconds until which we will unconditionally wait for the main LLM to respond, unless it has already responded.

## Response `200`

Successful Response

- LLMConfigTestResponse
  - `success` boolean, required
  - `response` string, nullable — Concatenated model output text on success.
  - `error` string, nullable — Clean error message when success is False.
  - `provider` string, nullable
  - `model` string, nullable
  - `prompt_tokens` integer, nullable
  - `completion_tokens` integer, nullable
  - `total_tokens` integer, nullable
  - `latency_ms` integer, nullable
  - `winning_member` LLMTestMemberInfo — Identity of the group member that produced a given response (null fields for single configs).
    - `index` integer, nullable — Position within the group's llms list.
    - `logical_id` string, nullable
    - `provider` string, nullable
    - `model` string, nullable
  - `backchannel_response` string, nullable — Backchannel text emitted before the main response, if any.
  - `backchannel_member` LLMTestMemberInfo — Identity of the group member that produced a given response (null fields for single configs).
    - `index` integer, nullable — Position within the group's llms list.
    - `logical_id` string, nullable
    - `provider` string, nullable
    - `model` string, nullable
  - `backchannel_prompt_tokens` integer, nullable
  - `backchannel_completion_tokens` integer, nullable
  - `backchannel_total_tokens` integer, nullable

## Other responses

- `422` — Validation Error

## Changes

- **2026-08-19** `68e88496bf11` — 4 warning, 4 info
  - removed the request property `config/oneOf[subschema #10: Group of regular and backchanneling LLMs]/backchannel_llm_config/anyOf[subschema #1: Group of LLMs]/llms/items/oneOf[subschema #6: Custom LLM]/okta_auth`
  - removed the request property `config/oneOf[subschema #10: Group of regular and backchanneling LLMs]/main_llm_config/anyOf[subschema #1: Group of LLMs]/llms/items/oneOf[subschema #6: Custom LLM]/okta_auth`
  - removed the request property `config/oneOf[subschema #6: Custom LLM]/okta_auth`
  - removed the request property `config/oneOf[subschema #9: Group of LLMs]/llms/items/oneOf[subschema #6: Custom LLM]/okta_auth`
  - …4 more
- …earlier changes not shown

[Full history](https://skmtc.dev/interactly/apis/interactly-api-3/changes/workflows/v1/llm-configs/test/post.md)

---

[API](https://skmtc.dev/interactly/apis/interactly-api-3.md) · [All operations](https://skmtc.dev/interactly/apis/interactly-api-3/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/interactly/interactly-api-3/revisions/35cbea12a781/schema)
