---
title: "POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/stream"
method: POST
path: "/api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/stream"
---

# POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/stream

`POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/stream`

## Path parameters

- `projectUuid` string, required
- `agentUuid` string, required
- `threadUuid` string, required

## Request body

- ApiAiAgentThreadStreamRequest
  - `toolHints` string[] — Tool names hinted by the user when they composed the message (via suggestion chips that carry a tool id). agentV2 appends a soft hint to the user message before sending it to the LLM. Transient — never persisted.
  - `autoApproveSql` boolean — Skips the SQL human-approval gate for this stream. Used by the review remediation workspace so Continue PR turns run frictionlessly. Defaults to false — normal chat still asks the user to approve SQL.
  - `enableSqlMode` boolean — Per-thread toggle that decides whether the agent gets access to the runSql / listWarehouseTables / describeWarehouseTable tools for this stream. Frontend tracks the toggle in its slice; passed in on every stream call. Falls back to `false` when omitted (e.g. older clients, API callers) so the safer "semantic layer only" mode is the default.

## Response `200`

Success

## Other responses

- `default` — Error

---

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