Qdrant Indexes API

Indexes for payloads associated with points.

Operations 2

PUT /collections/{collection_name}/index Create index for field in collection #
DELETE /collections/{collection_name}/index/{field_name} Delete index for field in collection #

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

qdrant-indexes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Qdrant Aliases Indexes API
  description: "API description for Qdrant vector search engine.\n\nThis document describes CRUD and search operations on collections of points (vectors with payload).\n\nQdrant supports any combinations of `should`, `min_should`, `must` and `must_not` conditions, which makes it possible to use in applications when object could not be described solely by vector. It could be location features, availability flags, and other custom properties businesses should take into account.\n## Examples\nThis examples cover the most basic use-cases - collection creation and basic vector search.\n### Create collection\nFirst - let's create a collection with dot-production metric.\n```\ncurl -X PUT 'http://localhost:6333/collections/test_collection' \\\n  -H 'Content-Type: application/json' \\\n  --data-raw '{\n    \"vectors\": {\n      \"size\": 4,\n      \"distance\": \"Dot\"\n    }\n  }'\n\n```\nExpected response:\n```\n{\n    \"result\": true,\n    \"status\": \"ok\",\n    \"time\": 0.031095451\n}\n```\nWe can ensure that collection was created:\n```\ncurl 'http://localhost:6333/collections/test_collection'\n```\nExpected response:\n```\n{\n  \"result\": {\n    \"status\": \"green\",\n    \"segments_count\": 5,\n    \"disk_data_size\": 0,\n    \"ram_data_size\": 0,\n    \"config\": {\n      \"params\": {\n        \"vectors\": {\n          \"size\": 4,\n          \"distance\": \"Dot\"\n        }\n      },\n      \"hnsw_config\": {\n        \"m\": 16,\n        \"ef_construct\": 100,\n        \"full_scan_threshold\": 10000\n      },\n      \"optimizer_config\": {\n        \"deleted_threshold\": 0.2,\n        \"vacuum_min_vector_number\": 1000,\n        \"default_segment_number\": 2,\n        \"max_segment_size\": null,\n        \"memmap_threshold\": null,\n        \"indexing_threshold\": 20000,\n        \"flush_interval_sec\": 5,\n        \"max_optimization_threads\": null\n      },\n      \"wal_config\": {\n        \"wal_capacity_mb\": 32,\n        \"wal_segments_ahead\": 0\n      }\n    }\n  },\n  \"status\": \"ok\",\n  \"time\": 2.1199e-05\n}\n```\n\n### Add points\nLet's now add vectors with some payload:\n```\ncurl -L -X PUT 'http://localhost:6333/collections/test_collection/points?wait=true' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n  \"points\": [\n    {\"id\": 1, \"vector\": [0.05, 0.61, 0.76, 0.74], \"payload\": {\"city\": \"Berlin\"}},\n    {\"id\": 2, \"vector\": [0.19, 0.81, 0.75, 0.11], \"payload\": {\"city\": [\"Berlin\", \"London\"] }},\n    {\"id\": 3, \"vector\": [0.36, 0.55, 0.47, 0.94], \"payload\": {\"city\": [\"Berlin\", \"Moscow\"] }},\n    {\"id\": 4, \"vector\": [0.18, 0.01, 0.85, 0.80], \"payload\": {\"city\": [\"London\", \"Moscow\"] }},\n    {\"id\": 5, \"vector\": [0.24, 0.18, 0.22, 0.44], \"payload\": {\"count\": [0]}},\n    {\"id\": 6, \"vector\": [0.35, 0.08, 0.11, 0.44]}\n  ]\n}'\n```\nExpected response:\n```\n{\n    \"result\": {\n        \"operation_id\": 0,\n        \"status\": \"completed\"\n    },\n    \"status\": \"ok\",\n    \"time\": 0.000206061\n}\n```\n### Search with filtering\nLet's start with a basic request:\n```\ncurl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n    \"vector\": [0.2,0.1,0.9,0.7],\n    \"top\": 3\n}'\n```\nExpected response:\n```\n{\n    \"result\": [\n        { \"id\": 4, \"score\": 1.362, \"payload\": null, \"version\": 0 },\n        { \"id\": 1, \"score\": 1.273, \"payload\": null, \"version\": 0 },\n        { \"id\": 3, \"score\": 1.208, \"payload\": null, \"version\": 0 }\n    ],\n    \"status\": \"ok\",\n    \"time\": 0.000055785\n}\n```\nBut result is different if we add a filter:\n```\ncurl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n    \"filter\": {\n        \"should\": [\n            {\n                \"key\": \"city\",\n                \"match\": {\n                    \"value\": \"London\"\n                }\n            }\n        ]\n    },\n    \"vector\": [0.2, 0.1, 0.9, 0.7],\n    \"top\": 3\n}'\n```\nExpected response:\n```\n{\n    \"result\": [\n        { \"id\": 4, \"score\": 1.362, \"payload\": null, \"version\": 0 },\n        { \"id\": 2, \"score\": 0.871, \"payload\": null, \"version\": 0 }\n    ],\n    \"status\": \"ok\",\n    \"time\": 0.000093972\n}\n```\n"
  contact:
    email: andrey@vasnetsov.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: master
servers:
- url: '{protocol}://{hostname}:{port}'
  variables:
    protocol:
      enum:
      - http
      - https
      default: http
    hostname:
      default: localhost
    port:
      default: '6333'
security:
- api-key: []
- bearerAuth: []
- {}
tags:
- name: Indexes
  description: Indexes for payloads associated with points.
paths:
  /collections/{collection_name}/index:
    put:
      tags:
      - Indexes
      summary: Create index for field in collection
      description: Create index for field in collection
      operationId: create_field_index
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      requestBody:
        description: Field name
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFieldIndex'
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/index/{field_name}:
    delete:
      tags:
      - Indexes
      summary: Delete index for field in collection
      description: Delete field index for collection
      operationId: delete_field_index
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection
        required: true
        schema:
          type: string
      - name: field_name
        in: path
        description: Name of the field where to delete the index
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        time:
          type: number
          format: float
          description: Time spent to process this request
        status:
          type: object
          properties:
            error:
              type: string
              description: Description of the occurred error.
        result:
          type:
          - object
          - 'null'
    InferenceUsage:
      type: object
      required:
      - models
      properties:
        models:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ModelUsage'
    StopwordsSet:
      type: object
      properties:
        languages:
          description: Set of languages to use for stopwords. Multiple pre-defined lists of stopwords can be combined.
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/Language'
          uniqueItems: true
        custom:
          description: Custom stopwords set. Will be merged with the languages set.
          type:
          - array
          - 'null'
          items:
            type: string
          uniqueItems: true
    StopwordsInterface:
      anyOf:
      - $ref: '#/components/schemas/Language'
      - $ref: '#/components/schemas/StopwordsSet'
    TextIndexType:
      type: string
      enum:
      - text
    IntegerIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/IntegerIndexType'
        lookup:
          description: If true - support direct lookups. Default is true.
          type:
          - boolean
          - 'null'
        range:
          description: If true - support ranges filters. Default is true.
          type:
          - boolean
          - 'null'
        is_principal:
          description: If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests. Default is false.
          type:
          - boolean
          - 'null'
        on_disk:
          description: 'If true, store the index on disk. Default: false. Default is false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    CreateFieldIndex:
      type: object
      required:
      - field_name
      properties:
        field_name:
          type: string
        field_schema:
          anyOf:
          - $ref: '#/components/schemas/PayloadFieldSchema'
          - {}
    Snowball:
      type: string
      enum:
      - snowball
    KeywordIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/KeywordIndexType'
        is_tenant:
          description: 'If true - used for tenant optimization. Default: false.'
          type:
          - boolean
          - 'null'
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    IntegerIndexType:
      type: string
      enum:
      - integer
    ModelUsage:
      type: object
      required:
      - tokens
      properties:
        tokens:
          type: integer
          format: uint64
          minimum: 0
    UuidIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/UuidIndexType'
        is_tenant:
          description: If true - used for tenant optimization.
          type:
          - boolean
          - 'null'
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    SnowballParams:
      type: object
      required:
      - language
      - type
      properties:
        type:
          $ref: '#/components/schemas/Snowball'
        language:
          $ref: '#/components/schemas/SnowballLanguage'
    BoolIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/BoolIndexType'
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    TokenizerType:
      type: string
      enum:
      - prefix
      - whitespace
      - word
      - multilingual
    UpdateStatus:
      description: '`Acknowledged` - Request is saved to WAL and will be process in a queue. `Completed` - Request is completed, changes are actual. `WaitTimeout` - Request is waiting for timeout.'
      type: string
      enum:
      - acknowledged
      - completed
      - wait_timeout
    PayloadFieldSchema:
      anyOf:
      - $ref: '#/components/schemas/PayloadSchemaType'
      - $ref: '#/components/schemas/PayloadSchemaParams'
    KeywordIndexType:
      type: string
      enum:
      - keyword
    PayloadSchemaParams:
      description: Payload type with parameters
      anyOf:
      - $ref: '#/components/schemas/KeywordIndexParams'
      - $ref: '#/components/schemas/IntegerIndexParams'
      - $ref: '#/components/schemas/FloatIndexParams'
      - $ref: '#/components/schemas/GeoIndexParams'
      - $ref: '#/components/schemas/TextIndexParams'
      - $ref: '#/components/schemas/BoolIndexParams'
      - $ref: '#/components/schemas/DatetimeIndexParams'
      - $ref: '#/components/schemas/UuidIndexParams'
    Language:
      type: string
      enum:
      - arabic
      - azerbaijani
      - basque
      - bengali
      - catalan
      - chinese
      - danish
      - dutch
      - english
      - finnish
      - french
      - german
      - greek
      - hebrew
      - hinglish
      - hungarian
      - indonesian
      - italian
      - japanese
      - kazakh
      - nepali
      - norwegian
      - portuguese
      - romanian
      - russian
      - slovene
      - spanish
      - swedish
      - tajik
      - turkish
    SnowballLanguage:
      description: Languages supported by snowball stemmer.
      type: string
      enum:
      - arabic
      - armenian
      - danish
      - dutch
      - english
      - finnish
      - french
      - german
      - greek
      - hungarian
      - italian
      - norwegian
      - portuguese
      - romanian
      - russian
      - spanish
      - swedish
      - tamil
      - turkish
    WriteOrdering:
      description: 'Defines write ordering guarantees for collection operations


        * `weak` - write operations may be reordered, works faster, default


        * `medium` - write operations go through dynamically selected leader, may be inconsistent for a short period of time in case of leader change


        * `strong` - Write operations go through the permanent leader, consistent, but may be unavailable if leader is down'
      type: string
      enum:
      - weak
      - medium
      - strong
    GeoIndexType:
      type: string
      enum:
      - geo
    TextIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/TextIndexType'
        tokenizer:
          $ref: '#/components/schemas/TokenizerType'
        min_token_len:
          description: Minimum characters to be tokenized.
          type:
          - integer
          - 'null'
          format: uint
          minimum: 0
        max_token_len:
          description: Maximum characters to be tokenized.
          type:
          - integer
          - 'null'
          format: uint
          minimum: 0
        lowercase:
          description: 'If true, lowercase all tokens. Default: true.'
          type:
          - boolean
          - 'null'
        ascii_folding:
          description: 'If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default: false.'
          type:
          - boolean
          - 'null'
        phrase_matching:
          description: 'If true, support phrase matching. Default: false.'
          type:
          - boolean
          - 'null'
        stopwords:
          description: Ignore this set of tokens. Can select from predefined languages and/or provide a custom set.
          anyOf:
          - $ref: '#/components/schemas/StopwordsInterface'
          - {}
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        stemmer:
          description: 'Algorithm for stemming. Default: disabled.'
          anyOf:
          - $ref: '#/components/schemas/StemmingAlgorithm'
          - {}
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    BoolIndexType:
      type: string
      enum:
      - bool
    DatetimeIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/DatetimeIndexType'
        is_principal:
          description: If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests.
          type:
          - boolean
          - 'null'
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    UpdateResult:
      type: object
      required:
      - status
      properties:
        operation_id:
          description: Sequential number of the operation
          type:
          - integer
          - 'null'
          format: uint64
          minimum: 0
        status:
          $ref: '#/components/schemas/UpdateStatus'
    StemmingAlgorithm:
      description: Different stemming algorithms with their configs.
      anyOf:
      - $ref: '#/components/schemas/SnowballParams'
    UuidIndexType:
      type: string
      enum:
      - uuid
    PayloadSchemaType:
      description: All possible names of payload types
      type: string
      enum:
      - keyword
      - integer
      - float
      - geo
      - text
      - bool
      - datetime
      - uuid
    FloatIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/FloatIndexType'
        is_principal:
          description: If true - use this key to organize storage of the collection data. This option assumes that this key will be used in majority of filtered requests.
          type:
          - boolean
          - 'null'
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    HardwareUsage:
      description: Usage of the hardware resources, spent to process the request
      type: object
      required:
      - cpu
      - payload_index_io_read
      - payload_index_io_write
      - payload_io_read
      - payload_io_write
      - vector_io_read
      - vector_io_write
      properties:
        cpu:
          type: integer
          format: uint
          minimum: 0
        payload_io_read:
          type: integer
          format: uint
          minimum: 0
        payload_io_write:
          type: integer
          format: uint
          minimum: 0
        payload_index_io_read:
          type: integer
          format: uint
          minimum: 0
        payload_index_io_write:
          type: integer
          format: uint
          minimum: 0
        vector_io_read:
          type: integer
          format: uint
          minimum: 0
        vector_io_write:
          type: integer
          format: uint
          minimum: 0
    DatetimeIndexType:
      type: string
      enum:
      - datetime
    Usage:
      description: Usage of the hardware resources, spent to process the request
      type: object
      properties:
        hardware:
          anyOf:
          - $ref: '#/components/schemas/HardwareUsage'
          - {}
        inference:
          anyOf:
          - $ref: '#/components/schemas/InferenceUsage'
          - {}
    GeoIndexParams:
      type: object
      required:
      - type
      properties:
        type:
          $ref: '#/components/schemas/GeoIndexType'
        on_disk:
          description: 'If true, store the index on disk. Default: false.'
          type:
          - boolean
          - 'null'
        enable_hnsw:
          description: 'Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.'
          type:
          - boolean
          - 'null'
    FloatIndexType:
      type: string
      enum:
      - float
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: Authorization key, either read-write or read-only
    bearerAuth:
      type: http
      scheme: bearer
externalDocs:
  description: Find out more about Qdrant applications and demo
  url: https://qdrant.tech/documentation/