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

# Post apiv2projects ai accessservice accounttest access



## OpenAPI

````yaml https://raw.githubusercontent.com/lightdash/lightdash/refs/heads/main/packages/backend/src/generated/swagger.json post /api/v2/projects/{projectUuid}/ai-access/service-account/test-access
openapi: 3.0.0
info:
  title: Lightdash API
  version: 2.519.0
  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: /
security: []
tags:
  - name: My Account
    description: These routes allow users to manage their own user account.
  - name: Organizations
    description: >-
      Each user is a member of a single organization. These routes allow users
      to manage their organization. Most actions are only available to admin
      users.
  - 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.
  - name: Spaces
    description: >-
      Spaces allow you to organize charts and dashboards within a project. They
      also allow granular access to content by allowing you to create private
      spaces, which are only accessible to the creator and admins.
  - name: Roles & Permissions
    description: >-
      These routes allow users to manage roles and permissions for their
      organization.
    externalDocs:
      url: https://docs.lightdash.com/references/roles
  - name: Query
    description: >-
      These routes allow users to execute and manage queries against their data
      warehouse. This includes metric queries, SQL queries, and retrieving query
      results.
paths:
  /api/v2/projects/{projectUuid}/ai-access/service-account/test-access:
    post:
      tags:
        - v2
        - Projects
      operationId: testAiServiceAccountAccess
      parameters:
        - in: path
          name: projectUuid
          required: true
          schema:
            $ref: '#/components/schemas/UUID'
        - in: query
          name: connection
          required: false
          schema:
            $ref: '#/components/schemas/UUID'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentAccessTestRequest'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiAgentAccessReportResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
components:
  schemas:
    UUID:
      type: string
      format: uuid
      description: |-
        Stringified UUIDv4.
        See [RFC 4112](https://tools.ietf.org/html/rfc4122)
      pattern: >-
        [0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}
    AgentAccessTestRequest:
      properties:
        credentials:
          allOf:
            - $ref: '#/components/schemas/AiServiceAccountCredentialInput'
          nullable: true
        entryPoint:
          $ref: '#/components/schemas/AgentAccessTestEntryPoint'
      required:
        - credentials
        - entryPoint
      type: object
      additionalProperties: true
    ApiAgentAccessReportResponse:
      properties:
        status:
          type: string
          enum:
            - ok
          nullable: false
        results:
          $ref: '#/components/schemas/AgentAccessReport'
      required:
        - status
        - results
      type: object
      additionalProperties: true
    ApiErrorPayload:
      properties:
        error:
          properties:
            data:
              $ref: '#/components/schemas/AnyType'
              description: Optional data containing details of the error
            message:
              type: string
              description: A friendly message summarising the error
            name:
              type: string
              description: Unique name for the type of error
            statusCode:
              type: number
              format: integer
              description: HTTP status code
          required:
            - name
            - statusCode
          type: object
        status:
          type: string
          enum:
            - error
          nullable: false
      required:
        - error
        - status
      type: object
      description: |-
        The Error object is returned from the api any time there is an error.
        The message contains
    AiServiceAccountCredentialInput:
      properties:
        keyfileContents:
          properties: {}
          additionalProperties:
            type: string
          type: object
        authenticationType:
          $ref: '#/components/schemas/BigqueryAuthenticationType.PRIVATE_KEY'
        type:
          $ref: '#/components/schemas/WarehouseTypes.BIGQUERY'
      required:
        - authenticationType
        - type
      type: object
    AgentAccessTestEntryPoint:
      type: string
      enum:
        - project_agent_identity_page
      nullable: false
    AgentAccessReport:
      properties:
        warehouseType:
          $ref: '#/components/schemas/WarehouseTypes'
        subject:
          properties:
            kind:
              type: string
              enum:
                - ai_service_account
              nullable: false
          required:
            - kind
          type: object
        principal:
          type: string
          nullable: true
        credentialSource:
          type: string
          enum:
            - saved
            - submitted
        status:
          type: string
          enum:
            - complete
            - partial
            - failed
        failureReason:
          type: string
          enum:
            - invalid_credentials
            - job_permission_denied
            - warehouse_denied
            - baseline_failed
            - timeout
            - quota
            - unavailable
            - unknown
            - null
          nullable: true
        message:
          type: string
          nullable: true
        datasets:
          items:
            $ref: '#/components/schemas/AgentAccessDataset'
          type: array
        tables:
          items:
            $ref: '#/components/schemas/AgentAccessTable'
          type: array
        readableCount:
          type: number
          format: double
        blockedCount:
          type: number
          format: double
        errorCount:
          type: number
          format: double
        checkedCount:
          type: number
          format: double
        notCheckedCount:
          type: number
          format: double
        totalCount:
          type: number
          format: double
          nullable: true
        truncatedCount:
          type: number
          format: double
        checkedAt:
          type: string
          format: date-time
      required:
        - warehouseType
        - subject
        - principal
        - credentialSource
        - status
        - failureReason
        - message
        - datasets
        - tables
        - readableCount
        - blockedCount
        - errorCount
        - checkedCount
        - notCheckedCount
        - totalCount
        - truncatedCount
        - checkedAt
      type: object
      additionalProperties: true
    AnyType:
      description: |-
        This AnyType is an alias for any
        The goal is to make it easier to identify any type in the codebase
        without having to eslint-disable all the time
        These are only used on legacy `any` types, don't use it for new types.
        This is added on a separate file to avoid circular dependencies.
    BigqueryAuthenticationType.PRIVATE_KEY:
      enum:
        - private_key
      type: string
    WarehouseTypes.BIGQUERY:
      enum:
        - bigquery
      type: string
    WarehouseTypes:
      enum:
        - bigquery
        - postgres
        - redshift
        - snowflake
        - databricks
        - trino
        - clickhouse
        - athena
        - duckdb
      type: string
    AgentAccessDataset:
      properties:
        database:
          type: string
        schema:
          type: string
      required:
        - database
        - schema
      type: object
      additionalProperties: true
    AgentAccessTable:
      properties:
        database:
          type: string
        schema:
          type: string
        name:
          type: string
        status:
          $ref: '#/components/schemas/AgentTableStatus'
      required:
        - database
        - schema
        - name
        - status
      type: object
      additionalProperties: true
    AgentTableStatus:
      anyOf:
        - properties:
            reason:
              type: number
              enum:
                - null
              nullable: true
            kind:
              type: string
              enum:
                - readable
              nullable: false
          required:
            - reason
            - kind
          type: object
        - properties:
            reason:
              type: string
              enum:
                - access_denied
              nullable: false
            kind:
              type: string
              enum:
                - blocked
              nullable: false
          required:
            - reason
            - kind
          type: object
        - properties:
            reason:
              type: string
              enum:
                - not_found
                - quota
                - timeout
                - unavailable
                - unsupported
                - unknown
            kind:
              type: string
              enum:
                - error
              nullable: false
          required:
            - reason
            - kind
          type: object
        - properties:
            reason:
              type: string
              enum:
                - timeout
              nullable: false
            kind:
              type: string
              enum:
                - not_checked
              nullable: false
          required:
            - reason
            - kind
          type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.