> ## Documentation Index
> Fetch the complete documentation index at: https://docs.interactly.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Llm Config

> Endpoint to retrieve a specific LLM configuration by ID.



## OpenAPI

````yaml https://api-prod.interactly.ai/api-docs/workflows/api.json get /workflows/v1/llm-configs/{llm_config_id}
openapi: 3.1.0
info:
  title: Interactly API
  description: API for building interactly.ai services
  version: 1.1.0
  contact:
    name: Interactly
    url: https://interactly.ai
    email: developers@interactly.ai
servers:
  - url: https://api-prod.interactly.ai
    description: API Server
security: []
paths:
  /workflows/v1/llm-configs/{llm_config_id}:
    get:
      tags:
        - LLM Configs
      summary: Get Llm Config
      description: Endpoint to retrieve a specific LLM configuration by ID.
      operationId: workflow_service_get_llm_config_v1_llm_configs__llm_config_id__get
      parameters:
        - name: llm_config_id
          in: path
          required: true
          schema:
            type: string
            title: Llm Config Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LLMConfigResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - bearer: []
components:
  schemas:
    LLMConfigResponse:
      properties:
        llm_config:
          $ref: '#/components/schemas/LLMConfigModel'
      type: object
      required:
        - llm_config
      title: LLMConfigResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    LLMConfigModel:
      properties:
        team_id:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the team that owns this edge
        created_by:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the user who created this edge
        updated_by:
          anyOf:
            - type: string
            - type: 'null'
          description: ID of the user who last updated this edge
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        _id:
          anyOf:
            - $ref: '#/components/schemas/PydanticObjectId'
            - type: 'null'
          description: MongoDB document ObjectID
        llm_config_id:
          type: string
          title: Llm Config Id
        name:
          type: string
          title: Name
          description: Display name of the configuration
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Optional textual description
        config:
          oneOf:
            - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
            - $ref: '#/components/schemas/OpenAILLMConfig-Output'
            - $ref: '#/components/schemas/GoogleLLMConfig-Output'
            - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
            - $ref: '#/components/schemas/CustomLLMConfig-Output'
            - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
            - $ref: '#/components/schemas/NoLLMConfig-Output'
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
          title: Config
          description: The actual configuration details
          discriminator:
            propertyName: type
            mapping:
              anthropic_llm:
                $ref: '#/components/schemas/AnthropicLLMConfig-Output'
              azure_openai_llm:
                $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
              custom_llm:
                $ref: '#/components/schemas/CustomLLMConfig-Output'
              global_default_llm:
                $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
              google_llm:
                $ref: '#/components/schemas/GoogleLLMConfig-Output'
              llm_group:
                $ref: '#/components/schemas/LLMGroupConfig-Output'
              llm_group_with_backchannel:
                $ref: '#/components/schemas/LLMGroupWithBackchannelConfig-Output'
              no_llm:
                $ref: '#/components/schemas/NoLLMConfig-Output'
              openai_llm:
                $ref: '#/components/schemas/OpenAILLMConfig-Output'
        is_default:
          type: boolean
          title: Is Default
          description: >-
            Indicates if this is the global default LLM configuration for the
            team
          default: false
      type: object
      required:
        - name
        - config
      title: LLMConfigModel
      description: >-
        Stores a named, reusable LLM configuration that lives independently of
        workflows and nodes.

        A workflow or node attaches it via ``attachable_llm_config_id`` (which
        holds this model's

        ``llm_config_id``) and the concrete ``config`` is resolved into the
        workflow at hydration time.
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    PydanticObjectId:
      type: string
      maxLength: 24
      minLength: 24
      pattern: ^[0-9a-f]{24}$
      example: 5eb7cf5a86d9755df3a6c593
    AzureOpenAILLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: azure_openai
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          anyOf:
            - $ref: '#/components/schemas/AZUREOPENAIModel'
            - type: 'null'
          title: Azure OpenAI Model
          description: Name of the Azure OpenAI model to use
          default: gpt-5-mini
        type:
          type: string
          const: azure_openai_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: azure_openai_llm
          field_visibility_level: developer
          input_field_not_visible: true
        endpoint:
          anyOf:
            - type: string
            - type: 'null'
          title: Azure OpenAI Endpoint
          description: >-
            Endpoint URL for Azure OpenAI API requests. Automatically inferred
            from env var `AZURE_OPENAI_ENDPOINT` if not provided.
          field_visibility_level: developer
        api_version:
          anyOf:
            - type: string
            - type: 'null'
          title: Azure OpenAI API Version
          description: >-
            Azure OpenAI API version. Falls back to `OPENAI_API_VERSION` env var
            if not provided.
          field_visibility_level: developer
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'low',
            'medium', 'high'.
          default: low
      type: object
      title: Azure OpenAI
    OpenAILLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: openai
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          anyOf:
            - $ref: '#/components/schemas/OPENAIModel'
            - type: 'null'
          title: OpenAI Model
          description: Name of the OpenAI model to use
          default: gpt-5.4-mini
        type:
          type: string
          const: openai_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: openai_llm
          field_visibility_level: developer
          input_field_not_visible: true
        base_url:
          anyOf:
            - type: string
            - type: 'null'
          title: OpenAI Base URL
          description: >-
            Base URL path for OpenAI API requests, leave blank if not using a
            proxy or service emulator.
          field_visibility_level: developer
        organization:
          anyOf:
            - type: string
            - type: 'null'
          title: OpenAI Organization ID
          description: >-
            Organization ID for OpenAI API requests, Automatically inferred from
            env var `OPENAI_ORG_ID` if not provided.
          field_visibility_level: developer
        reasoning_effort:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'minimal',
            'low', 'medium', 'high'.
          default: low
      type: object
      title: OpenAI
    GoogleLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: google
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          anyOf:
            - $ref: '#/components/schemas/GOOGLEModel'
            - type: 'null'
          title: Google Model
          description: Name of the Google model to use
          default: gemini-3-flash-preview
        type:
          type: string
          const: google_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: google_llm
          field_visibility_level: developer
          input_field_not_visible: true
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget (tokens)
          description: Indicates the thinking budget in tokens. By default, it is set to 0.
          default: 0
      type: object
      title: Google
    AnthropicLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: anthropic
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          anyOf:
            - $ref: '#/components/schemas/ANTHROPICModel'
            - type: 'null'
          title: Anthropic Model
          description: Name of the Anthropic Claude model to use
          default: claude-sonnet-4-6
        type:
          type: string
          const: anthropic_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: anthropic_llm
          input_field_not_visible: true
        thinking_budget:
          anyOf:
            - type: integer
            - type: 'null'
          title: Thinking Budget (tokens)
          description: >-
            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.
          default: 0
      type: object
      title: Anthropic
    CustomLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: custom
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          anyOf:
            - type: string
            - type: 'null'
          title: Custom Model Name
          description: >-
            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:
          anyOf:
            - type: string
            - type: 'null'
          title: Reasoning Effort
          description: >-
            Reasoning effort level for GPT-5-* models. Options are 'minimal',
            'low', 'medium', 'high'.
        type:
          type: string
          const: custom_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: custom_llm
          field_visibility_level: developer
          input_field_not_visible: true
        base_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Gateway Base URL
          description: >-
            Base URL of the custom OpenAI-compatible LLM gateway (e.g.
            'http://api.interactly.ai/workflows/llm-proxy').
        default_headers:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Headers
          description: >-
            Optional HTTP headers to include in every request to the gateway
            (e.g. routing keys, tenant IDs).
        rewrite_base_url:
          type: boolean
          title: Rewrite Base URL
          description: >-
            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.
          default: false
        verify_ssl:
          type: boolean
          title: Verify SSL
          description: >-
            Whether to verify SSL certificates. Set to False for gateways with
            self-signed certificates.
          default: true
        response_unwrap_key:
          anyOf:
            - type: string
            - type: 'null'
          title: Response Unwrap Key
          description: >-
            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.
        okta_auth:
          anyOf:
            - $ref: '#/components/schemas/OktaAuthConfig'
            - type: 'null'
          title: Okta Auth
          description: Okta authentication configuration for bearer-token injection.
        use_responses_api:
          type: boolean
          title: Use Responses API
          description: >-
            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
          default: false
      type: object
      title: Custom LLM
    WorkflowDefaultLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: default_provider
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          type: string
          const: global_default_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: global_default_llm
          input_field_not_visible: true
      type: object
      title: Workflow Default LLM
      hidden_in_contexts:
        - workflow_settings
        - llm_config
      hide_all_fields: true
    NoLLMConfig-Output:
      properties:
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Configuration ID
          description: Unique identifier for the LLM configuration
          input_field_disallowed: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        provider:
          anyOf:
            - $ref: '#/components/schemas/LLMProvider'
            - type: 'null'
          title: LLM Provider
          description: >-
            The selected Large Language Model provider from the available
            options.
          default: default_provider
          input_field_not_visible: true
        streaming:
          type: boolean
          title: Enable Streaming
          description: Whether to enable streaming for the LLM response.
          default: false
          field_visibility_level: developer
        max_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Retries
          description: Maximum number of retries for the LLM request in case of failure.
          default: 3
          field_visibility_level: developer
        max_parse_retries:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Parse Retries
          description: >-
            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.
          default: 3
          field_visibility_level: developer
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Maximum number of tokens to generate in the response.
        temperature:
          anyOf:
            - type: number
              maximum: 1
              minimum: 0
            - type: 'null'
          title: Temperature
          description: >-
            Controls the randomness of the model's output. Lower values make the
            output more deterministic.
          input_field_type: number_with_slider
        request_timeout_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Request Timeout (ms)
          description: Timeout for the request in milliseconds.
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Random Seed
          description: Seed for random number generation to ensure reproducibility.
          field_visibility_level: developer
        model_kwargs:
          additionalProperties: true
          type: object
          title: Model Keyword Arguments
          description: Additional keyword arguments to pass to the LLM provider's API.
          field_visibility_level: developer
        api_key:
          anyOf:
            - type: string
            - type: 'null'
          title: API Key
          description: API KEY to access the LLM provider endpoint
          field_visibility_level: developer
          input_field_type: password
        do_not_split_sentences:
          type: boolean
          title: Do Not Split Sentences
          description: Whether to avoid splitting sentences in the LLM response.
          default: false
          field_visibility_level: developer
        truncated_max_recent_messages:
          anyOf:
            - type: integer
            - type: 'null'
          title: Truncated Max Recent Messages
          description: >-
            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:
          type: string
          const: no_llm
          title: Type
          description: >-
            Differentiator field that helps in identifying this particular type
            of config when serializing and deserializing
          default: no_llm
          input_field_not_visible: true
      type: object
      title: No LLM
      hidden_in_contexts:
        - node_settings
        - llm_config
      hide_all_fields: true
    LLMGroupConfig-Output:
      properties:
        type:
          type: string
          const: llm_group
          title: Type
          description: Discriminator field which must always be 'llm_group'
          default: llm_group
          field_visibility_level: super_admin
          input_field_not_visible: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        logical_id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Group Logical ID
          description: Unique identifier for the LLM Group
          input_field_disallowed: true
        llms:
          items:
            oneOf:
              - $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
              - $ref: '#/components/schemas/OpenAILLMConfig-Output'
              - $ref: '#/components/schemas/GoogleLLMConfig-Output'
              - $ref: '#/components/schemas/AnthropicLLMConfig-Output'
              - $ref: '#/components/schemas/CustomLLMConfig-Output'
              - $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
              - $ref: '#/components/schemas/NoLLMConfig-Output'
            discriminator:
              propertyName: type
              mapping:
                anthropic_llm:
                  $ref: '#/components/schemas/AnthropicLLMConfig-Output'
                azure_openai_llm:
                  $ref: '#/components/schemas/AzureOpenAILLMConfig-Output'
                custom_llm:
                  $ref: '#/components/schemas/CustomLLMConfig-Output'
                global_default_llm:
                  $ref: '#/components/schemas/WorkflowDefaultLLMConfig-Output'
                google_llm:
                  $ref: '#/components/schemas/GoogleLLMConfig-Output'
                no_llm:
                  $ref: '#/components/schemas/NoLLMConfig-Output'
                openai_llm:
                  $ref: '#/components/schemas/OpenAILLMConfig-Output'
          type: array
          title: LLM Group
          description: List of LLM configurations, in preferred order of use.
        operation_mode:
          anyOf:
            - $ref: '#/components/schemas/OperationMode'
            - type: 'null'
          title: Operation Mode
          description: Operation mode for the LLM group
          default: sequential_with_proactive
        min_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Minimum Patience Time
          description: >-
            Grace period in milliseconds until which we will unconditionally
            wait, unless all LLMs have responded.
          default: 1500
          field_visibility_level: developer
        max_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Maximum Patience Time
          description: >-
            Threshold milliseconds after which we will stop waiting. If no LLM
            has responded by this time, we will return None.
          field_visibility_level: developer
      type: object
      title: Group of LLMs
    LLMGroupWithBackchannelConfig-Output:
      properties:
        type:
          type: string
          const: llm_group_with_backchannel
          title: Type
          description: >-
            Discriminator field which must always be
            'llm_group_with_backchannel'
          default: llm_group_with_backchannel
          field_visibility_level: developer
          input_field_not_visible: true
        named_llm_config_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config ID
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its ID.
          input_field_not_visible: true
        named_llm_config_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Named LLM Config Name
          description: >-
            If this configuration was resolved from a reusable named LLM
            configuration, this holds its name.
          input_field_not_visible: true
        id:
          anyOf:
            - type: string
            - type: 'null'
          title: LLM Group With Backchannel ID
          description: Unique identifier for the LLM Group
          input_field_not_visible: true
        main_llm_config:
          anyOf:
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - type: 'null'
          title: Main LLM Configuration
          description: Configuration for the main LLM
        non_backchannel_response_prefix:
          anyOf:
            - type: string
            - type: 'null'
          title: Non Backchannel Response Prefix
          description: >-
            If back channel response is being sent, only the LLM output
            following this prefix will follow the backchannel response
        backchannel_llm_config:
          anyOf:
            - $ref: '#/components/schemas/LLMGroupConfig-Output'
            - type: 'null'
          title: Backchannel LLM Configuration
          description: Configuration for the back channel LLM
        backchannel_static_responses:
          items:
            type: string
          type: array
          title: Backchannel Static Responses
          description: >-
            List of static responses from which one will be selected as a
            backchannel response.
        backchannel_static_responses_selection_mode:
          anyOf:
            - $ref: '#/components/schemas/SelectionMode'
            - type: 'null'
          title: Backchannel Static Responses Selection Mode
          description: Selection mode for backchannel static responses
          default: random
        backchannel_min_patience_time_ms:
          anyOf:
            - type: integer
            - type: 'null'
          title: Backchannel Minimum Patience Time
          description: >-
            Grace period in milliseconds until which we will unconditionally
            wait for the main LLM to respond, unless it has already responded.
          default: 2000
      type: object
      title: Group of regular and backchanneling LLMs
    LLMProvider:
      type: string
      enum:
        - default_provider
        - azure_openai
        - openai
        - google
        - anthropic
        - bedrock
        - custom
      title: LLMProvider
    AZUREOPENAIModel:
      type: string
      enum:
        - gpt-5-chat
        - gpt-5-mini
        - gpt-5-nano
        - gpt-4.1-nano
        - gpt-4.1-mini
        - gpt-4.1
      title: AZUREOPENAIModel
    OPENAIModel:
      type: string
      enum:
        - gpt-5.4
        - gpt-5.4-mini
        - gpt-5.4-nano
        - gpt-5.2
        - gpt-5.1
        - gpt-5-chat-latest
        - gpt-5.1-chat-latest
        - gpt-5.2-chat-latest
        - gpt-5.3-chat-latest
        - gpt-5-nano
        - gpt-5-mini
        - gpt-5
        - gpt-4.1-nano
        - gpt-4.1-mini
        - gpt-4.1
        - gpt-4
        - gpt-4o-mini
        - gpt-4o
        - gpt-3.5-turbo
      title: OPENAIModel
    GOOGLEModel:
      type: string
      enum:
        - gemini-flash-latest
        - gemini-flash-lite-latest
        - gemini-3.1-pro-preview
        - gemini-3.5-flash
        - gemini-3-flash-preview
        - gemini-2.5-pro
        - gemini-2.5-flash
        - gemini-2.0-flash
        - gemini-2.0-flash-lite
        - gemini-1.5-pro
        - gemini-1.5-flash
        - gemini-1.5-flash-8b
      title: GOOGLEModel
    ANTHROPICModel:
      type: string
      enum:
        - claude-opus-4-6
        - claude-opus-4-5-20251101
        - claude-opus-4-1-20250805
        - claude-opus-4-20250514
        - claude-sonnet-4-6
        - claude-sonnet-4-5-20250929
        - claude-sonnet-4-20250514
        - claude-haiku-4-5-20251001
      title: ANTHROPICModel
    OktaAuthConfig:
      properties:
        integration_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Okta Integration ID
          description: >-
            ID of an Okta 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.
      type: object
      title: OktaAuthConfig
      description: Configuration for Okta-based bearer-token authentication.
    OperationMode:
      type: string
      enum:
        - parallel_select_one
        - sequential_with_proactive
      title: OperationMode
    SelectionMode:
      type: string
      enum:
        - random
        - sequence
      title: SelectionMode
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: Bearer
      type: http
      description: >-
        Retrieve your API Key from [Dashboard API Keys
        Section](https://dashboard.interactly.ai/api-keys).

````