---
title: "POST /ai/query"
method: POST
path: "/ai/query"
tags: ["ai-backend-controller"]
---

# POST /ai/query

`POST /ai/query`

## Request body

- AiQueryRequest
  - `conversation` JsonNode[]
  - `provider` string
  - `model` string
  - `temperature` number, double
  - `auth` AuthData
    - `api_key` string
  - `request_type` string
  - `request_id` string
  - `function_call_depth` integer
  - `message_id` string
  - `function_call_result` JsonNode
  - `last_function_was_edit_file` boolean
  - `symbols_note` SymbolsNote
    - `keywords` object[]
    - `direct_context` DirectContextItem[]
      - `type` string
      - `name` string
      - `path` string
      - `content` object
      - `symbols` object
      - `id` string
      - `summary` string
      - `topic` string
      - `markdown` string
      - `contents` string[]
      - `start_line` integer
      - `end_line` integer
    - `environment_variables` EnvironmentVariables
      - `Data` EnvironmentVariable[]
        - `name` string
        - `description` string
      - `Function` EnvironmentVariable[]
        - `name` string
        - `description` string
      - `Value` EnvironmentVariable[]
        - `name` string
        - `description` string
    - `open_files` OpenFile[]
      - `id` string
      - `path` string
      - `type` string
      - `dirty` boolean
      - `name` string
      - `minutes_since_last_update` number, double
      - `is_active` boolean
    - `attached_images` ImageContextData[]
      - `filename` string
      - `timestamp` string
      - `original_path` string
      - `local_path` string
      - `mime_type` string
      - `base64_data` string
  - `user_os_version` string
  - `user_workspace_path` string
  - `user_shell` string
  - `project_layout` string
  - `client_version` string
  - `app_type` string
  - `interaction_mode` string
  - `previous_response_id` string
  - `context_items` string[]
  - `user_rules` string[]
  - `rule_file` string
  - `custom_system_prompt` string
  - `direct_context_message` string
  - `target_query_number` integer
  - `previous_summary` PreviousSummary
    - `query_number` integer
    - `timestamp` string
    - `summary_text` string
    - `first_unsummarized_message_id` integer
    - `tokens_at_summarization` integer
  - `enabled_tools` string[]
  - `custom_functions` object[]
  - `replace_functions` boolean

## Response `200`

OK

---

[API](https://skmtc.dev/lotas/apis/openapi-definition.md) · [All operations](https://skmtc.dev/lotas/apis/openapi-definition/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/lotas/openapi-definition/revisions/be9344411958/schema)
