> ## Documentation Index
> Fetch the complete documentation index at: https://lightdash-06-24-docs-simplify-date-zoom-usage-description.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Get catalog

> Get catalog items



## OpenAPI

````yaml https://raw.githubusercontent.com/lightdash/lightdash/refs/heads/main/packages/backend/src/generated/swagger.json get /api/v1/projects/{projectUuid}/dataCatalog
openapi: 3.0.0
info:
  title: Lightdash API
  version: 0.3228.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/v1/projects/{projectUuid}/dataCatalog:
    get:
      tags:
        - Catalog
      summary: Get catalog
      description: Get catalog items
      operationId: getCatalog
      parameters:
        - in: path
          name: projectUuid
          required: true
          schema:
            type: string
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: type
          required: false
          schema:
            $ref: '#/components/schemas/CatalogType'
        - in: query
          name: filter
          required: false
          schema:
            $ref: '#/components/schemas/CatalogFilter'
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                properties:
                  results:
                    $ref: '#/components/schemas/ApiCatalogResults'
                  status:
                    type: string
                    enum:
                      - ok
                    nullable: false
                required:
                  - results
                  - status
                type: object
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorPayload'
      security: []
components:
  schemas:
    CatalogType:
      enum:
        - table
        - field
      type: string
    CatalogFilter:
      enum:
        - tables
        - dimensions
        - metrics
      type: string
    ApiCatalogResults:
      items:
        $ref: '#/components/schemas/CatalogItem'
      type: array
    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
    CatalogItem:
      anyOf:
        - $ref: '#/components/schemas/CatalogField'
        - $ref: '#/components/schemas/CatalogTable'
    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.
    CatalogField:
      allOf:
        - $ref: >-
            #/components/schemas/Pick_Field.name-or-label-or-fieldType-or-tableLabel-or-description_
        - $ref: >-
            #/components/schemas/Pick_Dimension.requiredAttributes-or-anyAttributes_
        - properties:
            owner:
              allOf:
                - $ref: '#/components/schemas/CatalogOwner'
              nullable: true
            spotlightDefaultFilter:
              $ref: '#/components/schemas/MetricFilterRule'
            spotlightDefaultSegment:
              type: string
            spotlightSegmentBy:
              items:
                type: string
              type: array
            spotlightFilterBy:
              items:
                type: string
              type: array
            searchRank:
              type: number
              format: double
            aiHints:
              items:
                type: string
              type: array
              nullable: true
            icon:
              allOf:
                - $ref: '#/components/schemas/CatalogItemIcon'
              nullable: true
            verifiedChartUsage:
              type: number
              format: double
            chartUsage:
              type: number
              format: double
            categories:
              items:
                $ref: >-
                  #/components/schemas/Pick_Tag.name-or-color-or-tagUuid-or-yamlReference_
              type: array
            tags:
              items:
                type: string
              type: array
            tableGroupLabel:
              type: string
            tableName:
              type: string
            fieldValueType:
              anyOf:
                - $ref: '#/components/schemas/MetricType'
                - $ref: '#/components/schemas/DimensionType'
            basicType:
              type: string
              enum:
                - string
                - number
                - date
                - timestamp
                - boolean
            type:
              $ref: '#/components/schemas/CatalogType.Field'
            catalogSearchUuid:
              type: string
          required:
            - owner
            - aiHints
            - icon
            - categories
            - tableName
            - fieldValueType
            - basicType
            - type
            - catalogSearchUuid
          type: object
    CatalogTable:
      allOf:
        - $ref: >-
            #/components/schemas/Pick_TableBase.name-or-label-or-groupLabel-or-description-or-requiredAttributes-or-anyAttributes_
        - properties:
            searchRank:
              type: number
              format: double
            joinedTables:
              items:
                type: string
              type: array
              nullable: true
            aiHints:
              items:
                type: string
              type: array
              nullable: true
            icon:
              allOf:
                - $ref: '#/components/schemas/CatalogItemIcon'
              nullable: true
            chartUsage:
              type: number
              format: double
            categories:
              items:
                $ref: >-
                  #/components/schemas/Pick_Tag.name-or-color-or-tagUuid-or-yamlReference_
              type: array
            tags:
              items:
                type: string
              type: array
            groupLabel:
              type: string
            type:
              $ref: '#/components/schemas/CatalogType.Table'
            errors:
              items:
                $ref: '#/components/schemas/InlineError'
              type: array
            catalogSearchUuid:
              type: string
          required:
            - joinedTables
            - aiHints
            - icon
            - categories
            - type
            - catalogSearchUuid
          type: object
    Pick_Field.name-or-label-or-fieldType-or-tableLabel-or-description_:
      properties:
        description:
          type: string
        name:
          type: string
        label:
          type: string
        fieldType:
          $ref: '#/components/schemas/FieldType'
        tableLabel:
          type: string
      required:
        - name
        - label
        - fieldType
        - tableLabel
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    Pick_Dimension.requiredAttributes-or-anyAttributes_:
      properties:
        requiredAttributes:
          $ref: '#/components/schemas/Record_string.string-or-string-Array_'
        anyAttributes:
          $ref: '#/components/schemas/Record_string.string-or-string-Array_'
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    CatalogOwner:
      properties:
        email:
          type: string
        lastName:
          type: string
        firstName:
          type: string
        userUuid:
          type: string
      required:
        - email
        - lastName
        - firstName
        - userUuid
      type: object
    MetricFilterRule:
      description: Filter rule for metrics, targeting fields by reference
      properties:
        values:
          items:
            $ref: '#/components/schemas/AnyType'
          type: array
          description: Values to filter by
        operator:
          $ref: '#/components/schemas/FilterOperator'
          description: Filter operator
        id:
          type: string
          description: Unique identifier for the filter
        target:
          properties:
            fieldRef:
              type: string
              description: Field reference to filter on (e.g., 'table_name.field_name')
          required:
            - fieldRef
          type: object
          description: Target field for the filter
        settings:
          $ref: '#/components/schemas/AnyType'
          description: Additional settings for date/time filters
        disabled:
          type: boolean
          description: Whether this filter is disabled
        required:
          type: boolean
          description: Whether this filter is required
        caseSensitive:
          type: boolean
          description: >-
            Overrides the field/explore case-sensitivity for this rule only.

            Used by internal features like autocomplete search that must always

            match case-insensitively regardless of the field's configured
            setting.
      required:
        - operator
        - id
        - target
      type: object
      additionalProperties: true
    CatalogItemIcon:
      anyOf:
        - $ref: '#/components/schemas/EmojiIcon'
        - $ref: '#/components/schemas/CustomIcon'
    Pick_Tag.name-or-color-or-tagUuid-or-yamlReference_:
      properties:
        name:
          type: string
        color:
          type: string
        tagUuid:
          type: string
        yamlReference:
          type: string
          nullable: true
      required:
        - name
        - color
        - tagUuid
        - yamlReference
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    MetricType:
      enum:
        - percentile
        - average
        - count
        - count_distinct
        - sum
        - sum_distinct
        - average_distinct
        - min
        - max
        - percent_of_previous
        - percent_of_total
        - running_total
        - number
        - median
        - string
        - date
        - timestamp
        - boolean
      type: string
    DimensionType:
      enum:
        - string
        - number
        - timestamp
        - date
        - boolean
      type: string
    CatalogType.Field:
      enum:
        - field
      type: string
    Pick_TableBase.name-or-label-or-groupLabel-or-description-or-requiredAttributes-or-anyAttributes_:
      properties:
        description:
          type: string
        name:
          type: string
        label:
          type: string
        groupLabel:
          type: string
        requiredAttributes:
          $ref: '#/components/schemas/Record_string.string-or-string-Array_'
        anyAttributes:
          $ref: '#/components/schemas/Record_string.string-or-string-Array_'
      required:
        - name
        - label
      type: object
      description: From T, pick a set of properties whose keys are in the union K
    CatalogType.Table:
      enum:
        - table
      type: string
    InlineError:
      properties:
        message:
          type: string
        type:
          $ref: '#/components/schemas/InlineErrorType'
      required:
        - message
        - type
      type: object
    FieldType:
      enum:
        - metric
        - dimension
      type: string
    Record_string.string-or-string-Array_:
      properties: {}
      additionalProperties:
        anyOf:
          - type: string
          - items:
              type: string
            type: array
      type: object
      description: Construct a type with a set of properties K of type T
    FilterOperator:
      enum:
        - isNull
        - notNull
        - equals
        - notEquals
        - startsWith
        - endsWith
        - include
        - doesNotInclude
        - lessThan
        - lessThanOrEqual
        - greaterThan
        - greaterThanOrEqual
        - inThePast
        - notInThePast
        - inTheNext
        - inTheCurrent
        - notInTheCurrent
        - inBetween
        - notInBetween
        - inPeriodToDate
      type: string
    EmojiIcon:
      properties:
        unicode:
          type: string
      required:
        - unicode
      type: object
    CustomIcon:
      properties:
        url:
          type: string
      required:
        - url
      type: object
    InlineErrorType:
      enum:
        - METADATA_PARSE_ERROR
        - NO_DIMENSIONS_FOUND
        - SKIPPED_JOIN
        - MISSING_TABLE
        - FIELD_ERROR
        - SET_VALIDATION_ERROR
        - INVALID_PARAMETER
        - DUPLICATE_FIELD_NAME
      type: string

````