Lightdash Projects API

Projects belong to a single organization. These routes allow users to manage their projects, browse content, and execute queries. Users inside an organization might have access to a project from an organization-level role or they might be granted access to a project directly.

Operations 137

GET /api/v1/snowflake/sso/is-authenticated Check Snowflake SSO authentication #
GET /api/v1/databricks/sso/is-authenticated Check Databricks OAuth authentication #
GET /api/v1/projects/{projectUuid}/aiAgents #
POST /api/v1/projects/{projectUuid}/aiAgents #
GET /api/v1/projects/{projectUuid}/aiAgents/preferences #
POST /api/v1/projects/{projectUuid}/aiAgents/preferences #
DELETE /api/v1/projects/{projectUuid}/aiAgents/preferences #
GET /api/v1/projects/{projectUuid}/aiAgents/mcpServers #
POST /api/v1/projects/{projectUuid}/aiAgents/mcpServers #
GET /api/v1/projects/{projectUuid}/aiAgents/mcpServers/github/availability #
POST /api/v1/projects/{projectUuid}/aiAgents/mcpServers/github/connect #
GET /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/tools #
POST /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/tools/refresh #
POST /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/oauth/start #
POST /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/oauth/disconnect #
GET /api/v1/projects/{projectUuid}/aiAgents/threads #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid} #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid} #
DELETE /api/v1/projects/{projectUuid}/aiAgents/{agentUuid} #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/mcpServers #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/mcpServers/{mcpServerUuid}/tools #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/mcpServers/{mcpServerUuid}/tools #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/models #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/suggestions #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluateReadiness #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/verified-artifacts #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/verified-questions #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid} #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/pull-request Get AI agent thread pull request #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/messages #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/tool-calls/{toolCallId}/sql-approval #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/stream #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/generate #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/generate-title #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/clone/{promptUuid} #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/messages/{messageUuid}/savedQuery #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/messages/{messageUuid}/feedback #
POST /api/v1/projects/{projectUuid}/aiAgents/explore-access-summary #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/artifacts/{artifactUuid} #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/artifacts/{artifactUuid}/versions/{versionUuid} #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/artifacts/{artifactUuid}/versions/{versionUuid}/viz-query #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/shares #
POST /api/v1/projects/{projectUuid}/aiAgents/thread-shares/{aiThreadShareUuid}/clone #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/artifacts/{artifactUuid}/versions/{versionUuid}/charts/{chartIndex}/viz-query #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/artifacts/{artifactUuid}/versions/{versionUuid}/savedDashboard #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/artifacts/{artifactUuid}/versions/{versionUuid}/verified #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid}/run #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid} #
PATCH /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid} #
DELETE /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid} #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid}/runs #
GET /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid}/runs/{runUuid} #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluations/{evalUuid}/append #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/append-instruction #
POST /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/messages/{promptUuid}/revert-change #
POST /api/v1/projects/{projectUuid}/validate Validate project #
GET /api/v1/projects/{projectUuid}/validate Get validation results #
DELETE /api/v1/projects/{projectUuid}/validate/{validationIdOrUuid} Dismiss validation error #
POST /api/v1/projects/{projectUuid}/validate/chart/{chartUuid} Validate specific chart #
POST /api/v1/projects/{projectUuid}/validate/dashboard/{dashboardUuid} Validate specific dashboard #
GET /api/v1/analytics/user-activity/{projectUuid} Get user activity #
POST /api/v1/analytics/user-activity/{projectUuid}/download Download user activity CSV #
GET /api/v1/analytics/user-activity/{projectUuid}/download-activity Get download activity log #
GET /api/v1/projects/{projectUuid}/spaces List spaces in project #
POST /api/v1/projects/{projectUuid}/rename Rename resources #
POST /api/v1/projects/{projectUuid}/rename/preview Preview rename #
POST /api/v1/projects/{projectUuid}/rename/chart/{chartUuid} Rename chart #
GET /api/v1/projects/{projectUuid}/rename/chart/{chartUuid}/fields Get chart fields for rename #
POST /api/v1/projects/{projectUuid}/rename/dashboard/{dashboardUuid} Rename dashboard filter #
GET /api/v1/projects/{projectUuid}/rename/dashboard/{dashboardUuid}/fields Get dashboard fields for rename #
GET /api/v1/projects/{projectUuid} Get project #
GET /api/v1/projects/{projectUuid}/charts List charts in project #
GET /api/v1/projects/{projectUuid}/chart-summaries List chart summaries in project #
GET /api/v1/projects/{projectUuid}/access List project access #
POST /api/v1/projects/{projectUuid}/access Grant project access to user #
GET /api/v1/projects/{projectUuid}/user/{userUuid} Get project member access #
POST /api/v1/projects/preview-data-timezone Preview data timezone #
PATCH /api/v1/projects/{projectUuid}/access/{userUuid} Update project access for user #
DELETE /api/v1/projects/{projectUuid}/access/{userUuid} Revoke project access for user #
GET /api/v1/projects/{projectUuid}/groupAccesses List project group accesses #
POST /api/v1/projects/{projectUuid}/sqlQuery Run SQL query #
POST /api/v1/projects/{projectUuid}/calculate-total Calculate total from query #
POST /api/v1/projects/{projectUuid}/calculate-subtotals Calculate subtotals from query #
GET /api/v1/projects/{projectUuid}/user-credentials Get user warehouse credentials preference #
GET /api/v1/projects/{projectUuid}/user-warehouse-credentials List project user warehouse credentials #
PATCH /api/v1/projects/{projectUuid}/user-credentials/{userWarehouseCredentialsUuid} Update user warehouse credentials preference #
GET /api/v1/projects/{projectUuid}/custom-metrics List custom metrics #
PATCH /api/v1/projects/{projectUuid}/metadata Update project metadata #
PATCH /api/v1/projects/{projectUuid}/hasDefaultUserSpaces Update default user spaces setting #
GET /api/v1/projects/{projectUuid}/table-groups Get project color palette #
PUT /api/v1/projects/{projectUuid}/table-groups Replace project table groups #
GET /api/v1/projects/{projectUuid}/colorPalette #
PATCH /api/v1/projects/{projectUuid}/colorPalette Update project color palette #
GET /api/v1/projects/{projectUuid}/dashboards List dashboards #
POST /api/v1/projects/{projectUuid}/dashboards Create dashboard #
PATCH /api/v1/projects/{projectUuid}/dashboards Update dashboards #
POST /api/v1/projects/{projectUuid}/dashboards/with-charts Create dashboard with charts #
POST /api/v1/projects/{projectUuid}/createPreview Create project preview #
GET /api/v1/projects/{projectUuid}/upstreamDiff Get upstream diff #
GET /api/v1/projects/{projectUuid}/previews-config Get preview expiration settings #
PATCH /api/v1/projects/{projectUuid}/previews-config Update preview expiration settings #
PATCH /api/v1/projects/{projectUuid}/schedulerSettings Update scheduler settings #
PATCH /api/v1/projects/{projectUuid}/queryTimezoneSettings Update query timezone settings #
POST /api/v1/projects/{projectUuid}/tags Create tag #
GET /api/v1/projects/{projectUuid}/tags List tags #
DELETE /api/v1/projects/{projectUuid}/tags/{tagUuid} Delete tag #
PATCH /api/v1/projects/{projectUuid}/tags/{tagUuid} Update tag #
PUT /api/v1/projects/{projectUuid}/tags/yaml Replace YAML tags #
GET /api/v1/projects/{projectUuid}/charts/code List charts as code #
GET /api/v1/projects/{projectUuid}/dashboards/code List dashboards as code #
POST /api/v1/projects/{projectUuid}/charts/{slug}/code Upsert chart as code #
GET /api/v1/projects/{projectUuid}/sqlCharts/code Get SQL charts as code #
POST /api/v1/projects/{projectUuid}/sqlCharts/{slug}/code Upsert SQL chart as code #
POST /api/v1/projects/{projectUuid}/dashboards/{slug}/code Upsert dashboard as code #
POST /api/v1/projects/{projectUuid}/dbt-cloud/webhook Handle dbt Cloud webhook #
POST /api/v1/projects/{projectUuid}/refresh Refresh project #
POST /api/v1/projects/{projectUuid}/pre-aggregates/refresh Refresh project pre-aggregates #
POST /api/v1/projects/{projectUuid}/pre-aggregates/definitions/{preAggregateDefinitionName}/refresh Refresh pre-aggregate by definition name #
GET /api/v1/projects/{projectUuid}/content-verification List verified content #
GET /api/v1/projects/{projectUuid}/compile-logs Get project compilation logs #
GET /api/v1/projects/{projectUuid}/compile-logs/job/{jobUuid} Get compilation log for a specific job #
PUT /api/v1/projects/{projectUuid}/explores Set explores #
GET /api/v1/projects/{projectUuid}/explores List explores #
GET /api/v1/projects/{projectUuid}/explores/{exploreId} Get explore #
POST /api/v1/projects/{projectUuid}/explores/{exploreId}/compileQuery Compile query #
POST /api/v1/projects/{projectUuid}/explores/{exploreId}/preAggregateCheck Check pre-aggregate #
POST /api/v1/projects/{projectUuid}/explores/{exploreId}/validateFormula Validate formula #
GET /api/v1/projects/{projectUuid}/explores/{exploreId}/charts List charts by explore #
GET /api/v1/bigquery/sso/datasets Get BigQuery datasets #
GET /api/v1/bigquery/sso/projects Get BigQuery projects #
GET /api/v1/bigquery/sso/is-authenticated Check BigQuery authentication #
GET /api/v2/projects/{projectUuid}/defaults Get project defaults #
PUT /api/v2/projects/{projectUuid}/defaults Replace project defaults #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lightdash-projects-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lightdash-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Lightdash AiAgents Projects API
  version: 0.3156.1
  description: 'Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens

    '
  license:
    name: MIT
  contact:
    name: Lightdash Support
    email: support@lightdash.com
    url: https://docs.lightdash.com/help-and-contact/contact/contact_info/
servers:
- url: /
tags:
- name: Projects
  description: Projects belong to a single organization. These routes allow users to manage their projects, browse content, and execute queries. Users inside an organization might have access to a project from an organization-level role or they might be granted access to a project directly.
paths:
  /api/v1/snowflake/sso/is-authenticated:
    get:
      operationId: ssoIsAuthenticated
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Check if the user is authenticated with Snowflake SSO
      summary: Check Snowflake SSO authentication
      tags:
      - Projects
      security: []
      parameters: []
  /api/v1/databricks/sso/is-authenticated:
    get:
      operationId: getDatabricksAccessToken
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: Check if user is authenticated with Databricks OAuth
      summary: Check Databricks OAuth authentication
      tags:
      - Projects
      security: []
      parameters: []
  /api/v1/projects/{projectUuid}/aiAgents:
    get:
      operationId: listAgents
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentSummaryResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
    post:
      operationId: createAgent
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCreateAiAgentResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateAiAgent'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/preferences:
    get:
      operationId: getUserAgentPreferences
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiGetUserAgentPreferencesResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
    post:
      operationId: updateUserAgentPreferences
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiUpdateUserAgentPreferencesResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateUserAgentPreferences'
      tags:
      - Projects
    delete:
      operationId: deleteUserAgentPreferences
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers:
    get:
      operationId: listMcpServers
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpServerListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
    post:
      operationId: createMcpServer
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpServerResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiCreateAiMcpServer'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers/github/availability:
    get:
      operationId: getGithubMcpAvailability
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpGithubAvailabilityResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers/github/connect:
    post:
      operationId: connectGithubMcpServer
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpServerResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiConnectGithubMcpServerBody'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/tools:
    get:
      operationId: listMcpServerTools
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpServerToolListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: mcpServerUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/tools/refresh:
    post:
      operationId: refreshMcpServerTools
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpServerToolListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: mcpServerUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/oauth/start:
    post:
      operationId: startMcpOAuthConnection
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiStartAiMcpOAuthResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: mcpServerUuid
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAiMcpOAuthCredentialRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/mcpServers/{mcpServerUuid}/oauth/disconnect:
    post:
      operationId: disconnectMcpOAuthConnection
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: mcpServerUuid
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAiMcpOAuthCredentialRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/threads:
    get:
      operationId: listProjectThreads
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentProjectThreadSummaryListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: query
        name: page
        required: false
        schema:
          format: double
          type: number
      - in: query
        name: pageSize
        required: false
        schema:
          format: double
          type: number
      - in: query
        name: agentUuid
        required: false
        schema:
          type: string
      - in: query
        name: createdFrom
        required: false
        schema:
          type: string
          enum:
          - web_app
          - slack
      - in: query
        name: search
        required: false
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}:
    get:
      operationId: getAgent
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
    patch:
      operationId: updateAgent
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateAiAgent'
      tags:
      - Projects
    delete:
      operationId: deleteAgent
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSuccessEmpty'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/mcpServers:
    get:
      operationId: listAgentMcpServers
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiMcpServerListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/mcpServers/{mcpServerUuid}/tools:
    get:
      operationId: listAgentMcpServerTools
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentMcpServerToolListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: mcpServerUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
    patch:
      operationId: updateAgentMcpServerTools
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentMcpServerToolListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: mcpServerUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiUpdateAiAgentMcpServerToolsRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/models:
    get:
      operationId: getModelOptions
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentModelOptionsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/suggestions:
    get:
      operationId: getAgentSuggestions
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAgentSuggestionsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: query
        name: threadUuid
        required: false
        schema:
          type: string
      - in: query
        name: afterMessageUuid
        required: false
        schema:
          type: string
      - in: query
        name: enableSqlMode
        required: false
        schema:
          type: boolean
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/evaluateReadiness:
    post:
      operationId: evaluateAgentReadiness
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAgentReadinessScoreResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/verified-artifacts:
    get:
      operationId: getVerifiedArtifacts
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentVerifiedArtifactsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: query
        name: page
        required: false
        schema:
          format: double
          type: number
      - in: query
        name: pageSize
        required: false
        schema:
          format: double
          type: number
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/verified-questions:
    get:
      operationId: getVerifiedQuestions
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentVerifiedQuestionsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads:
    get:
      operationId: listAgentThreads
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadSummaryListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: query
        name: allUsers
        required: false
        schema:
          type: boolean
      tags:
      - Projects
    post:
      operationId: createAgentThread
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadCreateResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAiAgentThreadCreateRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}:
    get:
      operationId: getAgentThread
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/pull-request:
    get:
      operationId: getAgentThreadPullRequest
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadPullRequestResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      description: 'Get the writeback pull request associated with a thread — the PR the

        agent opened in this thread, or the PR a verification thread verifies.'
      summary: Get AI agent thread pull request
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/messages:
    post:
      operationId: createAgentThreadMessage
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadMessageCreateResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAiAgentThreadMessageCreateRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/tool-calls/{toolCallId}/sql-approval:
    post:
      operationId: decideAgentSqlApproval
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentSqlApprovalResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      - in: path
        name: toolCallId
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAiAgentSqlApprovalRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/stream:
    post:
      operationId: streamAgentThreadResponse
      responses:
        '200':
          description: Success
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiAiAgentThreadStreamRequest'
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/generate:
    post:
      operationId: generateAgentThreadResponse
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadGenerateResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/generate-title:
    post:
      operationId: generateAgentThreadTitle
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAiAgentThreadGenerateTitleResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      tags:
      - Projects
  /api/v1/projects/{projectUuid}/aiAgents/{agentUuid}/threads/{threadUuid}/clone/{promptUuid}:
    post:
      operationId: cloneAgentThread
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiCloneThreadResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
      parameters:
      - in: path
        name: projectUuid
        required: true
        schema:
          type: string
      - in: path
        name: agentUuid
        required: true
        schema:
          type: string
      - in: path
        name: threadUuid
        required: true
        schema:
          type: string
      - in: path
        name: promptUuid
        required: true

# --- truncated at 32 KB (523 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lightdash/refs/heads/main/openapi/lightdash-projects-api-openapi.yml