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

# Search the construction catalog

> Discover fields and expression functions.



## OpenAPI

````yaml api-reference/index-construction-preview-openapi.yaml POST /api/v1/catalog/search
openapi: 3.1.0
info:
  title: 'Tilt Index Construction API: Design Preview'
  version: 0.4.0-design-preview
  summary: >-
    A restrained public projection of Tilt's existing index construction
    workflow.
  description: |
    A Tilt is a persistent project for one index methodology. Its construction
    rules are the source, evaluated constituent snapshots are the build
    artifacts, and methodology history is version history. This bounded
    repository analogy does not imply branches, forks, merges, or cloning.

    This contract covers rules-based equity construction only. Applying
    construction saves the rules, evaluates them, and commits the complete
    weighted constituent snapshot atomically.
servers:
  - url: https://x.invalid
    description: Non-routable design preview
security:
  - ApiKey: []
tags:
  - name: Tilts
    description: Organization-owned Tilt projects and versions.
  - name: Construction
    description: Apply methodology and read its saved weighted evaluation.
  - name: Catalog
    description: >-
      Discover fields, functions, universes, and classifications used in
      expressions.
  - name: Tickers
    description: Resolve security identifiers to exact Tilt asset IDs.
  - name: Backtests
    description: Backtest a saved Tilt using its configured rebalance behavior.
paths:
  /api/v1/catalog/search:
    post:
      tags:
        - Catalog
      summary: Search construction fields and functions
      description: |
        Searches base fields and constructed signals by name and description.
        The response also describes supported trailing-window functions. This
        catalog searches data fields, not security identities.
      operationId: searchConstructionCatalog
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CatalogSearchRequest'
            example:
              query: operating margin
              limit: 10
      responses:
        '200':
          description: Matching fields and expression-function capabilities.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CatalogSearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    CatalogSearchRequest:
      type: object
      additionalProperties: false
      required:
        - query
      properties:
        query:
          type: string
          minLength: 2
        limit:
          type: integer
          minimum: 1
          maximum: 25
          default: 10
    CatalogSearchResponse:
      type: object
      required:
        - success
        - query
        - matches
      properties:
        success:
          type: boolean
        query:
          type: string
        matches:
          type: array
          items:
            $ref: '#/components/schemas/CatalogMatch'
        aggregation:
          type:
            - object
            - 'null'
          additionalProperties: true
        defaults:
          type:
            - object
            - 'null'
          additionalProperties: true
        hint:
          type: string
    CatalogMatch:
      type: object
      required:
        - kind
        - name
        - description
        - example
      properties:
        kind:
          type: string
          enum:
            - base_column
            - constructed_signal
        name:
          type: string
        description:
          type: string
        equation:
          type: string
        example:
          type: string
        type:
          type: string
        unit:
          type:
            - string
            - 'null'
        is_displayable:
          type: boolean
        enum_values:
          type: array
          items:
            type: object
            additionalProperties: true
    Error:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          additionalProperties: false
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
  responses:
    BadRequest:
      description: The request is invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: X-Api-Key

````