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

# List all settings

> Returns all settings of the index. Each setting is returned with its current value or the default if not set.



## OpenAPI

````yaml /assets/open-api/meilisearch-openapi-mintlify.json get /indexes/{index_uid}/settings
openapi: 3.1.0
info:
  title: meilisearch
  description: Meilisearch HTTP server
  contact:
    name: Quentin de Quelen
    email: quentin@dequelen.me
  license:
    name: MIT
    identifier: MIT
  version: 1.41.0
servers:
  - url: http://localhost:7700
    description: Local server.
security: []
tags:
  - name: Stats
    description: >-
      Stats gives extended information and metrics about indexes and the
      Meilisearch database.
  - name: Health
    description: >-
      The health check endpoint enables you to periodically test the health of
      your Meilisearch instance.
  - name: Version
    description: Returns the version of the running Meilisearch instance.
  - name: Backups
    description: >-
      Meilisearch offers two types of backups: snapshots and dumps. Snapshots
      are mainly intended as a safeguard, while dumps are useful when migrating
      Meilisearch.
  - name: Export
    description: >-
      Export documents and settings from this instance to a remote Meilisearch
      server.
  - name: Async task management
    description: >-
      Routes for listing and managing batches and tasks (asynchronous
      operations).
  - name: Chats
    description: The `/chats` route allows you to manage chat workspaces.
  - name: Tasks
    description: >-
      The tasks route gives information about the progress of the [asynchronous
      operations](https://docs.meilisearch.com/learn/advanced/asynchronous_operations.html).
  - name: Batches
    description: >-
      Meilisearch groups compatible tasks ([asynchronous
      operations](https://www.meilisearch.com/docs/learn/async/asynchronous_operations))
      into batches for efficient processing. For example, multiple document
      additions to the same index may be batched together. The /batches routes
      give information about the progress of these batches and let you monitor
      batch progress and performance.
  - name: Indexes
    description: >-
      An index is an entity that gathers a set of
      [documents](https://www.meilisearch.com/docs/learn/getting_started/documents)
      with its own
      [settings](https://www.meilisearch.com/docs/reference/api/settings). Learn
      more about indexes.
  - name: Documents
    description: >-
      Documents are objects composed of fields that can store any type of data.
      Each field contains an attribute and its associated value. Documents are
      stored inside
      [indexes](https://www.meilisearch.com/docs/learn/getting_started/indexes).
  - name: Facet Search
    description: >-
      The `/facet-search` route allows you to search for facet values. Facet
      search supports prefix search and typo tolerance. The returned hits are
      sorted lexicographically in ascending order. You can configure how facets
      are sorted using the sortFacetValuesBy property of the faceting index
      settings.
  - name: Similar documents
    description: >-
      The /similar route uses AI-powered search to return a number of documents
      similar to a target document.


      Meilisearch exposes two routes for retrieving similar documents: POST and
      GET. In the majority of cases, POST will offer better performance and ease
      of use.
  - name: Settings
    description: >-
      Configure search and index behavior. Update all settings at once via PATCH
      /indexes/{indexUid}/settings, or use a sub-route to get, update, or reset
      a single setting.
  - name: Search
    description: >-
      Meilisearch exposes two routes to perform searches:


      - A POST route: this is the preferred route when using API authentication,
      as it allows [preflight
      request](https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request)
      caching and better performance.

      - A GET route: the usage of this route is discouraged, unless you have
      good reason to do otherwise (specific caching abilities for example)
    externalDocs:
      url: https://www.meilisearch.com/docs/reference/api/search
      description: Search API reference
  - name: Keys
    description: >-
      Manage API `keys` for a Meilisearch instance. Each key has a given set of
      permissions.

      You must have the master key or the default admin key to access the keys
      route. More information about the keys and their rights.

      Accessing any route under `/keys` without having set a master key will
      result in an error.
  - name: Logs
    description: >-
      Everything about retrieving or customizing logs.

      Currently
      [experimental](https://www.meilisearch.com/docs/learn/experimental/overview).
  - name: Multi-search
    description: >-
      The `/multi-search` route allows you to perform multiple search queries on
      one or more indexes by bundling them into a single HTTP request.
      Multi-search is also known as federated search.
  - name: Experimental features
    description: >-
      The `/experimental-features` route allows you to activate or deactivate
      some of Meilisearch's experimental features.


      This route is **synchronous**. This means that no task object will be
      returned, and any activated or deactivated features will be made available
      or unavailable immediately.
  - name: Network
    description: >-
      The `/network` route allows you to describe the topology of a network of
      Meilisearch instances.


      This route is **synchronous**. This means that no task object will be
      returned, and any change to the network will be made available
      immediately.
  - name: Webhooks
    description: >-
      The `/webhooks` route allows you to register endpoints to be called once
      tasks are processed.
  - name: Dynamic search rules
    description: >-
      The `/dynamic-search-rules` route allows you to configure dynamic search
      rules.
paths:
  /indexes/{index_uid}/settings:
    get:
      tags:
        - Settings
      summary: List all settings
      description: >-
        Returns all settings of the index. Each setting is returned with its
        current value or the default if not set.
      operationId: get_all
      parameters:
        - name: index_uid
          in: path
          description: Unique identifier of the index.
          required: true
          schema:
            type: string
          example: movies
      responses:
        '200':
          description: >-
            Returns all settings with their current or default values. Same
            structure as the PATCH request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Settings_Unchecked'
              example:
                displayedAttributes:
                  - id
                  - title
                  - description
                  - url
                searchableAttributes:
                  - title
                  - description
                filterableAttributes:
                  - release_date
                  - genre
                sortableAttributes:
                  - release_date
                rankingRules:
                  - words
                  - typo
                  - proximity
                  - attributeRank
                  - sort
                  - wordPosition
                  - exactness
                stopWords:
                  - the
                  - a
                nonSeparatorTokens:
                  - '@'
                  - '#'
                separatorTokens:
                  - '|'
                dictionary:
                  - J. R. R.
                synonyms:
                  phone:
                    - iPhone
                distinctAttribute: null
                typoTolerance:
                  enabled: true
                  minWordSizeForTypos:
                    oneTypo: 5
                    twoTypos: 9
                  disableOnWords: []
                  disableOnAttributes:
                    - title
                  disableOnNumbers: false
                faceting:
                  maxValuesPerFacet: 100
                  sortFacetValuesBy:
                    genre: count
                pagination:
                  maxTotalHits: 1000
                proximityPrecision: byWord
                embedders:
                  default:
                    source: openAi
                    model: text-embedding-3-small
                    documentTemplate: '{{doc.title}}: {{doc.overview}}'
                searchCutoffMs: null
                localizedAttributes:
                  - locales:
                      - jpn
                    attributePatterns:
                      - '*_ja'
                facetSearch: true
                prefixSearch: indexingTime
                chat:
                  description: A comprehensive movie database
                  documentTemplateMaxBytes: 400
                  searchParameters:
                    limit: 20
        '401':
          description: The authorization header is missing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
              example:
                message: >-
                  The Authorization header is missing. It must use the bearer
                  authorization method.
                code: missing_authorization_header
                type: auth
                link: >-
                  https://docs.meilisearch.com/errors#missing_authorization_header
        '404':
          description: Index not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseError'
              example:
                message: Index `movies` not found.
                code: index_not_found
                type: invalid_request
                link: https://docs.meilisearch.com/errors#index_not_found
      security:
        - Bearer:
            - settings.get
            - settings.*
            - '*'
      x-codeSamples:
        - lang: cURL
          source: |-
            curl \
              -X GET 'MEILISEARCH_URL/indexes/movies/settings'
        - lang: JS
          source: client.index('movies').getSettings()
        - lang: PHP
          source: $client->index('movies')->getSettings();
        - lang: Python
          source: client.index('movies').get_settings()
        - lang: Java
          source: client.index("movies").getSettings();
        - lang: Ruby
          source: client.index('movies').settings
        - lang: Go
          source: client.Index("movies").GetSettings()
        - lang: C#
          source: await client.Index("movies").GetSettingsAsync();
        - lang: Rust
          source: |-
            let settings: Settings = client
              .index("movies")
              .get_settings()
              .await
              .unwrap();
        - lang: Dart
          source: await client.index('movies').getSettings();
        - lang: Swift
          source: |-
            client.index("movies").getSettings { (result) in
                switch result {
                case .success(let setting):
                    print(setting)
                case .failure(let error):
                    print(error)
                }
            }
components:
  schemas:
    Settings_Unchecked:
      type: object
      description: >-
        Index settings: every option you can configure for search and index
        behavior.


        Used as the request body for PATCH settings. Only the fields you send
        are updated; pass `null` to reset a setting to its default.


        See also: [Configuring index settings on the
        Cloud](https://www.meilisearch.com/docs/learn/configuration/configuring_index_settings).
      properties:
        displayedAttributes:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Fields returned in search results. Affects only search endpoints,
            not get-document endpoints. See [displayed and searchable
            attributes](https://www.meilisearch.com/docs/learn/relevancy/displayed_searchable_attributes).
          example:
            - id
            - title
            - description
            - url
          default:
            - '*'
        searchableAttributes:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Fields searched for query words, in order of importance. Defines
            [attribute ranking
            order](https://www.meilisearch.com/docs/learn/relevancy/attribute_ranking_order).
            See [displayed and searchable
            attributes](https://www.meilisearch.com/docs/learn/relevancy/displayed_searchable_attributes).
          example:
            - title
            - description
          default:
            - '*'
        filterableAttributes:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/FilterableAttributesRule'
          description: >-
            Attributes that can be used as
            [filters](https://www.meilisearch.com/docs/learn/filtering_and_sorting/filter_search_results)
            and
            [facets](https://www.meilisearch.com/docs/learn/filtering_and_sorting/search_with_facet_filters).
            Strings or objects with `attributePatterns` and `features`.
          example:
            - release_date
            - genre
          default: []
        sortableAttributes:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Attributes that can be used to [sort search
            results](https://www.meilisearch.com/docs/learn/filtering_and_sorting/sort_search_results).
          example:
            - release_date
          default: []
        foreignKeys:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/ForeignKey'
          description: Foreign keys to use for cross-index filtering search.
          example:
            - foreignIndexUid: products
              fieldName: productId
        rankingRules:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            [Ranking
            rules](https://www.meilisearch.com/docs/learn/relevancy/ranking_rules)
            in order of importance. Built-in rules and custom sort rules
            (`attribute:asc` or `attribute:desc`).
          example:
            - words
            - typo
            - proximity
            - attributeRank
            - sort
            - wordPosition
            - exactness
          default:
            - words
            - typo
            - proximity
            - attributeRank
            - sort
            - wordPosition
            - exactness
        stopWords:
          type:
            - array
            - 'null'
          items:
            type: string
          description: Words ignored when present in search queries.
          example:
            - the
            - a
          default: []
        nonSeparatorTokens:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Characters that are not treated as word separators. Removed from the
            default separator set.
          example:
            - '@'
            - '#'
          default: []
        separatorTokens:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Characters that delimit words. Added on top of the default
            separators.
          example:
            - '|'
          default: []
        dictionary:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Strings Meilisearch parses as a single term. Useful for names or
            domain terms.
          example:
            - J. R. R.
          default: []
        synonyms:
          type:
            - object
            - 'null'
          description: >-
            Pairs of words or phrases treated as equivalent for search. Key maps
            to an array of
            [synonyms](https://www.meilisearch.com/docs/learn/relevancy/synonyms).
          default: {}
          additionalProperties:
            type: array
            items:
              type: string
          propertyNames:
            type: string
          example:
            phone:
              - iPhone
        distinctAttribute:
          type:
            - string
            - 'null'
          description: >-
            Field whose value must be unique in the returned documents. One
            document per distinct value. See [distinct
            attribute](https://www.meilisearch.com/docs/learn/relevancy/distinct_attribute).
          example: sku
        proximityPrecision:
          type:
            - string
            - 'null'
          description: >-
            Precision for the proximity ranking rule and phrase search: `byWord`
            (exact distance) or `byAttribute` (same attribute).
          default: byWord
          example: byWord
        typoTolerance:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/TypoSettings'
              description: >-
                [Typo
                tolerance](https://www.meilisearch.com/docs/learn/relevancy/typo_tolerance_settings):
                enable/disable, minimum word length for typos, and where to
                disable it.
          default:
            enabled: true
            minWordSizeForTypos:
              oneTypo: 5
              twoTypos: 9
            disableOnWords: []
            disableOnAttributes: []
            disableOnNumbers: false
        faceting:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/FacetingSettings'
              description: >-
                Related to
                [faceting](https://www.meilisearch.com/docs/learn/filtering_and_sorting/search_with_facet_filters):
                max facet values per facet and how facet values are sorted.
          default:
            maxValuesPerFacet: 100
            sortFacetValuesBy:
              '*': alpha
        pagination:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PaginationSettings'
              description: >-
                Related to
                [pagination](https://www.meilisearch.com/docs/guides/front_end/pagination):
                maximum number of results a search can return.
          default:
            maxTotalHits: 1000
        embedders:
          type:
            - object
            - 'null'
          description: >-
            [Embedders](https://www.meilisearch.com/docs/learn/ai_powered_search/getting_started_with_ai_search)
            used for semantic and [hybrid
            search](https://www.meilisearch.com/docs/learn/ai_powered_search/getting_started_with_ai_search).
            Map of embedder name to config (`source`, `model`,
            `documentTemplate`, etc.).
          default: {}
          additionalProperties:
            $ref: '#/components/schemas/EmbeddingSettings'
          propertyNames:
            type: string
          example:
            default:
              source: openAi
              model: text-embedding-3-small
              documentTemplate: '{{doc.title}}: {{doc.overview}}'
        searchCutoffMs:
          type:
            - integer
            - 'null'
          format: u-int64
          description: >-
            Maximum duration of a search in milliseconds. If reached, the search
            stops and returns results computed so far. When null, 1500 ms is
            used.
          example: 1500
          minimum: 0
        localizedAttributes:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/LocalizedAttributesRuleView'
          description: >-
            Locales and attribute patterns for [language-specific
            tokenization](https://www.meilisearch.com/docs/learn/resources/language).
            Affects searchable, filterable, and sortable attributes.
          example:
            - locales:
                - jpn
              attributePatterns:
                - '*_ja'
          default: []
        facetSearch:
          type:
            - boolean
            - 'null'
          description: >-
            When true, [facet
            search](https://www.meilisearch.com/docs/learn/filtering_and_sorting/search_with_facet_filters)
            is enabled. When false, the facet-search endpoint is disabled.
          default: true
          example: true
        prefixSearch:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/PrefixSearchSettings'
              description: >-
                When to compute prefix matches: `indexingTime` or `disabled`.
                `disabled` speeds up indexing but reduces relevancy.
          default: indexingTime
        chat:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ChatSettings'
              description: >-
                [Chat
                (conversation)](https://www.meilisearch.com/docs/learn/chat/getting_started_with_chat)
                settings: index description, document template, and search
                parameters used when the LLM queries this index.
          default: {}
    ResponseError:
      type: object
      required:
        - message
        - code
        - type
        - link
      properties:
        message:
          type: string
          description: The error message.
        code:
          $ref: '#/components/schemas/Code'
          description: The error code.
        type:
          $ref: '#/components/schemas/ErrorType'
          description: The error type.
        link:
          type: string
          description: A link to the documentation about this specific error.
    FilterableAttributesRule:
      oneOf:
        - type: string
        - $ref: '#/components/schemas/FilterableAttributesPatterns'
    ForeignKey:
      type: object
      required:
        - foreignIndexUid
        - fieldName
      properties:
        foreignIndexUid:
          type: string
        fieldName:
          type: string
      additionalProperties: false
    TypoSettings:
      type: object
      description: 'Typo tolerance: how spelling mistakes in queries are handled.'
      properties:
        enabled:
          type:
            - boolean
            - 'null'
          description: >-
            When true, typo tolerance is enabled. When false, only exact matches
            are returned.
          default: true
          example: true
        minWordSizeForTypos:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MinWordSizeTyposSetting'
              description: >-
                Minimum word length before typos are allowed. Contains `oneTypo`
                (min length for 1 typo) and `twoTypos` (min length for 2 typos).
                Example: `{ "oneTypo": 5, "twoTypos": 9 }`.
          default:
            oneTypo: 5
            twoTypos: 9
        disableOnWords:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Words for which typo tolerance is disabled. Use for brand names or
            terms that must match exactly.
          example:
            - iPhone
            - phone
          default: []
          uniqueItems: true
        disableOnAttributes:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Attributes for which typo tolerance is disabled. Those attributes
            only return exact matches. Useful for fields like product codes or
            IDs.
          example:
            - uuid
            - url
          default: []
          uniqueItems: true
        disableOnNumbers:
          type:
            - boolean
            - 'null'
          description: >-
            When true, typo tolerance is disabled on numeric tokens. For
            example, 123 will not match 132.
          default: false
          example: false
      additionalProperties: false
    FacetingSettings:
      type: object
      description: 'Faceting: maximum number of facet values and how they are sorted.'
      properties:
        maxValuesPerFacet:
          type:
            - integer
            - 'null'
          description: >-
            Maximum number of facet values returned per facet. Values are sorted
            in ascending lexicographical order.
          default: 100
          example: 100
          minimum: 0
        sortFacetValuesBy:
          type:
            - object
            - 'null'
          description: >-
            Sort order per facet: by descending count (`count`) or ascending
            alphanumeric (`alpha`). Key `*` applies to all facets.
          default:
            '*': alpha
          additionalProperties:
            $ref: '#/components/schemas/FacetValuesSort'
          propertyNames:
            type: string
          example:
            '*': alpha
      additionalProperties: false
    PaginationSettings:
      type: object
      description: 'Pagination: cap on how many results a search can return.'
      properties:
        maxTotalHits:
          type:
            - integer
            - 'null'
          description: >-
            Maximum number of search results Meilisearch can return. Limit and
            offset cannot go beyond this value.
          default: 1000
          example: 1000
          minimum: 0
      additionalProperties: false
    EmbeddingSettings:
      type: object
      description: >-
        Embedder configuration for [AI-powered / hybrid
        search](https://www.meilisearch.com/docs/learn/ai_powered_search/getting_started_with_ai_search).
      properties:
        source:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/EmbedderSource'
              description: >-
                Embedding provider.


                - `openAi`: integration with OpenAI. Use `rest` for OpenAI-like
                APIs.

                - `huggingFace`: download a model from [Hugging
                Face](https://huggingface.co/), then compute embeddings on the
                local CPU/GPU.

                - `ollama`: integration with [ollama](https://ollama.com/).

                - `rest`: configurable integration with a remote embedder via
                its REST API.

                - `composite`: combine two embedding providers at indexing and
                search time.
                  The generated embeddings must be **exactly the same** regardless of the embedding provider.
                - `userProvided`: manually provide embeddings in documents.


                - Determines which other fields are required or allowed.

                - 🏗️ Changing the value of this parameter always regenerates
                embeddings.
          default: openAi
        model:
          type:
            - string
            - 'null'
          description: >-
            Model name.


            - Available for `openAi`, `huggingFace`, `ollama`.

            - Mandatory for `ollama`.

            - For `openAi`/`huggingFace` optional with defaults.

            - 🏗️ Changing the value of this parameter always regenerates
            embeddings.
          example: text-embedding-3-small
        revision:
          type:
            - string
            - 'null'
          description: >-
            Model revision (e.g. Hugging Face commit SHA).


            - Only available for `huggingFace`.

            - If unset, latest is used.

            - 🏗️ Changing the value of this parameter always regenerates
            embeddings
        pooling:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/OverridePooling'
              description: >-
                Pooling method when computing embedding locally.


                - Only available for `huggingFace`.

                - `useModel`: automatically determine the pooling method
                depending on the chosen model (recommended).

                - `forceMean`: always use mean pooling.

                - `forceCls`: always use CLS pooling.

                - 🏗️ Changing the value of this parameter always regenerates
                embeddings
          default: useModel
        apiKey:
          type:
            - string
            - 'null'
          description: >-
            API key sent to the embedder.


            - If not set for source `openAi`, the key is read from the
            `OPENAI_API_KEY` then `MEILI_OPENAI_API_KEY` environment variables.

            - If not set for other sources, no bearer token is sent.

            - This setting is partially hidden when returned by the settings

            - 🌱 Changing the value of this parameter never regenerates
            embeddings
        dimensions:
          type:
            - integer
            - 'null'
          description: >-
            Number of dimensions of the embedding vectors.


            - Available for `userProvided`, `openAi`, `ollama`, `rest`.

            - Mandatory for `userProvided`.

            - For `openAi`/`ollama`/`rest` inferred if omitted.

            - 🏗️ For `openAi`, changing the value of this parameter always
            regenerates embeddings

            - 🌱 For other sources, changing the value of this parameter never
            regenerates embeddings
          example: 1536
          minimum: 0
        binaryQuantized:
          type:
            - boolean
            - 'null'
          description: >-
            When true, vectors are stored as 1-bit (smaller, faster, less
            precise).


            - Available for all sources.

            - Irreversible once enabled.

            - 🏗️ When set to true, embeddings are not regenerated, but they are
            binary quantized, which takes time.
          default: false
        documentTemplate:
          type:
            - string
            - 'null'
          description: >-
            [Liquid template](https://shopify.github.io/liquid/) to build the
            text sent to the embedder for each document.


            - Available for `openAi`, `huggingFace`, `ollama`, `rest`.

            - 🏗️ When modified, embeddings are regenerated for documents whose
            rendering through the template produces a different text.
          example: '{{doc.title}}: {{doc.overview}}'
        documentTemplateMaxBytes:
          type:
            - integer
            - 'null'
          description: >-
            Max size in bytes of the rendered document template.


            Longer output is truncated.


            - Available for `openAi`, `huggingFace`, `ollama`, `rest`.

            - 🏗️ When increased, embeddings are regenerated for documents whose
            rendering through the template produces a different text.

            - 🌱 When decreased, embeddings are never regenerated
          default: 400
          example: 400
          minimum: 0
        url:
          type:
            - string
            - 'null'
          description: >-
            URL of the embedder API.


            - Mandatory for `rest`. Optional for `openAi` and `ollama`.

            - 🌱 When modified for `openAi``, embeddings are never regenerated

            - 🏗️ When modified for `ollama` and `rest`, embeddings are always
            regenerated

            - If targetting URL resolving to a non-global IP (such as
            `localhost`), make sure that
              `--experimental-allowed-ip-networks` allows it. For details on how use this parameter,
              refer to [this documentation](https://www.meilisearch.com/docs/learn/self_hosted/configure_meilisearch_at_launch#allow-requests-to-private-networks).
          example: http://localhost:11434/api/embeddings
        indexingFragments:
          type:
            - object
            - 'null'
          description: >-
            Fragments (with [Liquid](https://shopify.github.io/liquid/)) sent to
            the embedder at indexing time.


            For `rest` with multimodal; key is fragment name, value the payload.


            See also [Image search with multimodal
            embeddings](https://www.meilisearch.com/docs/learn/ai_powered_search/image_search_with_multimodal_embeddings)


            - 🏗️ When a fragment is deleted by passing `null` to its name, the
            corresponding embeddings are removed from documents.

            - 🏗️ When a fragment is modified, the corresponding embeddings are
            regenerated if their rendered version changes.
          default: {}
          additionalProperties: {}
          propertyNames:
            type: string
        searchFragments:
          type:
            - object
            - 'null'
          description: >-
            Fragments (with [Liquid](https://shopify.github.io/liquid/)) sent to
            the embedder at search time.


            For `rest` with multimodal.


            See also [Image search with multimodal
            embeddings](https://www.meilisearch.com/docs/learn/ai_powered_search/image_search_with_multimodal_embeddings)


            - 🌱 Changing the value of this parameter never regenerates
            embeddings
          default: {}
          additionalProperties: {}
          propertyNames:
            type: string
        request:
          description: >-
            Request body template for `rest` embedder.


            See also [Configure a REST
            embedder](https://www.meilisearch.com/docs/learn/ai_powered_search/configure_rest_embedder)


            - Use `"{{text}}"` for the input.

            - Mandatory for `rest`.

            - 🏗️ Changing the value of this parameter always regenerates
            embeddings
        response:
          description: >-
            Response template for `rest` embedder.


            See also [Configure a REST
            embedder](https://www.meilisearch.com/docs/learn/ai_powered_search/configure_rest_embedder)


            - Use `"{{embedding}}"` where the embedding array is.

            - Mandatory for `rest`.
        headers:
          type:
            - object
            - 'null'
          description: >-
            Extra HTTP headers sent to the embedder.


            - Available for `rest`.

            - 🌱 Changing the value of this parameter never regenerates
            embeddings
          additionalProperties:
            type: string
          propertyNames:
            type: string
        searchEmbedder:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SubEmbeddingSettings'
              description: >-
                Embedder used at search time when using a composite embedder.


                Same sub-parameters as a top-level embedder (`source`, `model`,
                `url`, etc.); no `documentTemplate`/`documentTemplateMaxBytes`.
        indexingEmbedder:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/SubEmbeddingSettings'
              description: >-
                Embedder used at indexing time when using a composite embedder.


                Same sub-parameters as a top-level embedder (`source`, `model`,
                `documentTemplate`, `url`, etc.).
        distribution:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/DistributionShift'
              description: >-
                Affine transform (mean, sigma) applied to the semantic score to
                make it more comparable with the ranking score.


                See also [this
                article](https://www.meilisearch.com/blog/fixing-hybrid-search#making-the-scores-comparable).


                - Available for all sources.

                - 🌱 Changing the value of this parameter never regenerates
                embeddings
      additionalProperties: false
    LocalizedAttributesRuleView:
      type: object
      description: >-
        Defines a rule for associating specific locales (languages) with

        attributes. This allows Meilisearch to use language-specific
        tokenization

        and processing for matched attributes, improving search quality for

        multilingual content.
      required:
        - attributePatterns
        - locales
      properties:
        attributePatterns:
          type: array
          items:
            type: string
          description: >-
            Patterns to match attribute names. Use `*` as a wildcard to match
            any

            characters. For example, `["title_*", "description"]` matches

            `title_en`, `title_fr`, and `description`.
          example:
            - '*_ja'
        locales:
          type: array
          items:
            $ref: '#/components/schemas/Locale'
          description: >-
            The list of locales (languages) to apply to matching attributes.
            When

            these attributes are indexed, Meilisearch will use language-specific

            tokenization rules. Examples: `["en", "fr"]` or `["jpn", "zho"]`.
    PrefixSearchSettings:
      type: string
      enum:
        - indexingTime
        - disabled
    ChatSettings:
      type: object
      description: >-
        [Chat
        (conversation)](https://www.meilisearch.com/docs/learn/chat/getting_started_with_chat)
        settings: how the index is described to the LLM and how it is queried.
      properties:
        description:
          type:
            - string
            - 'null'
          description: >-
            Index description shown to the LLM so it can decide when and how to
            query this index.
          default: ''
          example: >-
            A comprehensive movie database containing titles, overviews, genres,
            and release dates
        documentTemplate:
          type:
            - string
            - 'null'
          description: >-
            Liquid template that defines the text sent to the LLM for each
            document.
          example: >-
            {% for field in fields %}{% if field.is_searchable and field.value
            != nil %}{{ field.name }}: {{ field.value }}

            {% endif %}{% endfor %}
        documentTemplateMaxBytes:
          type:
            - integer
            - 'null'
          description: >-
            Maximum size in bytes of the rendered document template. Longer text
            is truncated.
          default: 400
          example: 400
          minimum: 0
        searchParameters:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/ChatSearchParams'
              description: >-
                Search parameters used when the LLM queries this index
                (`hybrid`, `limit`, `sort`, `distinct`, etc.).
          default: {}
      additionalProperties: false
    Code:
      type: string
      enum:
        - api_key_already_exists
        - api_key_not_found
        - bad_parameter
        - bad_request
        - database_size_limit_reached
        - document_not_found
        - dump_already_processing
        - dump_not_found
        - dump_process_failed
        - duplicate_index_found
        - immutable_api_key_actions
        - immutable_api_key_created_at
        - immutable_api_key_expires_at
        - immutable_api_key_indexes
        - immutable_api_key_key
        - immutable_api_key_uid
        - immutable_api_key_updated_at
        - immutable_index_created_at
        - immutable_index_updated_at
        - import_task_already_received
        - import_task_unknown_remote
        - receive_import_finished_unknown_remote
        - import_task_without_network_task
        - index_already_exists
        - index_creation_failed
        - index_not_found
        - index_primary_key_already_exists
        - index_primary_key_multiple_candidates_found
        - index_primary_key_no_candidate_found
        - internal
        - invalid_api_key
        - invalid_api_key_actions
        - invalid_api_key_description
        - invalid_api_key_expires_at
        - invalid_api_key_indexes
        - invalid_api_key_limit
        - invalid_api_key_name
        - invalid_api_key_offset
        - invalid_api_key_uid
        - invalid_content_type
        - invalid_document_csv_delimiter
        - invalid_document_fields
        - invalid_document_retrieve_vectors
        - missing_document_filter
        - missing_document_edition_function
        - inconsistent_document_change_headers
        - invalid_document_filter
        - invalid_document_sort
        - invalid_document_geo_field
        - invalid_document_geojson_field
        - invalid_header_value
        - invalid_vector_dimensions
        - invalid_vectors_type
        - invalid_document_id
        - invalid_document_ids
        - invalid_document_limit
        - invalid_document_offset
        - invalid_search_embedder
        - invalid_similar_embedder
        - invalid_search_hybrid_query
        - invalid_index_limit
        - invalid_index_offset
        - invalid_index_primary_key
        - invalid_index_custom_metadata
        - invalid_skip_creation
        - invalid_index_uid
        - invalid_multi_search_facets
        - invalid_multi_search_facets_by_index
        - invalid_multi_search_facet_order
        - invalid_multi_search_query_personalization
        - invalid_multi_search_query_show_performance_details
        - invalid_multi_search_federated
        - invalid_multi_search_federation_options
        - invalid_multi_search_max_values_per_facet
        - invalid_multi_search_merge_facets
        - invalid_multi_search_query_facets
        - invalid_multi_search_distinct
        - invalid_multi_search_query_pagination
        - invalid_multi_search_query_ranking_rules
        - invalid_multi_search_query_position
        - invalid_multi_search_remote
        - invalid_multi_search_weight
        - invalid_network_leader
        - invalid_network_remotes
        - invalid_network_shards
        - invalid_network_self
        - invalid_network_search_api_key
        - invalid_network_write_api_key
        - invalid_network_url
        - invalid_search_attributes_to_search_on
        - invalid_search_attributes_to_crop
        - invalid_search_attributes_to_highlight
        - invalid_similar_attributes_to_retrieve
        - invalid_similar_retrieve_vectors
        - invalid_search_attributes_to_retrieve
        - invalid_search_ranking_score_threshold
        - invalid_similar_ranking_score_threshold
        - invalid_search_retrieve_vectors
        - invalid_search_crop_length
        - invalid_search_crop_marker
        - invalid_search_facets
        - invalid_search_semantic_ratio
        - invalid_search_locales
        - invalid_facet_search_exhaustive_facet_count
        - invalid_facet_search_facet_name
        - invalid_similar_id
        - invalid_search_filter
        - invalid_similar_filter
        - invalid_search_highlight_post_tag
        - invalid_search_highlight_pre_tag
        - invalid_search_hits_per_page
        - invalid_similar_limit
        - invalid_search_limit
        - invalid_search_matching_strategy
        - invalid_similar_offset
        - invalid_search_offset
        - invalid_search_page
        - invalid_search_q
        - invalid_facet_search_query
        - invalid_facet_search_name
        - facet_search_disabled
        - invalid_search_vector
        - invalid_search_media
        - invalid_search_show_matches_position
        - invalid_search_show_ranking_score
        - invalid_similar_show_ranking_score
        - invalid_search_show_ranking_score_details
        - invalid_search_show_performance_details
        - invalid_search_use_network
        - invalid_similar_show_ranking_score_details
        - invalid_similar_show_performance_details
        - invalid_search_sort
        - invalid_search_distinct
        - invalid_search_personalize
        - invalid_search_personalize_user_context
        - invalid_search_media_and_vector
        - invalid_settings_displayed_attributes
        - invalid_settings_distinct_attribute
        - invalid_settings_proximity_precision
        - invalid_settings_facet_search
        - invalid_settings_prefix_search
        - invalid_settings_faceting
        - invalid_settings_filterable_attributes
        - invalid_settings_foreign_keys
        - invalid_settings_pagination
        - invalid_settings_search_cutoff_ms
        - invalid_settings_embedders
        - invalid_settings_ranking_rules
        - invalid_settings_searchable_attributes
        - invalid_settings_sortable_attributes
        - invalid_settings_stop_words
        - invalid_settings_non_separator_tokens
        - invalid_settings_separator_tokens
        - invalid_settings_dictionary
        - invalid_settings_synonyms
        - invalid_settings_typo_tolerance
        - invalid_settings_localized_attributes
        - invalid_state
        - invalid_store_file
        - invalid_swap_duplicate_index_found
        - invalid_swap_indexes
        - invalid_swap_rename
        - invalid_task_after_enqueued_at
        - invalid_task_after_finished_at
        - invalid_task_after_started_at
        - invalid_task_before_enqueued_at
        - invalid_task_before_finished_at
        - invalid_task_before_started_at
        - invalid_task_canceled_by
        - invalid_task_from
        - invalid_task_limit
        - invalid_task_reverse
        - invalid_task_statuses
        - invalid_task_types
        - invalid_task_uids
        - invalid_batch_uids
        - io_error
        - feature_not_enabled
        - malformed_payload
        - max_fields_limit_exceeded
        - missing_api_key_actions
        - missing_api_key_expires_at
        - missing_api_key_indexes
        - missing_authorization_header
        - missing_content_type
        - missing_document_id
        - missing_facet_search_facet_name
        - missing_index_uid
        - missing_master_key
        - missing_network_url
        - missing_payload
        - missing_search_hybrid
        - missing_swap_indexes
        - missing_task_filters
        - network_version_mismatch
        - no_space_left_on_device
        - not_leader
        - payload_too_large
        - remote_bad_response
        - remote_bad_request
        - remote_could_not_send_request
        - remote_invalid_api_key
        - remote_remote_error
        - remote_timeout
        - too_many_search_requests
        - task_not_found
        - task_file_not_found
        - batch_not_found
        - too_many_open_files
        - too_many_vectors
        - unexpected_network_previous_remotes
        - network_version_too_old
        - unprocessed_network_task
        - unretrievable_document
        - unretrievable_error_code
        - unsupported_media_type
        - invalid_s3_snapshot_request
        - invalid_s3_snapshot_parameters
        - s3_snapshot_server_error
        - vector_embedding_error
        - not_found_similar_id
        - invalid_document_edition_context
        - invalid_document_edition_function_filter
        - edit_documents_by_function_error
        - invalid_settings_index_chat
        - invalid_export_url
        - invalid_export_api_key
        - invalid_export_payload_size
        - invalid_export_indexes_patterns
        - invalid_export_index_filter
        - invalid_export_index_override_settings
        - unimplemented_external_function_calling
        - unimplemented_non_streaming_chat_completions
        - unimplemented_multi_choice_chat_completions
        - chat_not_found
        - invalid_chat_setting_document_template
        - invalid_chat_completion_org_id
        - invalid_chat_completion_project_id
        - invalid_chat_completion_api_version
        - invalid_chat_completion_deployment_id
        - invalid_chat_completion_source
        - invalid_chat_completion_base_api
        - invalid_chat_completion_api_key
        - invalid_chat_completion_prompts
        - invalid_chat_completion_system_prompt
        - invalid_chat_completion_search_description_prompt
        - invalid_chat_completion_search_query_param_prompt
        - invalid_chat_completion_search_filter_param_prompt
        - invalid_chat_completion_search_index_uid_param_prompt
        - invalid_chat_completion_pre_query_prompt
        - invalid_index_fields_filter
        - invalid_index_fields_filter_attribute_patterns
        - invalid_index_fields_filter_displayed
        - invalid_index_fields_filter_searchable
        - invalid_index_fields_filter_sortable
        - invalid_index_fields_filter_distinct
        - invalid_index_fields_filter_ranking_rule
        - invalid_index_fields_filter_filterable
        - requires_enterprise_edition
        - invalid_webhooks
        - invalid_webhook_url
        - invalid_webhook_headers
        - immutable_webhook
        - invalid_webhook_uuid
        - webhook_not_found
        - immutable_webhook_uuid
        - immutable_webhook_is_editable
        - invalid_dynamic_search_rule_offset
        - invalid_dynamic_search_rule_limit
        - invalid_dynamic_search_rule_filter
        - invalid_dynamic_search_rule_description
        - invalid_dynamic_search_rule_priority
        - invalid_dynamic_search_rule_active
        - invalid_dynamic_search_rule_conditions
        - invalid_dynamic_search_rule_actions
        - invalid_dynamic_search_rule_filter_attribute_patterns
        - invalid_dynamic_search_rule_filter_active
        - dynamic_search_rule_not_found
    ErrorType:
      type: string
      enum:
        - internal
        - invalid_request
        - auth
        - system
    FilterableAttributesPatterns:
      type: object
      description: |-
        Defines a set of attribute patterns with specific filtering and faceting
        features. This allows fine-grained control over which operations are
        allowed on matched attributes.
      required:
        - attributePatterns
      properties:
        attributePatterns:
          type: array
          items:
            type: string
          description: >-
            Patterns to match attribute names. Use `*` as a wildcard to match
            any

            characters. For example, `["price_*", "stock"]` matches `price_usd`,

            `price_eur`, and `stock`.
        features:
          $ref: '#/components/schemas/FilterableAttributesFeatures'
          description: |-
            The filtering and faceting features enabled for attributes matching
            these patterns. If not specified, defaults to equality filtering
            enabled.
      additionalProperties: false
    MinWordSizeTyposSetting:
      type: object
      description: >-
        Minimum word length required before typos are allowed.


        This helps prevent matching very short words with typos, which can lead
        to irrelevant results.
      properties:
        oneTypo:
          type:
            - integer
            - 'null'
          format: u-int8
          description: >-
            Minimum word length to accept one typo. Shorter words must match
            exactly. For example, if set to 5, "apple" can have one typo but
            "app" cannot.
          default: 5
          example: 5
          minimum: 0
        twoTypos:
          type:
            - integer
            - 'null'
          format: u-int8
          description: >-
            Minimum word length to accept two typos. Must be greater than or
            equal to `oneTypo`. For example, if set to 9, "computing" can have
            two typos.
          default: 9
          example: 9
          minimum: 0
      additionalProperties: false
    FacetValuesSort:
      type: string
      enum:
        - alpha
        - count
    EmbedderSource:
      type: string
      enum:
        - openAi
        - huggingFace
        - ollama
        - userProvided
        - rest
        - composite
    OverridePooling:
      type: string
      enum:
        - useModel
        - forceCls
        - forceMean
    SubEmbeddingSettings:
      type: object
      description: >-
        Sub-embedder config for composite embedders. Used by `indexingEmbedder`
        (vectorize documents at index time) and `searchEmbedder` (vectorize
        queries at search time). Same fields as a top-level embedder, except no
        `binaryQuantized`, `distribution`,
        `documentTemplate`/`documentTemplateMaxBytes` for searchEmbedder.
      properties:
        source:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/EmbedderSource'
              description: >-
                Embedding provider.


                - `openAi`: integration with OpenAI. Use `rest` for OpenAI-like
                APIs.

                - `huggingFace`: download a model from [Hugging
                Face](https://huggingface.co/), then compute embeddings on the
                local CPU/GPU.

                - `ollama`: integration with [ollama](https://ollama.com/).

                - `rest`: configurable integration with a remote embedder via
                its REST API.

                - `userProvided`: manually provide embeddings in documents.


                - Determines which other fields are required or allowed.

                - 🏗️ Changing the value of this parameter always regenerates
                embeddings.
          default: openAi
        model:
          type:
            - string
            - 'null'
          description: >-
            Model name.


            - Available for `openAi`, `huggingFace`, `ollama`.

            - Mandatory for `ollama`.

            - For `openAi`/`huggingFace` optional with defaults.

            - 🏗️ Changing the value of this parameter always regenerates
            embeddings.
          example: text-embedding-3-small
        revision:
          type:
            - string
            - 'null'
          description: >-
            Model revision (e.g. Hugging Face commit SHA).


            - Only available for `huggingFace`.

            - If unset, latest is used.

            - 🏗️ Changing the value of this parameter always regenerates
            embeddings
          example: 617ca489d9e86b49b8167676d8220688b99db36e
        pooling:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/OverridePooling'
              description: >-
                Pooling method when computing embedding locally.


                - Only available for `huggingFace`.

                - `useModel`: automatically determine the pooling method
                depending on the chosen model (recommended).

                - `forceMean`: always use mean pooling.

                - `forceCls`: always use CLS pooling.

                - 🏗️ Changing the value of this parameter always regenerates
                embeddings
          default: useModel
        apiKey:
          type:
            - string
            - 'null'
          description: >-
            API key sent to the embedder.


            - If not set for source `openAi`, the key is read from the
            `OPENAI_API_KEY` then `MEILI_OPENAI_API_KEY` environment variables.

            - If not set for other sources, no bearer token is sent.

            - This setting is partially hidden when returned by the settings

            - 🌱 Changing the value of this parameter never regenerates
            embeddings
          example: your-api-key
        dimensions:
          type:
            - integer
            - 'null'
          description: >-
            Number of dimensions of the embedding vectors.


            - Available for `userProvided`, `openAi`, `ollama`, `rest`.

            - Mandatory for `userProvided`.

            - For `openAi`/`ollama`/`rest` inferred if omitted.

            - 🏗️ For `openAi`, changing the value of this parameter always
            regenerates embeddings

            - 🌱 For other sources, changing the value of this parameter never
            regenerates embeddings
          example: 1536
          minimum: 0
        documentTemplate:
          type:
            - string
            - 'null'
          description: >-
            [Liquid template](https://shopify.github.io/liquid/) to build the
            text sent to the embedder for each document.


            - Only available for `indexingEmbedder`, not `searchEmbedder`.

            - Available for `openAi`, `huggingFace`, `ollama`, `rest`.

            - 🏗️ When modified, embeddings are regenerated for documents whose
            rendering through the template produces a different text.
          example: '{{doc.title}}: {{doc.overview}}'
        documentTemplateMaxBytes:
          type:
            - integer
            - 'null'
          description: >-
            Max size in bytes of the rendered document template.


            Longer output is truncated.


            - Only available for `indexingEmbedder`, not `searchEmbedder`.

            - Available for `openAi`, `huggingFace`, `ollama`, `rest`.

            - 🏗️ When increased, embeddings are regenerated for documents whose
            rendering through the template produces a different text.

            - 🌱 When decreased, embeddings are never regenerated
          default: 400
          example: 400
          minimum: 0
        url:
          type:
            - string
            - 'null'
          description: >-
            URL of the embedder API.


            - Mandatory for `rest`. Optional for `openAi` and `ollama`.

            - 🌱 When modified for `openAi``, embeddings are never regenerated

            - 🏗️ When modified for `ollama` and `rest`, embeddings are always
            regenerated

            - If targetting URL resolving to a non-global IP (such as
            `localhost`), make sure that
              `--experimental-allowed-ip-networks` allows it. For details on how use this parameter,
              refer to [this documentation](https://www.meilisearch.com/docs/learn/self_hosted/configure_meilisearch_at_launch#allow-requests-to-private-networks).
          example: http://localhost:11434/api/embeddings
        indexingFragments:
          type:
            - object
            - 'null'
          description: >-
            Fragments (with [Liquid](https://shopify.github.io/liquid/)) sent to
            the embedder at indexing time.


            For `rest` with multimodal; key is fragment name, value the payload.


            See also [Image search with multimodal
            embeddings](https://www.meilisearch.com/docs/learn/ai_powered_search/image_search_with_multimodal_embeddings)


            - Only available for `indexingEmbedder`, not `searchEmbedder`.

            - 🏗️ When a fragment is deleted by passing `null` to its name, the
            corresponding embeddings are removed from documents.

            - 🏗️ When a fragment is modified, the corresponding embeddings are
            regenerated if their rendered version changes.
          default: {}
          additionalProperties: {}
          propertyNames:
            type: string
        searchFragments:
          type:
            - object
            - 'null'
          description: >-
            Fragments (with [Liquid](https://shopify.github.io/liquid/)) sent to
            the embedder at search time.


            For `rest` with multimodal.


            See also [Image search with multimodal
            embeddings](https://www.meilisearch.com/docs/learn/ai_powered_search/image_search_with_multimodal_embeddings)


            - 🌱 Changing the value of this parameter never regenerates
            embeddings
          default: {}
          additionalProperties: {}
          propertyNames:
            type: string
        request:
          description: >-
            Request body template for `rest` embedder.


            See also [Configure a REST
            embedder](https://www.meilisearch.com/docs/learn/ai_powered_search/configure_rest_embedder)


            - Use `"{{text}}"` for the input.

            - Mandatory for `rest`.

            - 🏗️ Changing the value of this parameter always regenerates
            embeddings
        response:
          description: >-
            Response template for `rest` embedder.


            See also [Configure a REST
            embedder](https://www.meilisearch.com/docs/learn/ai_powered_search/configure_rest_embedder)


            - Use `"{{embedding}}"` where the embedding array is.

            - Mandatory for `rest`.
        headers:
          type:
            - object
            - 'null'
          description: >-
            Extra HTTP headers sent to the embedder.


            - Available for `rest`.

            - 🌱 Changing the value of this parameter never regenerates
            embeddings
          additionalProperties:
            type: string
          propertyNames:
            type: string
      additionalProperties: false
    DistributionShift:
      type: object
      description: >-
        Describes the mean and sigma of distribution of embedding similarity in
        the embedding space.


        The intended use is to make the similarity score more comparable to the
        regular ranking score.

        This allows to correct effects where results are too "packed" around a
        certain value.
      required:
        - current_mean
        - current_sigma
      properties:
        current_mean:
          type: number
          format: float
          description: >-
            Value where the results are "packed".


            Similarity scores are translated so that they are packed around 0.5
            instead
        current_sigma:
          type: number
          format: float
          description: >-
            standard deviation of a similarity score.


            Set below 0.4 to make the results less packed around the mean, and
            above 0.4 to make them more packed.
    Locale:
      type: string
      enum:
        - af
        - ak
        - am
        - ar
        - az
        - be
        - bn
        - bg
        - ca
        - cs
        - da
        - de
        - el
        - en
        - eo
        - et
        - fi
        - fr
        - gu
        - he
        - hi
        - hr
        - hu
        - hy
        - id
        - it
        - jv
        - ja
        - kn
        - ka
        - km
        - ko
        - la
        - lv
        - lt
        - ml
        - mr
        - mk
        - my
        - ne
        - nl
        - nb
        - or
        - pa
        - fa
        - pl
        - pt
        - ro
        - ru
        - si
        - sk
        - sl
        - sn
        - es
        - sr
        - sv
        - ta
        - te
        - tl
        - th
        - tk
        - tr
        - uk
        - ur
        - uz
        - vi
        - yi
        - zh
        - zu
        - afr
        - aka
        - amh
        - ara
        - aze
        - bel
        - ben
        - bul
        - cat
        - ces
        - dan
        - deu
        - ell
        - eng
        - epo
        - est
        - fin
        - fra
        - guj
        - heb
        - hin
        - hrv
        - hun
        - hye
        - ind
        - ita
        - jav
        - jpn
        - kan
        - kat
        - khm
        - kor
        - lat
        - lav
        - lit
        - mal
        - mar
        - mkd
        - mya
        - nep
        - nld
        - nob
        - ori
        - pan
        - pes
        - pol
        - por
        - ron
        - rus
        - sin
        - slk
        - slv
        - sna
        - spa
        - srp
        - swe
        - tam
        - tel
        - tgl
        - tha
        - tuk
        - tur
        - ukr
        - urd
        - uzb
        - vie
        - yid
        - zho
        - zul
        - cmn
    ChatSearchParams:
      type: object
      description: Search parameters applied when the LLM queries this index.
      properties:
        hybrid:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/HybridQuery'
              description: >-
                Hybrid search: mix of keyword and semantic search. Requires an
                embedder (set via `embedder` and optionally `semanticRatio`).
        limit:
          type:
            - integer
            - 'null'
          description: >-
            Maximum number of documents returned per search performed by the
            LLM.
          example: 20
          minimum: 0
        sort:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Sort order: array of strings like `attribute:asc` or
            `attribute:desc`.
          example:
            - price:asc
            - rating:desc
        distinct:
          type:
            - string
            - 'null'
          description: Attribute used to return at most one document per distinct value.
          example: sku
        matchingStrategy:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/MatchingStrategy'
              description: 'How query terms are matched: `last`, `all`, or `frequency`.'
        attributesToSearchOn:
          type:
            - array
            - 'null'
          items:
            type: string
          description: >-
            Attributes on which to run the search. If unset, all searchable
            attributes are used.
          example:
            - title
            - description
        rankingScoreThreshold:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/RankingScoreThreshold'
              description: >-
                Minimum ranking score (0.0–1.0) for a document to be included.
                Lower scores are excluded.
      additionalProperties: false
    FilterableAttributesFeatures:
      type: object
      description: >-
        Controls which filtering and faceting operations are enabled for
        matching

        attributes. This allows restricting certain operations on specific
        fields

        for security or performance reasons.
      properties:
        facetSearch:
          type: boolean
          description: |-
            When `true`, allows searching within facet values for matching
            attributes. This enables the facet search feature which lets users
            search for specific facet values. Defaults to `false`.
        filter:
          $ref: '#/components/schemas/FilterFeatures'
          description: |-
            Controls which filter operators are allowed for matching attributes.
            See `FilterFeatures` for available options.
      additionalProperties: false
    HybridQuery:
      type: object
      description: 'Hybrid search: balance between keyword and semantic search.'
      required:
        - embedder
      properties:
        semanticRatio:
          type: number
          format: float
          description: Balance between keyword (0.0) and semantic (1.0) search.
          example: 0.5
        embedder:
          type: string
          description: >-
            Name of the embedder from the index embedders setting (`embedder` in
            JSON). Used to vectorize the query.
          example: default
    MatchingStrategy:
      type: string
      description: >-
        This is unfortunately a duplication of the struct in
        <meilisearch/src/search/mod.rs>.

        The reason why it is duplicated is because milli cannot depend on
        meilisearch. It would be cyclic imports.
      enum:
        - last
        - all
        - frequency
    RankingScoreThreshold:
      type: number
      format: double
    FilterFeatures:
      type: object
      description: |-
        Controls which filter operators are allowed for an attribute. This
        provides fine-grained control over filtering capabilities.
      properties:
        equality:
          type: boolean
          description: |-
            When `true`, enables equality operators: `=`, `!=`, and `IN`. These
            allow filtering for exact matches or membership in a set of values.
            Also enables `IS EMPTY`, `IS NULL`, and `EXISTS` operators. Defaults
            to `true`.
        comparison:
          type: boolean
          description: |-
            When `true`, enables comparison operators: `<`, `>`, `<=`, `>=`, and
            `TO` (range). These allow filtering based on numeric or string
            comparisons. Defaults to `false`.
      additionalProperties: false
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer
      bearerFormat: Uuidv4, string or JWT
      description: >-
        An API key is a token that you provide when making API calls. Read more
        about [how to secure your
        project](https://www.meilisearch.com/docs/learn/security/basic_security).


        Include the API key to the `Authorization` header, for instance:

        ```bash

        -H 'Authorization: Bearer 6436fc5237b0d6e0d64253fbaac21d135012ecf1'

        ```


        If you use a SDK, ensure you instantiate the client with the API key,
        for instance with [JS
        SDK](https://github.com/meilisearch/meilisearch-js):

        ```js

        const client = new Meilisearch({
          host: 'MEILISEARCH_URL',
          apiKey: '6436fc5237b0d6e0d64253fbaac21d135012ecf1'
        });

        ```

````