Availability: Deep Research is an Enterprise feature and is currently behind a feature flag. Contact us to enable it for your workspace.
What it does
Deep Research uses a managed Claude agent that has read-only access to the target project. Each run:- Selects the project you scoped it to and discovers explores and fields through the same MCP tools an interactive agent uses.
- Runs bounded warehouse queries against your semantic layer to gather evidence.
- Synthesises a markdown report — an intro that answers the question, one section per finding with a confidence tag and at most one embedded chart, an optional caveats section, and a conclusion. Sources are listed at the bottom when the agent uses
[n]citations. - Attaches chart snapshots to the report so evidence renders instantly. Each chart is either a warehouse chart (a verified query from the run) or an inline chart (agent-computed data from derived analysis, capped at 100 columns × 10 rows). Warehouse charts can be refreshed on demand to fetch live data.
When to use it
Effort tiers
Each run has a server-owned budget determined by an effort tier. The budget caps runtime, model tokens, tool calls, warehouse queries, and result rows.
Pick the smallest effort that reliably answers the kinds of questions you’re sending. The
xhigh runtime is capped below the 60-minute worker limit to leave the agent time to clean up gracefully.
A run reaches a terminal state as soon as it completes, fails, is cancelled, or hits any budget cap. Terminal statuses include completed, partially_completed, failed, and cancelled.
Permissions
Starting a Deep Research run requires thecreate:AiDeepResearch project scope. This scope is:
- Part of the AI scope group and is Enterprise-only.
- Included in the Developer system role and inherited by Admin.
- Not granted to Editor, Interactive Viewer, or Viewer roles — those users cannot start a run even if they can otherwise view the project.
- Not automatically added to custom roles — grant the scope explicitly on any custom role that should be able to start runs.
view:Project. Reading a run, listing its events, and cancelling it are creator-owned and only require view:Project.
Demo mode cannot create Deep Research runs.
Credential lifecycle
Every run mints its own short-lived personal access token immediately before execution. That PAT is stored only in the managed-agent’s credential vault and is deleted on any terminal state — including failure, cancellation, timeout, and budget exhaustion. You don’t create or manage this PAT and it doesn’t appear in your account’s PAT list for long.API reference
All endpoints are rooted at/api/v1/ee/projects/{projectUuid}/ai-deep-research. Authenticate with either a session or a personal access token, the same way you’d call any other Lightdash API.
For request and response shapes, see the auto-generated API reference and search for AiDeepResearch.
Start a run
prompt(required) — the question or investigation brief.effort(optional) — one oflow,medium,high,xhigh. Defaults tomedium.threadUuid(optional) — link the run to an existing AI agent thread in the same project. The thread must exist, be in the same project, and be owned by the caller.promptUuid(optional) — link the run to a specific prompt inside that thread. RequiresthreadUuid.
202 Accepted with the newly created run, including aiDeepResearchRunUuid and the resolved budget snapshot. The run then executes in the background.
Read a run
status, the resolved budget, timestamps, prompt, any linked aiThreadUuid/promptUuid, and the resultMarkdown report once the run is in a terminal state. Poll this endpoint to know when to fetch the final report.
List runs for a thread
List progress events
nextCursor. Events include status transitions, cancellation requests, and phase/activity progress (planning, investigating, validating, synthesizing).
Pass the returned nextCursor back unchanged on the next call to fetch only newer events. Cursors round-trip PostgreSQL microsecond precision, so re-polling the tail after the run has already ended doesn’t replay the final event.
Cancel a run
cancelled on the next safe checkpoint and its temporary PAT is deleted as part of the terminal cleanup.
Refresh a warehouse chart
400.
Report shape
The final report is a single markdown document plus a map of chart snapshots. The markdown always follows this outline:[Title](#chart-<key>) link is a placeholder for a chart snapshot. When rendering the report yourself, look up <key> in the run’s chart-data map to get the snapshot rows and chart config, then render inline. Warehouse charts also expose a live-refresh endpoint (see above).
Example: start, poll, and read the report
The snippet below starts a run and polls for its status until it’s terminal, then prints the markdown report. ReplaceLIGHTDASH_HOST, LIGHTDASH_PAT, and PROJECT_UUID with your own values.
.../events?cursor=<cursor> in a loop and keep passing the latest nextCursor back in.