Qdrant API

vmaster

Contact: andrey@vasnetsov.com

Base URL
{protocol}://{hostname}:{port}

API description for Qdrant vector search engine.

This document describes CRUD and search operations on collections of points (vectors with payload).

Qdrant 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.

Examples

This examples cover the most basic use-cases - collection creation and basic vector search.

Create collection

First - let's create a collection with dot-production metric.

curl -X PUT 'http://localhost:6333/collections/test_collection' \
  -H 'Content-Type: application/json' \
  --data-raw '{
    "vectors": {
      "size": 4,
      "distance": "Dot"
    }
  }'

Expected response:

{
    "result": true,
    "status": "ok",
    "time": 0.031095451
}

We can ensure that collection was created:

curl 'http://localhost:6333/collections/test_collection'

Expected response:

{
  "result": {
    "status": "green",
    "segments_count": 5,
    "disk_data_size": 0,
    "ram_data_size": 0,
    "config": {
      "params": {
        "vectors": {
          "size": 4,
          "distance": "Dot"
        }
      },
      "hnsw_config": {
        "m": 16,
        "ef_construct": 100,
        "full_scan_threshold": 10000
      },
      "optimizer_config": {
        "deleted_threshold": 0.2,
        "vacuum_min_vector_number": 1000,
        "default_segment_number": 2,
        "max_segment_size": null,
        "memmap_threshold": null,
        "indexing_threshold": 20000,
        "flush_interval_sec": 5,
        "max_optimization_threads": null
      },
      "wal_config": {
        "wal_capacity_mb": 32,
        "wal_segments_ahead": 0
      }
    }
  },
  "status": "ok",
  "time": 2.1199e-05
}

Add points

Let's now add vectors with some payload:

curl -L -X PUT 'http://localhost:6333/collections/test_collection/points?wait=true' \ -H 'Content-Type: application/json' \ --data-raw '{
  "points": [
    {"id": 1, "vector": [0.05, 0.61, 0.76, 0.74], "payload": {"city": "Berlin"}},
    {"id": 2, "vector": [0.19, 0.81, 0.75, 0.11], "payload": {"city": ["Berlin", "London"] }},
    {"id": 3, "vector": [0.36, 0.55, 0.47, 0.94], "payload": {"city": ["Berlin", "Moscow"] }},
    {"id": 4, "vector": [0.18, 0.01, 0.85, 0.80], "payload": {"city": ["London", "Moscow"] }},
    {"id": 5, "vector": [0.24, 0.18, 0.22, 0.44], "payload": {"count": [0]}},
    {"id": 6, "vector": [0.35, 0.08, 0.11, 0.44]}
  ]
}'

Expected response:

{
    "result": {
        "operation_id": 0,
        "status": "completed"
    },
    "status": "ok",
    "time": 0.000206061
}

Search with filtering

Let's start with a basic request:

curl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \ -H 'Content-Type: application/json' \ --data-raw '{
    "vector": [0.2,0.1,0.9,0.7],
    "top": 3
}'

Expected response:

{
    "result": [
        { "id": 4, "score": 1.362, "payload": null, "version": 0 },
        { "id": 1, "score": 1.273, "payload": null, "version": 0 },
        { "id": 3, "score": 1.208, "payload": null, "version": 0 }
    ],
    "status": "ok",
    "time": 0.000055785
}

But result is different if we add a filter:

curl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \ -H 'Content-Type: application/json' \ --data-raw '{
    "filter": {
        "should": [
            {
                "key": "city",
                "match": {
                    "value": "London"
                }
            }
        ]
    },
    "vector": [0.2, 0.1, 0.9, 0.7],
    "top": 3
}'

Expected response:

{
    "result": [
        { "id": 4, "score": 1.362, "payload": null, "version": 0 },
        { "id": 2, "score": 0.871, "payload": null, "version": 0 }
    ],
    "status": "ok",
    "time": 0.000093972
}

Authentication

api-keyapiKey

Authorization key, either read-write or read-only

API Key: api-key in header

bearerAuthhttp

Scheme: bearer

Collections

Searchable collections of points.

List collections

GET
{protocol}://{hostname}:{port}/collections

Get list name of all existing collections

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List collections
curl -X GET '{protocol}://{hostname}:{port}/collections'
const response = await fetch('{protocol}://{hostname}:{port}/collections', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "collections": [
      {
        "name": "arxiv-title"
      },
      {
        "name": "arxiv-abstract"
      },
      {
        "name": "medium-title"
      },
      {
        "name": "medium-text"
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Collection info

GET
{protocol}://{hostname}:{port}/collections/{collection_name}

Get detailed information about specified existing collection

Parameters

collection_namestringrequiredpath

Name of the collection to retrieve

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Collection info
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "status": "green",
    "optimizer_status": "ok",
    "warnings": [
      {
        "message": "string"
      }
    ],
    "indexed_vectors_count": 0,
    "points_count": 0,
    "segments_count": 0,
    "config": {
      "params": {
        "vectors": {
          "size": 1,
          "distance": "Cosine",
          "hnsw_config": {
            "m": 0,
            "ef_construct": 4,
            "full_scan_threshold": 10,
            "max_indexing_threads": 0,
            "on_disk": true,
            "memory": "cold",
            "payload_m": 0,
            "inline_storage": true
          },
          "quantization_config": {
            "scalar": {
              "type": "int8",
              "quantile": 0.5,
              "always_ram": true,
              "memory": "cold"
            }
          },
          "on_disk": true,
          "memory": "cold",
          "datatype": "float32",
          "multivector_config": {
            "comparator": "max_sim"
          }
        },
        "shard_number": 1,
        "sharding_method": "auto",
        "replication_factor": 1,
        "write_consistency_factor": 1,
        "read_fan_out_factor": 0,
        "read_fan_out_delay_ms": 0,
        "on_disk_payload": true,
        "payload": {
          "memory": "cold"
        },
        "id_tracker": {
          "memory": "cold"
        },
        "sparse_vectors": {}
      },
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 0,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "optimizer_config": {
        "deleted_threshold": 0.2,
        "vacuum_min_vector_number": 1000,
        "default_segment_number": 0,
        "max_segment_size": null,
        "memmap_threshold": null,
        "indexing_threshold": null,
        "flush_interval_sec": 0,
        "max_optimization_threads": null,
        "prevent_unoptimized": null
      },
      "wal_config": {
        "wal_capacity_mb": 1,
        "wal_segments_ahead": 0,
        "wal_retain_closed": 1
      },
      "quantization_config": null,
      "strict_mode_config": {
        "enabled": true,
        "max_query_limit": 0,
        "max_timeout": 0,
        "unindexed_filtering_retrieve": true,
        "unindexed_filtering_update": true,
        "search_max_hnsw_ef": 0,
        "search_allow_exact": true,
        "search_max_oversampling": 0,
        "upsert_max_batchsize": 0,
        "search_max_batchsize": 0,
        "max_collection_vector_size_bytes": 0,
        "read_rate_limit": 0,
        "write_rate_limit": 0,
        "max_collection_payload_size_bytes": 0,
        "max_points_count": 0,
        "filter_max_conditions": 0,
        "condition_max_size": 0,
        "multivector_config": {},
        "sparse_config": {},
        "max_payload_index_count": 0,
        "max_resident_memory_percent": 0
      },
      "metadata": {
        "city": "London",
        "color": "green"
      }
    },
    "payload_schema": {},
    "update_queue": {
      "length": 0,
      "deferred_points": 0
    }
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Create collection

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}

Create new collection with given parameters

Body

application/json

Parameters of a new collection

Operation for creating new collection and (optionally) specify index params

vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32> | null>= 1null

For auto sharding: Number of shards in collection. - Default is 1 for standalone, otherwise equal to the number of nodes - Minimum is 1

For custom sharding: Number of shards in collection per shard group. - Default is 1, meaning that each shard key will be mapped to a single shard - Minimum is 1

sharding_methodShardingMethod | anynull

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32> | null>= 1null

Number of shards replicas. Default is 1 Minimum is 1

write_consistency_factorinteger<uint32> | null>= 1null

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

on_disk_payloadboolean | nullnulldeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | anynull

Configuration of the payload storage

id_trackerIdTrackerParams | anynull

Configuration of the point id tracker

hnsw_configHnswConfigDiff | any

Custom params for HNSW index. If none - values from service configuration file are used.

wal_configWalConfigDiff | any

Custom params for WAL. If none - values from service configuration file are used.

optimizers_configOptimizersConfigDiff | any

Custom params for Optimizers. If none - values from service configuration file are used.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | anynull

Quantization parameters. If none - quantization is disabled.

sparse_vectorsobject | null

Sparse vector data config.

strict_mode_configStrictModeConfig | any

Strict-mode config.

metadataPayload | any

Arbitrary JSON metadata for the collection This can be used to store application-specific information such as creation time, migration data, inference model info, etc.

Parameters

collection_namestringrequiredpath

Name of the new collection

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create collection
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}' \
  -H 'Content-Type: application/json' \
  -d '{
    "vectors": {
      "size": 1,
      "distance": "Cosine",
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 10,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "quantization_config": {
        "scalar": {
          "type": "int8",
          "quantile": 0.5,
          "always_ram": true,
          "memory": "cold"
        }
      },
      "on_disk": true,
      "memory": "cold",
      "datatype": "float32",
      "multivector_config": {
        "comparator": "max_sim"
      }
    },
    "shard_number": null,
    "sharding_method": null,
    "replication_factor": null,
    "write_consistency_factor": null,
    "on_disk_payload": null,
    "payload": null,
    "id_tracker": null,
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 10,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "wal_config": {
      "wal_capacity_mb": 1,
      "wal_segments_ahead": 0,
      "wal_retain_closed": 0
    },
    "optimizers_config": {
      "deleted_threshold": 0,
      "vacuum_min_vector_number": 100,
      "default_segment_number": 0,
      "max_segment_size": 1,
      "memmap_threshold": 0,
      "indexing_threshold": 0,
      "flush_interval_sec": 0,
      "max_optimization_threads": "auto",
      "prevent_unoptimized": null
    },
    "quantization_config": null,
    "sparse_vectors": {},
    "strict_mode_config": {
      "enabled": true,
      "max_query_limit": 1,
      "max_timeout": 1,
      "unindexed_filtering_retrieve": true,
      "unindexed_filtering_update": true,
      "search_max_hnsw_ef": 0,
      "search_allow_exact": true,
      "search_max_oversampling": 0,
      "upsert_max_batchsize": 0,
      "search_max_batchsize": 0,
      "max_collection_vector_size_bytes": 0,
      "read_rate_limit": 1,
      "write_rate_limit": 1,
      "max_collection_payload_size_bytes": 0,
      "max_points_count": 1,
      "filter_max_conditions": 0,
      "condition_max_size": 0,
      "multivector_config": {},
      "sparse_config": {},
      "max_payload_index_count": 0,
      "max_resident_memory_percent": 1
    },
    "metadata": {
      "city": "London",
      "color": "green"
    }
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "vectors": {
        "size": 1,
        "distance": "Cosine",
        "hnsw_config": {
          "m": 0,
          "ef_construct": 4,
          "full_scan_threshold": 10,
          "max_indexing_threads": 0,
          "on_disk": true,
          "memory": "cold",
          "payload_m": 0,
          "inline_storage": true
        },
        "quantization_config": {
          "scalar": {
            "type": "int8",
            "quantile": 0.5,
            "always_ram": true,
            "memory": "cold"
          }
        },
        "on_disk": true,
        "memory": "cold",
        "datatype": "float32",
        "multivector_config": {
          "comparator": "max_sim"
        }
      },
      "shard_number": null,
      "sharding_method": null,
      "replication_factor": null,
      "write_consistency_factor": null,
      "on_disk_payload": null,
      "payload": null,
      "id_tracker": null,
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 10,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "wal_config": {
        "wal_capacity_mb": 1,
        "wal_segments_ahead": 0,
        "wal_retain_closed": 0
      },
      "optimizers_config": {
        "deleted_threshold": 0,
        "vacuum_min_vector_number": 100,
        "default_segment_number": 0,
        "max_segment_size": 1,
        "memmap_threshold": 0,
        "indexing_threshold": 0,
        "flush_interval_sec": 0,
        "max_optimization_threads": "auto",
        "prevent_unoptimized": null
      },
      "quantization_config": null,
      "sparse_vectors": {},
      "strict_mode_config": {
        "enabled": true,
        "max_query_limit": 1,
        "max_timeout": 1,
        "unindexed_filtering_retrieve": true,
        "unindexed_filtering_update": true,
        "search_max_hnsw_ef": 0,
        "search_allow_exact": true,
        "search_max_oversampling": 0,
        "upsert_max_batchsize": 0,
        "search_max_batchsize": 0,
        "max_collection_vector_size_bytes": 0,
        "read_rate_limit": 1,
        "write_rate_limit": 1,
        "max_collection_payload_size_bytes": 0,
        "max_points_count": 1,
        "filter_max_conditions": 0,
        "condition_max_size": 0,
        "multivector_config": {},
        "sparse_config": {},
        "max_payload_index_count": 0,
        "max_resident_memory_percent": 1
      },
      "metadata": {
        "city": "London",
        "color": "green"
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "vectors": {
    "size": 1,
    "distance": "Cosine",
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 10,
      "max_indexing_threads": 0,
      "on_disk": True,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": True
    },
    "quantization_config": {
      "scalar": {
        "type": "int8",
        "quantile": 0.5,
        "always_ram": True,
        "memory": "cold"
      }
    },
    "on_disk": True,
    "memory": "cold",
    "datatype": "float32",
    "multivector_config": {
      "comparator": "max_sim"
    }
  },
  "shard_number": None,
  "sharding_method": None,
  "replication_factor": None,
  "write_consistency_factor": None,
  "on_disk_payload": None,
  "payload": None,
  "id_tracker": None,
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": True,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": True
  },
  "wal_config": {
    "wal_capacity_mb": 1,
    "wal_segments_ahead": 0,
    "wal_retain_closed": 0
  },
  "optimizers_config": {
    "deleted_threshold": 0,
    "vacuum_min_vector_number": 100,
    "default_segment_number": 0,
    "max_segment_size": 1,
    "memmap_threshold": 0,
    "indexing_threshold": 0,
    "flush_interval_sec": 0,
    "max_optimization_threads": "auto",
    "prevent_unoptimized": None
  },
  "quantization_config": None,
  "sparse_vectors": {},
  "strict_mode_config": {
    "enabled": True,
    "max_query_limit": 1,
    "max_timeout": 1,
    "unindexed_filtering_retrieve": True,
    "unindexed_filtering_update": True,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": True,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 1,
    "write_rate_limit": 1,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 1,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 1
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}', json=payload)
data = response.json()
Request Body
{
  "vectors": {
    "size": 1,
    "distance": "Cosine",
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 10,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "quantization_config": {
      "scalar": {
        "type": "int8",
        "quantile": 0.5,
        "always_ram": true,
        "memory": "cold"
      }
    },
    "on_disk": true,
    "memory": "cold",
    "datatype": "float32",
    "multivector_config": {
      "comparator": "max_sim"
    }
  },
  "shard_number": null,
  "sharding_method": null,
  "replication_factor": null,
  "write_consistency_factor": null,
  "on_disk_payload": null,
  "payload": null,
  "id_tracker": null,
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "wal_config": {
    "wal_capacity_mb": 1,
    "wal_segments_ahead": 0,
    "wal_retain_closed": 0
  },
  "optimizers_config": {
    "deleted_threshold": 0,
    "vacuum_min_vector_number": 100,
    "default_segment_number": 0,
    "max_segment_size": 1,
    "memmap_threshold": 0,
    "indexing_threshold": 0,
    "flush_interval_sec": 0,
    "max_optimization_threads": "auto",
    "prevent_unoptimized": null
  },
  "quantization_config": null,
  "sparse_vectors": {},
  "strict_mode_config": {
    "enabled": true,
    "max_query_limit": 1,
    "max_timeout": 1,
    "unindexed_filtering_retrieve": true,
    "unindexed_filtering_update": true,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": true,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 1,
    "write_rate_limit": 1,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 1,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 1
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete collection

DELETE
{protocol}://{hostname}:{port}/collections/{collection_name}

Drop collection and all associated data

Parameters

collection_namestringrequiredpath

Name of the collection to delete

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete collection
curl -X DELETE '{protocol}://{hostname}:{port}/collections/{collection_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/collections/{collection_name}')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Update collection parameters

PATCH
{protocol}://{hostname}:{port}/collections/{collection_name}

Update parameters of the existing collection

Body

application/json

New parameters

Operation for updating parameters of the existing collection

vectorsVectorsConfigDiff | any

Map of vector data parameters to update for each named vector. To update parameters in a collection having a single unnamed vector, use an empty string as name.

optimizers_configOptimizersConfigDiff | any

Custom params for Optimizers. If none - it is left unchanged. This operation is blocking, it will only proceed once all current optimizations are complete

paramsCollectionParamsDiff | any

Collection base params. If none - it is left unchanged.

hnsw_configHnswConfigDiff | any

HNSW parameters to update for the collection index. If none - it is left unchanged.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | Disabled | anynull

Quantization parameters to update. If none - it is left unchanged.

sparse_vectorsSparseVectorsConfig | any

Map of sparse vector data parameters to update for each sparse vector.

strict_mode_configStrictModeConfig | any
metadataPayload | any

Metadata to update for the collection. If provided, this will merge with existing metadata. Individual keys can be removed by setting their value to null.

Parameters

collection_namestringrequiredpath

Name of the collection to update

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Update collection parameters
curl -X PATCH '{protocol}://{hostname}:{port}/collections/{collection_name}' \
  -H 'Content-Type: application/json' \
  -d '{
    "vectors": {},
    "optimizers_config": {
      "deleted_threshold": 0,
      "vacuum_min_vector_number": 100,
      "default_segment_number": 0,
      "max_segment_size": 1,
      "memmap_threshold": 0,
      "indexing_threshold": 0,
      "flush_interval_sec": 0,
      "max_optimization_threads": "auto",
      "prevent_unoptimized": null
    },
    "params": {
      "replication_factor": 1,
      "write_consistency_factor": 1,
      "read_fan_out_factor": 0,
      "read_fan_out_delay_ms": 0,
      "on_disk_payload": null,
      "payload": {
        "memory": "cold"
      },
      "id_tracker": {
        "memory": "cold"
      }
    },
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 10,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "quantization_config": null,
    "sparse_vectors": {},
    "strict_mode_config": {
      "enabled": true,
      "max_query_limit": 1,
      "max_timeout": 1,
      "unindexed_filtering_retrieve": true,
      "unindexed_filtering_update": true,
      "search_max_hnsw_ef": 0,
      "search_allow_exact": true,
      "search_max_oversampling": 0,
      "upsert_max_batchsize": 0,
      "search_max_batchsize": 0,
      "max_collection_vector_size_bytes": 0,
      "read_rate_limit": 1,
      "write_rate_limit": 1,
      "max_collection_payload_size_bytes": 0,
      "max_points_count": 1,
      "filter_max_conditions": 0,
      "condition_max_size": 0,
      "multivector_config": {},
      "sparse_config": {},
      "max_payload_index_count": 0,
      "max_resident_memory_percent": 1
    },
    "metadata": {
      "city": "London",
      "color": "green"
    }
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}', {
  method: 'PATCH',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "vectors": {},
      "optimizers_config": {
        "deleted_threshold": 0,
        "vacuum_min_vector_number": 100,
        "default_segment_number": 0,
        "max_segment_size": 1,
        "memmap_threshold": 0,
        "indexing_threshold": 0,
        "flush_interval_sec": 0,
        "max_optimization_threads": "auto",
        "prevent_unoptimized": null
      },
      "params": {
        "replication_factor": 1,
        "write_consistency_factor": 1,
        "read_fan_out_factor": 0,
        "read_fan_out_delay_ms": 0,
        "on_disk_payload": null,
        "payload": {
          "memory": "cold"
        },
        "id_tracker": {
          "memory": "cold"
        }
      },
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 10,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "quantization_config": null,
      "sparse_vectors": {},
      "strict_mode_config": {
        "enabled": true,
        "max_query_limit": 1,
        "max_timeout": 1,
        "unindexed_filtering_retrieve": true,
        "unindexed_filtering_update": true,
        "search_max_hnsw_ef": 0,
        "search_allow_exact": true,
        "search_max_oversampling": 0,
        "upsert_max_batchsize": 0,
        "search_max_batchsize": 0,
        "max_collection_vector_size_bytes": 0,
        "read_rate_limit": 1,
        "write_rate_limit": 1,
        "max_collection_payload_size_bytes": 0,
        "max_points_count": 1,
        "filter_max_conditions": 0,
        "condition_max_size": 0,
        "multivector_config": {},
        "sparse_config": {},
        "max_payload_index_count": 0,
        "max_resident_memory_percent": 1
      },
      "metadata": {
        "city": "London",
        "color": "green"
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "vectors": {},
  "optimizers_config": {
    "deleted_threshold": 0,
    "vacuum_min_vector_number": 100,
    "default_segment_number": 0,
    "max_segment_size": 1,
    "memmap_threshold": 0,
    "indexing_threshold": 0,
    "flush_interval_sec": 0,
    "max_optimization_threads": "auto",
    "prevent_unoptimized": None
  },
  "params": {
    "replication_factor": 1,
    "write_consistency_factor": 1,
    "read_fan_out_factor": 0,
    "read_fan_out_delay_ms": 0,
    "on_disk_payload": None,
    "payload": {
      "memory": "cold"
    },
    "id_tracker": {
      "memory": "cold"
    }
  },
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": True,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": True
  },
  "quantization_config": None,
  "sparse_vectors": {},
  "strict_mode_config": {
    "enabled": True,
    "max_query_limit": 1,
    "max_timeout": 1,
    "unindexed_filtering_retrieve": True,
    "unindexed_filtering_update": True,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": True,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 1,
    "write_rate_limit": 1,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 1,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 1
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}

response = requests.patch('{protocol}://{hostname}:{port}/collections/{collection_name}', json=payload)
data = response.json()
Request Body
{
  "vectors": {},
  "optimizers_config": {
    "deleted_threshold": 0,
    "vacuum_min_vector_number": 100,
    "default_segment_number": 0,
    "max_segment_size": 1,
    "memmap_threshold": 0,
    "indexing_threshold": 0,
    "flush_interval_sec": 0,
    "max_optimization_threads": "auto",
    "prevent_unoptimized": null
  },
  "params": {
    "replication_factor": 1,
    "write_consistency_factor": 1,
    "read_fan_out_factor": 0,
    "read_fan_out_delay_ms": 0,
    "on_disk_payload": null,
    "payload": {
      "memory": "cold"
    },
    "id_tracker": {
      "memory": "cold"
    }
  },
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "quantization_config": null,
  "sparse_vectors": {},
  "strict_mode_config": {
    "enabled": true,
    "max_query_limit": 1,
    "max_timeout": 1,
    "unindexed_filtering_retrieve": true,
    "unindexed_filtering_update": true,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": true,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 1,
    "write_rate_limit": 1,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 1,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 1
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Check the existence of a collection

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/exists

Returns "true" if the given collection name exists, and "false" otherwise

Parameters

collection_namestringrequiredpath

Name of the collection

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Check the existence of a collection
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/exists'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/exists', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/exists')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "exists": true
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Create named vector

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}

Create a new named vector on an existing collection

Body

application/json

Vector configuration - dense or sparse

Configuration for creating a new named vector.

Contains only the immutable properties that define a vector space. Storage type, index, and quantization are determined automatically based on the segment type and can be configured separately later.

Example JSON for a dense vector: json { "dense": { "size": 768, "distance": "Cosine" } }

Example JSON for a sparse vector: json { "sparse": { "modifier": "Idf" } }

Any of
denseDenseVectorConfigrequired

Configuration for creating a new dense named vector.

Only includes properties that define the vector space and cannot be changed after creation. Storage type, index type, and quantization are inferred.

Show child attributes
sizeinteger<uint>[1, 65536]required

Dimensionality of the vectors

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

multivector_configMultiVectorConfig | any

Configuration for multi-vector points (e.g., ColBERT)

datatypeVectorStorageDatatype | any

Element storage type (Float32, Float16, Uint8, Turbo4)

sparseSparseVectorConfigrequired

Configuration for creating a new sparse named vector.

Only includes properties that define the vector space and cannot be changed after creation.

Show child attributes
modifierModifier | any

Value modifier for sparse vectors (e.g., IDF)

datatypeVectorStorageDatatype | any

Datatype used to store weights in the index

Parameters

collection_namestringrequiredpath

Name of the collection

vector_namestringrequiredpath

Name of the vector to create

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create named vector
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}' \
  -H 'Content-Type: application/json' \
  -d '{
    "dense": {
      "size": 1,
      "distance": "Cosine",
      "multivector_config": {
        "comparator": "max_sim"
      },
      "datatype": "float32"
    }
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "dense": {
        "size": 1,
        "distance": "Cosine",
        "multivector_config": {
          "comparator": "max_sim"
        },
        "datatype": "float32"
      }
    }),
});

const data = await response.json();
import requests

payload = {
  "dense": {
    "size": 1,
    "distance": "Cosine",
    "multivector_config": {
      "comparator": "max_sim"
    },
    "datatype": "float32"
  }
}

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}', json=payload)
data = response.json()
Request Body
{
  "dense": {
    "size": 1,
    "distance": "Cosine",
    "multivector_config": {
      "comparator": "max_sim"
    },
    "datatype": "float32"
  }
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete named vector

DELETE
{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}

Delete a named vector from a collection

Parameters

collection_namestringrequiredpath

Name of the collection

vector_namestringrequiredpath

Name of the vector to delete

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete named vector
curl -X DELETE '{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/collections/{collection_name}/vectors/{vector_name}')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Get optimization progress

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/optimizations

Get progress of ongoing and completed optimizations for a collection

Parameters

collection_namestringrequiredpath

Name of the collection

withstringquery

Comma-separated list of optional fields to include in the response. Possible values: queued, completed, idle_segments.

completed_limitinteger>= 016query

Maximum number of completed optimizations to return. Ignored if completed is not in the with parameter.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Get optimization progress
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/optimizations'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/optimizations', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/optimizations')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Points

Float-point vectors with payload.

Get point

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/points/{id}

Retrieve full information of single point by id

Parameters

collection_namestringrequiredpath

Name of the collection to retrieve from

idinteger | stringrequiredpath

Id of the point

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Get point
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/points/{id}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/{id}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/points/{id}')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "id": 42,
    "payload": {
      "city": "London",
      "color": "green"
    },
    "vector": [
      0.875,
      0.140625,
      0.897599995136261
    ],
    "shard_key": "region_1",
    "order_value": 42
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Get points

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points

Retrieve multiple points by specified IDs

Body

application/json

List of points to retrieve

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any

Specify in which shards to look for the points, if not specified - look in all shards

idsArray<ExtendedPointId>required

Look for points with ids

Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | any

Select which payload to return with the response. Default is true.

with_vectorboolean | Array<string>

Options for specifying which vector to include

Parameters

collection_namestringrequiredpath

Name of the collection to retrieve from

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Get points
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points' \
  -H 'Content-Type: application/json' \
  -d '{
    "shard_key": "region_1",
    "ids": [
      42
    ],
    "with_payload": true,
    "with_vector": true
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "shard_key": "region_1",
      "ids": [
        42
      ],
      "with_payload": true,
      "with_vector": true
    }),
});

const data = await response.json();
import requests

payload = {
  "shard_key": "region_1",
  "ids": [
    42
  ],
  "with_payload": True,
  "with_vector": True
}

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points', json=payload)
data = response.json()
Request Body
{
  "shard_key": "region_1",
  "ids": [
    42
  ],
  "with_payload": true,
  "with_vector": true
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": [
    {
      "id": 42,
      "payload": {
        "city": "London",
        "color": "green"
      },
      "vector": [
        0.875,
        0.140625,
        0.897599995136261
      ],
      "shard_key": "region_1",
      "order_value": 42
    }
  ]
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Upsert points

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/points

Perform insert + updates on points. If point with given ID already exists - it will be overwritten.

Body

application/json

Operation to perform on points

PointInsertOperations

Parameters

collection_namestringrequiredpath

Name of the collection to update from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Upsert points
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/points' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/points', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete points

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/delete

Delete points

Body

application/json

Operation to perform on points

PointsSelector

Parameters

collection_namestringrequiredpath

Name of the collection to delete from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete points
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/delete' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/delete', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/delete', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Update vectors

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors

Update specified named vectors on points, keep unspecified vectors intact.

Body

application/json

Update named vectors on points

UpdateVectors

Parameters

collection_namestringrequiredpath

Name of the collection to update from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Update vectors
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete vectors

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors/delete

Delete named vectors from the given points.

Body

application/json

Delete named vectors from points

DeleteVectors

Parameters

collection_namestringrequiredpath

Name of the collection to delete from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete vectors
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors/delete' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors/delete', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/vectors/delete', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Set payload

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload

Set payload values for points

Body

application/json

Set payload on points

SetPayload

Parameters

collection_namestringrequiredpath

Name of the collection to set from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Set payload
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Overwrite payload

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload

Replace full payload of points with new one

Body

application/json

Payload and points selector

SetPayload

Parameters

collection_namestringrequiredpath

Name of the collection to set from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Overwrite payload
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete payload

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/delete

Delete specified key payload for points

Body

application/json

delete payload on points

DeletePayload

Parameters

collection_namestringrequiredpath

Name of the collection to delete from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete payload
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/delete' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/delete', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/delete', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Clear payload

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/clear

Remove all payload for specified points

Body

application/json

clear payload on points

PointsSelector

Parameters

collection_namestringrequiredpath

Name of the collection to clear payload from

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Clear payload
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/clear' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/clear', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/payload/clear', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Batch update points

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/batch

Apply a series of update operations for points, vectors and payloads

Body

application/json

update operations

any

Parameters

collection_namestringrequiredpath

Name of the collection to apply operations on

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Batch update points
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/batch' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/batch', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/batch', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": [
    {
      "operation_id": 0,
      "status": "acknowledged"
    }
  ]
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Scroll points

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/scroll

Scroll request - paginate over all points which matches given filtering condition

Body

application/json

Pagination and filter parameters

any

Parameters

collection_namestringrequiredpath

Name of the collection to retrieve from

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Scroll points
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/scroll' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/scroll', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/scroll', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "points": [
      {
        "id": 40,
        "payload": {
          "city": "London",
          "color": "green"
        },
        "vector": [
          0.875,
          0.140625,
          0.897599995136261
        ],
        "shard_key": "region_1"
      },
      {
        "id": 41,
        "payload": {
          "city": "Paris",
          "color": "red"
        },
        "vector": [
          0.75,
          0.640625,
          0.8945000171661377
        ],
        "shard_key": "region_1"
      }
    ],
    "next_page_offset": 42
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Count points

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/count

Count points which matches given filtering condition

Body

application/json

Request counts of points which matches given filtering condition

any

Parameters

collection_namestringrequiredpath

Name of the collection to count in

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Count points
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/count' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/count', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/count', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "count": 0
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Facet a payload key with a given filter.

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/facet

Count points that satisfy the given filter for each unique value of a payload key.

Body

application/json

Request counts of points for each unique value of a payload key

any

Parameters

collection_namestringrequiredpath

Name of the collection to facet in

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Facet a payload key with a given filter.
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/facet' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/facet', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/facet', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "hits": [
      {
        "value": "string",
        "count": 0
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Query points

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/query

Universally query points. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries.

Body

application/json

Describes the query to make to the collection

QueryRequest

Parameters

collection_namestringrequiredpath

Name of the collection to query

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Query points
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/query' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/query', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/query', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "points": [
      {
        "id": 42,
        "version": 3,
        "score": 0.75,
        "payload": {
          "city": "London",
          "color": "green"
        },
        "vector": [
          0.875,
          0.140625,
          0.897599995136261
        ],
        "shard_key": "region_1",
        "order_value": 42
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Query points in batch

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/batch

Universally query points in batch. This endpoint covers all capabilities of search, recommend, discover, filters. But also enables hybrid and multi-stage queries.

Body

application/json

Describes the queries to make to the collection

any

Parameters

collection_namestringrequiredpath

Name of the collection to query

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Query points in batch
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/batch' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/batch', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/batch', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": [
    {
      "points": [
        {
          "id": 42,
          "version": 3,
          "score": 0.75,
          "payload": {
            "city": "London",
            "color": "green"
          },
          "vector": [
            0.875,
            0.140625,
            0.897599995136261
          ],
          "shard_key": "region_1",
          "order_value": 42
        }
      ]
    }
  ]
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Query points, grouped by a given payload field

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/groups

Universally query points, grouped by a given payload field

Body

application/json

Describes the query to make to the collection

any

Parameters

collection_namestringrequiredpath

Name of the collection to query

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Query points, grouped by a given payload field
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/groups' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/groups', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/query/groups', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "groups": [
      {
        "hits": [
          {
            "id": 42,
            "version": 3,
            "score": 0.75,
            "payload": {
              "city": "London",
              "color": "green"
            },
            "vector": [
              0.875,
              0.140625,
              0.897599995136261
            ],
            "shard_key": "region_1",
            "order_value": 42
          }
        ],
        "id": "string",
        "lookup": {
          "id": 42,
          "payload": {
            "city": "London",
            "color": "green"
          },
          "vector": [
            0.875,
            0.140625,
            0.897599995136261
          ],
          "shard_key": "region_1",
          "order_value": 42
        }
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Search points matrix distance pairs

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/pairs

Compute distance matrix for sampled points with a pair based output format

Body

application/json

Search matrix request with optional filtering

SearchMatrixRequest

Parameters

collection_namestringrequiredpath

Name of the collection to search in

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Search points matrix distance pairs
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/pairs' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/pairs', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/pairs', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "pairs": [
      {
        "a": 42,
        "b": 42,
        "score": 0
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Search points matrix distance offsets

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/offsets

Compute distance matrix for sampled points with an offset based output format

Body

application/json

Search matrix request with optional filtering

SearchMatrixRequest

Parameters

collection_namestringrequiredpath

Name of the collection to search in

consistencyinteger | ReadConsistencyTypequery

Define read consistency guarantees for the operation

timeoutinteger>= 1query

If set, overrides global timeout for this request. Unit is seconds.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Search points matrix distance offsets
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/offsets' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/offsets', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/points/search/matrix/offsets', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "offsets_row": [
      0
    ],
    "offsets_col": [
      0
    ],
    "scores": [
      0
    ],
    "ids": [
      42
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Aliases

Additional names for existing collections.

Update aliases of the collections

POST
{protocol}://{hostname}:{port}/collections/aliases

Body

application/json

Alias update operations

Operation for performing changes of collection aliases. Alias changes are atomic, meaning that no collection modifications can happen between alias operations.

actionsArray<AliasOperations>required
Show child attributes

Group of all the possible operations related to collection aliases

Any of
create_aliasCreateAliasrequired

Create alternative name for a collection. Collection will be available under both names for search, retrieve,

Show child attributes
collection_namestringrequired
alias_namestringrequired
delete_aliasDeleteAliasrequired

Delete alias if exists

Show child attributes
alias_namestringrequired
rename_aliasRenameAliasrequired

Change alias to a new one

Show child attributes
old_alias_namestringrequired
new_alias_namestringrequired

Parameters

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Update aliases of the collections
curl -X POST '{protocol}://{hostname}:{port}/collections/aliases' \
  -H 'Content-Type: application/json' \
  -d '{
    "actions": [
      {
        "create_alias": {
          "collection_name": "string",
          "alias_name": "string"
        }
      }
    ]
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/aliases', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "actions": [
        {
          "create_alias": {
            "collection_name": "string",
            "alias_name": "string"
          }
        }
      ]
    }),
});

const data = await response.json();
import requests

payload = {
  "actions": [
    {
      "create_alias": {
        "collection_name": "string",
        "alias_name": "string"
      }
    }
  ]
}

response = requests.post('{protocol}://{hostname}:{port}/collections/aliases', json=payload)
data = response.json()
Request Body
{
  "actions": [
    {
      "create_alias": {
        "collection_name": "string",
        "alias_name": "string"
      }
    }
  ]
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

List aliases for collection

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/aliases

Get list of all aliases for a collection

Parameters

collection_namestringrequiredpath

Name of the collection

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List aliases for collection
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/aliases'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/aliases', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/aliases')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "aliases": [
      {
        "alias_name": "blogs-title",
        "collection_name": "arivx-title"
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

List collections aliases

GET
{protocol}://{hostname}:{port}/aliases

Get list of all existing collections aliases

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List collections aliases
curl -X GET '{protocol}://{hostname}:{port}/aliases'
const response = await fetch('{protocol}://{hostname}:{port}/aliases', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/aliases')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "aliases": [
      {
        "alias_name": "blogs-title",
        "collection_name": "arivx-title"
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Indexes

Indexes for payloads associated with points.

Create index for field in collection

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/index

Create index for field in collection

Body

application/json

Field name

field_namestringrequired
field_schemaPayloadSchemaType | KeywordIndexParams | IntegerIndexParams | FloatIndexParams | GeoIndexParams | TextIndexParams | BoolIndexParams | DatetimeIndexParams | UuidIndexParams | any

Parameters

collection_namestringrequiredpath

Name of the collection

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create index for field in collection
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/index' \
  -H 'Content-Type: application/json' \
  -d '{
    "field_name": "string",
    "field_schema": "keyword"
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/index', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "field_name": "string",
      "field_schema": "keyword"
    }),
});

const data = await response.json();
import requests

payload = {
  "field_name": "string",
  "field_schema": "keyword"
}

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/index', json=payload)
data = response.json()
Request Body
{
  "field_name": "string",
  "field_schema": "keyword"
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete index for field in collection

DELETE
{protocol}://{hostname}:{port}/collections/{collection_name}/index/{field_name}

Delete field index for collection

Parameters

collection_namestringrequiredpath

Name of the collection

field_namestringrequiredpath

Name of the field where to delete the index

waitbooleanquery

If true, wait for changes to actually happen

orderingWriteOrderingweakmediumstrongquery

define ordering guarantees for the operation

timeoutinteger>= 1query

Timeout for the operation

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete index for field in collection
curl -X DELETE '{protocol}://{hostname}:{port}/collections/{collection_name}/index/{field_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/index/{field_name}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/collections/{collection_name}/index/{field_name}')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "operation_id": 0,
    "status": "acknowledged"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Distributed

Service distributed setup.

List shard keys

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/shards

Parameters

collection_namestringrequiredpath

Name of the collection to list shard keys for

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List shard keys
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/shards'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/shards')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "shard_keys": [
      {
        "key": "region_1"
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Create shard key

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/shards

Body

application/json

Shard key configuration

shard_keystring | integerrequired
shards_numberinteger<uint32> | null>= 1

How many shards to create for this key If not specified, will use the default value from config

replication_factorinteger<uint32> | null>= 1

How many replicas to create for each shard If not specified, will use the default value from config

placementArray<integer> | null

Placement of shards for this key List of peer ids, that can be used to place shards for this key If not specified, will be randomly placed among all peers

initial_stateReplicaState | any

Initial state of the shards for this key If not specified, will be Initializing first and then Active Warning: do not change this unless you know what you are doing

Parameters

collection_namestringrequiredpath

Name of the collection to create shards for

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create shard key
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/shards' \
  -H 'Content-Type: application/json' \
  -d '{
    "shard_key": "region_1",
    "shards_number": 1,
    "replication_factor": 1,
    "placement": [
      0
    ],
    "initial_state": "Active"
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "shard_key": "region_1",
      "shards_number": 1,
      "replication_factor": 1,
      "placement": [
        0
      ],
      "initial_state": "Active"
    }),
});

const data = await response.json();
import requests

payload = {
  "shard_key": "region_1",
  "shards_number": 1,
  "replication_factor": 1,
  "placement": [
    0
  ],
  "initial_state": "Active"
}

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/shards', json=payload)
data = response.json()
Request Body
{
  "shard_key": "region_1",
  "shards_number": 1,
  "replication_factor": 1,
  "placement": [
    0
  ],
  "initial_state": "Active"
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete shard key

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/delete

Body

application/json

Select shard key to delete

shard_keystring | integerrequired

Parameters

collection_namestringrequiredpath

Name of the collection to create shards for

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete shard key
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/delete' \
  -H 'Content-Type: application/json' \
  -d '{
    "shard_key": "region_1"
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/delete', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "shard_key": "region_1"
    }),
});

const data = await response.json();
import requests

payload = {
  "shard_key": "region_1"
}

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/delete', json=payload)
data = response.json()
Request Body
{
  "shard_key": "region_1"
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Get cluster status info

GET
{protocol}://{hostname}:{port}/cluster

Get information about the current state and composition of the cluster

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Get cluster status info
curl -X GET '{protocol}://{hostname}:{port}/cluster'
const response = await fetch('{protocol}://{hostname}:{port}/cluster', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/cluster')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "status": "disabled"
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Collect cluster telemetry data

GET
{protocol}://{hostname}:{port}/cluster/telemetry

Get telemetry data, from the point of view of the cluster. This includes peers info, collections info, shard transfers, and resharding status

Parameters

details_levelintegerquery

The level of detail to include in the response

timeoutinteger>= 160query

Timeout for this request

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Collect cluster telemetry data
curl -X GET '{protocol}://{hostname}:{port}/cluster/telemetry'
const response = await fetch('{protocol}://{hostname}:{port}/cluster/telemetry', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/cluster/telemetry')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "collections": {},
    "cluster": {
      "enabled": true,
      "number_of_peers": 0,
      "peers": {}
    }
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Tries to recover current peer Raft state.

POST
{protocol}://{hostname}:{port}/cluster/recover

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Tries to recover current peer Raft state.
curl -X POST '{protocol}://{hostname}:{port}/cluster/recover'
const response = await fetch('{protocol}://{hostname}:{port}/cluster/recover', {
  method: 'POST',
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/cluster/recover')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Remove peer from the cluster

DELETE
{protocol}://{hostname}:{port}/cluster/peer/{peer_id}

Tries to remove peer from the cluster. Will return an error if peer has shards on it.

Parameters

peer_idintegerrequiredpath

Id of the peer

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

forcebooleanfalsequery

If true - removes peer even if it has shards/replicas on it.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Remove peer from the cluster
curl -X DELETE '{protocol}://{hostname}:{port}/cluster/peer/{peer_id}'
const response = await fetch('{protocol}://{hostname}:{port}/cluster/peer/{peer_id}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/cluster/peer/{peer_id}')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Collection cluster info

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/cluster

Get cluster information for a collection

Parameters

collection_namestringrequiredpath

Name of the collection to retrieve the cluster info for

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Collection cluster info
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/cluster'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/cluster', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/cluster')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "peer_id": 0,
    "shard_count": 0,
    "local_shards": [
      {
        "shard_id": 0,
        "shard_key": "region_1",
        "points_count": 0,
        "state": "Active"
      }
    ],
    "remote_shards": [
      {
        "shard_id": 0,
        "shard_key": "region_1",
        "peer_id": 0,
        "state": "Active"
      }
    ],
    "shard_transfers": [
      {
        "shard_id": 0,
        "to_shard_id": 0,
        "from": 0,
        "to": 0,
        "sync": true,
        "method": "stream_records",
        "comment": "string"
      }
    ],
    "resharding_operations": [
      {
        "direction": "up",
        "shard_id": 0,
        "peer_id": 0,
        "shard_key": "region_1"
      }
    ]
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Update collection cluster setup

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/cluster

Body

application/json

Collection cluster update operations

any

Parameters

collection_namestringrequiredpath

Name of the collection on which to to apply the cluster update operation

timeoutinteger>= 1query

Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Update collection cluster setup
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/cluster' \
  -H 'Content-Type: application/json'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/cluster', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/cluster', headers={'Content-Type': 'application/json'})
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Snapshots

Storage and collections snapshots.

Recover from an uploaded snapshot

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/upload

Recover local collection data from an uploaded snapshot. This will overwrite any data, stored on this node, for the collection. If collection does not exist - it will be created.

Body

multipart/form-data

Snapshot to recover from

snapshotstring<binary>

Parameters

collection_namestringrequiredpath

Name of the collection

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

prioritySnapshotPriorityno_syncsnapshotreplicaquery

Defines source of truth for snapshot recovery

checksumstringquery

Optional SHA256 checksum to verify snapshot integrity before recovery.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Recover from an uploaded snapshot
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/upload' \
  -H 'Content-Type: multipart/form-data' \
  -d '{
    "snapshot": "<binary>"
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/upload', {
  method: 'POST',
  headers: {
    'Content-Type': 'multipart/form-data',
  },
  body: JSON.stringify({
      "snapshot": "<binary>"
    }),
});

const data = await response.json();
import requests

payload = {
  "snapshot": "<binary>"
}

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/upload', json=payload)
data = response.json()
Request Body
{
  "snapshot": "<binary>"
}
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Recover from a snapshot

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/recover

Recover local collection data from a snapshot. This will overwrite any data, stored on this node, for the collection. If collection does not exist - it will be created.

Body

application/json

Snapshot to recover from

locationstring<uri>required

Examples: - URL http://localhost:8080/collections/my_collection/snapshots/my_snapshot - Local path file:///qdrant/snapshots/test_collection-2022-08-04-10-49-10.snapshot

prioritySnapshotPriority | anynull

Defines which data should be used as a source of truth if there are other replicas in the cluster. If set to Snapshot, the snapshot will be used as a source of truth, and the current state will be overwritten. If set to Replica, the current state will be used as a source of truth, and after recovery it will be synchronized from other replicas.

checksumstring | nullnull

Optional SHA256 checksum to verify snapshot integrity before recovery.

api_keystring | nullnull

Optional API key used when fetching the snapshot from a remote URL.

Parameters

collection_namestringrequiredpath

Name of the collection

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Recover from a snapshot
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/recover' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "https://example.com",
    "priority": null,
    "checksum": null,
    "api_key": null
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/recover', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "location": "https://example.com",
      "priority": null,
      "checksum": null,
      "api_key": null
    }),
});

const data = await response.json();
import requests

payload = {
  "location": "https://example.com",
  "priority": None,
  "checksum": None,
  "api_key": None
}

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/recover', json=payload)
data = response.json()
Request Body
{
  "location": "https://example.com",
  "priority": null,
  "checksum": null,
  "api_key": null
}
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

List collection snapshots

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots

Get list of snapshots for a collection

Parameters

collection_namestringrequiredpath

Name of the collection

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List collection snapshots
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": [
    {
      "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
      "creation_time": "2022-08-04T10:49:10",
      "size": 1000000,
      "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
    }
  ]
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Create collection snapshot

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots

Create new snapshot for a collection

Parameters

collection_namestringrequiredpath

Name of the collection for which to create a snapshot

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create collection snapshot
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots', {
  method: 'POST',
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots')
data = response.json()
{
  "time": 0.002,
  "status": "ok",
  "result": {
    "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
    "creation_time": "2022-08-04T10:49:10",
    "size": 1000000,
    "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
  }
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Download collection snapshot

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}

Download specified snapshot from a collection as a file

Parameters

collection_namestringrequiredpath

Name of the collection

snapshot_namestringrequiredpath

Name of the snapshot to download

Response

200OKstring<binary>

Snapshot file

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Download collection snapshot
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}')
data = response.json()
"<binary>"
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete collection snapshot

DELETE
{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}

Delete snapshot for a collection

Parameters

collection_namestringrequiredpath

Name of the collection for which to delete a snapshot

snapshot_namestringrequiredpath

Name of the snapshot to delete

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete collection snapshot
curl -X DELETE '{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/collections/{collection_name}/snapshots/{snapshot_name}')
data = response.json()
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

List of storage snapshots

GET
{protocol}://{hostname}:{port}/snapshots

Get list of snapshots of the whole storage

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List of storage snapshots
curl -X GET '{protocol}://{hostname}:{port}/snapshots'
const response = await fetch('{protocol}://{hostname}:{port}/snapshots', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/snapshots')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": [
    {
      "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
      "creation_time": "2022-08-04T10:49:10",
      "size": 1000000,
      "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
    }
  ]
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Create storage snapshot

POST
{protocol}://{hostname}:{port}/snapshots

Create new snapshot of the whole storage

Parameters

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create storage snapshot
curl -X POST '{protocol}://{hostname}:{port}/snapshots'
const response = await fetch('{protocol}://{hostname}:{port}/snapshots', {
  method: 'POST',
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/snapshots')
data = response.json()
{
  "time": 0.002,
  "status": "ok",
  "result": {
    "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
    "creation_time": "2022-08-04T10:49:10",
    "size": 1000000,
    "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
  }
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Download storage snapshot

GET
{protocol}://{hostname}:{port}/snapshots/{snapshot_name}

Download specified snapshot of the whole storage as a file

Parameters

snapshot_namestringrequiredpath

Name of the snapshot to download

Response

200OKstring<binary>

Snapshot file

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Download storage snapshot
curl -X GET '{protocol}://{hostname}:{port}/snapshots/{snapshot_name}'
const response = await fetch('{protocol}://{hostname}:{port}/snapshots/{snapshot_name}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/snapshots/{snapshot_name}')
data = response.json()
"<binary>"
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete storage snapshot

DELETE
{protocol}://{hostname}:{port}/snapshots/{snapshot_name}

Delete snapshot of the whole storage

Parameters

snapshot_namestringrequiredpath

Name of the full snapshot to delete

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete storage snapshot
curl -X DELETE '{protocol}://{hostname}:{port}/snapshots/{snapshot_name}'
const response = await fetch('{protocol}://{hostname}:{port}/snapshots/{snapshot_name}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/snapshots/{snapshot_name}')
data = response.json()
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Download shard snapshot

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshot

Stream the current state of a shard as a snapshot file

Parameters

collection_namestringrequiredpath

Name of the collection

shard_idintegerrequiredpath

Id of the shard

Response

200OKstring<binary>

Snapshot file

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Download shard snapshot
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshot'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshot', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshot')
data = response.json()
"<binary>"
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Recover shard from an uploaded snapshot

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/upload

Recover shard of a local collection from an uploaded snapshot. This will overwrite any data, stored on this node, for the collection shard.

Body

multipart/form-data

Snapshot to recover from

snapshotstring<binary>

Parameters

collection_namestringrequiredpath

Name of the collection

shard_idintegerrequiredpath

Id of the shard to recover

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

prioritySnapshotPriorityno_syncsnapshotreplicaquery

Defines source of truth for snapshot recovery

checksumstringquery

Optional SHA256 checksum to verify snapshot integrity before recovery.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Recover shard from an uploaded snapshot
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/upload' \
  -H 'Content-Type: multipart/form-data' \
  -d '{
    "snapshot": "<binary>"
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/upload', {
  method: 'POST',
  headers: {
    'Content-Type': 'multipart/form-data',
  },
  body: JSON.stringify({
      "snapshot": "<binary>"
    }),
});

const data = await response.json();
import requests

payload = {
  "snapshot": "<binary>"
}

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/upload', json=payload)
data = response.json()
Request Body
{
  "snapshot": "<binary>"
}
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Recover from a snapshot

PUT
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/recover

Recover shard of a local collection data from a snapshot. This will overwrite any data, stored in this shard, for the collection.

Body

application/json

Snapshot to recover from

locationstring | stringrequired
prioritySnapshotPriority | anynull
checksumstring | nullnull

Optional SHA256 checksum to verify snapshot integrity before recovery.

api_keystring | nullnull

Optional API key used when fetching the snapshot from a remote URL.

Parameters

collection_namestringrequiredpath

Name of the collection

shard_idintegerrequiredpath

Id of the shard to recover

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Recover from a snapshot
curl -X PUT '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/recover' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "https://example.com",
    "priority": null,
    "checksum": null,
    "api_key": null
  }'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/recover', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "location": "https://example.com",
      "priority": null,
      "checksum": null,
      "api_key": null
    }),
});

const data = await response.json();
import requests

payload = {
  "location": "https://example.com",
  "priority": None,
  "checksum": None,
  "api_key": None
}

response = requests.put('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/recover', json=payload)
data = response.json()
Request Body
{
  "location": "https://example.com",
  "priority": null,
  "checksum": null,
  "api_key": null
}
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

List shards snapshots for a collection

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots

Get list of snapshots for a shard of a collection

Parameters

collection_namestringrequiredpath

Name of the collection

shard_idintegerrequiredpath

Id of the shard

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
List shards snapshots for a collection
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": [
    {
      "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
      "creation_time": "2022-08-04T10:49:10",
      "size": 1000000,
      "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
    }
  ]
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Create shard snapshot

POST
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots

Create new snapshot of a shard for a collection

Parameters

collection_namestringrequiredpath

Name of the collection for which to create a snapshot

shard_idintegerrequiredpath

Id of the shard

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Create shard snapshot
curl -X POST '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots', {
  method: 'POST',
});

const data = await response.json();
import requests

response = requests.post('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots')
data = response.json()
{
  "time": 0.002,
  "status": "ok",
  "result": {
    "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
    "creation_time": "2022-08-04T10:49:10",
    "size": 1000000,
    "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
  }
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Download collection snapshot

GET
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}

Download specified snapshot of a shard from a collection as a file

Parameters

collection_namestringrequiredpath

Name of the collection

shard_idintegerrequiredpath

Id of the shard

snapshot_namestringrequiredpath

Name of the snapshot to download

Response

200OKstring<binary>

Snapshot file

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Download collection snapshot
curl -X GET '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}')
data = response.json()
"<binary>"
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Delete shard snapshot

DELETE
{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}

Delete snapshot of a shard for a collection

Parameters

collection_namestringrequiredpath

Name of the collection for which to delete a snapshot

shard_idintegerrequiredpath

Id of the shard

snapshot_namestringrequiredpath

Name of the snapshot to delete

waitbooleanquery

If true, wait for changes to actually happen. If false - let changes happen in background. Default is true.

Response

200OKobject

successful operation

202Acceptedobject

operation is accepted

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Delete shard snapshot
curl -X DELETE '{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}'
const response = await fetch('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/collections/{collection_name}/shards/{shard_id}/snapshots/{snapshot_name}')
data = response.json()
{
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": "string"
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Service

Qdrant service utilities.

Returns information about the running Qdrant instance

GET
{protocol}://{hostname}:{port}

Returns information about the running Qdrant instance like version and commit id

Response

200OKVersionInfo

Qdrant server version information

4XX

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Returns information about the running Qdrant instance
curl -X GET '{protocol}://{hostname}:{port}/'
const response = await fetch('{protocol}://{hostname}:{port}/', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/')
data = response.json()
200
{
  "title": "string",
  "version": "string",
  "commit": "string"
}

Collect telemetry data

GET
{protocol}://{hostname}:{port}/telemetry

Collect telemetry data including app info, system info, collections info, cluster info, configs and statistics

Parameters

anonymizebooleanquery

If true, anonymize result

details_levelinteger>= 0query

Level of details in telemetry data. Minimal level is 0, maximal is infinity

per_collectionbooleanquery

If true, include per-collection request statistics in the response

timeoutinteger>= 160query

Timeout for this request

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Collect telemetry data
curl -X GET '{protocol}://{hostname}:{port}/telemetry'
const response = await fetch('{protocol}://{hostname}:{port}/telemetry', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/telemetry')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "id": "string",
    "app": {
      "name": "string",
      "version": "string",
      "features": {
        "debug": true,
        "service_debug_feature": true,
        "recovery_mode": true,
        "gpu": true,
        "rocksdb": true,
        "staging": true
      },
      "runtime_features": {
        "all": false,
        "incremental_hnsw_building": true,
        "appendable_quantization": true,
        "single_file_mmap_vector_storage": true,
        "async_payload_storage": true,
        "async_hnsw_graph": false,
        "write_segment_manifest": false,
        "append_only_mutations": false,
        "compact_bitmask": false,
        "append_only_storages": false,
        "compact_logstore_tracker": false,
        "transfer_raw_points": false,
        "transfer_raw_payloads": false,
        "persist_proxy_segments": false,
        "combined_vector_storage": true,
        "serverless_compatible": false
      },
      "low_memory_mode": "disabled",
      "hnsw_global_config": {
        "healing_threshold": 0.3
      },
      "system": {
        "distribution": "string",
        "distribution_version": "string",
        "is_docker": true,
        "container_runtime": "none",
        "cores": 0,
        "cpu_cores_used": 0,
        "ram_size": 0,
        "disk_size": 0,
        "cpu_flags": "string",
        "cpu_endian": "little",
        "gpu_devices": [
          {
            "name": "string"
          }
        ]
      },
      "jwt_rbac": true,
      "hide_jwt_dashboard": true,
      "audit": {
        "dir": "string",
        "rotation": "string",
        "max_log_files": 0,
        "trust_forwarded_headers": true,
        "log_api": true,
        "dir_size_bytes": 0
      },
      "startup": "2024-01-15T09:30:00Z"
    },
    "collections": {
      "number_of_collections": 0,
      "max_collections": 0,
      "collections": [
        {
          "id": "string",
          "init_time_ms": 0,
          "config": {
            "params": {
              "vectors": {
                "size": 1,
                "distance": "Cosine",
                "hnsw_config": {
                  "m": 0,
                  "ef_construct": 4,
                  "full_scan_threshold": 10,
                  "max_indexing_threads": 0,
                  "on_disk": true,
                  "memory": "cold",
                  "payload_m": 0,
                  "inline_storage": true
                },
                "quantization_config": {
                  "scalar": {
                    "type": "int8",
                    "quantile": 0.5,
                    "always_ram": true,
                    "memory": "cold"
                  }
                },
                "on_disk": true,
                "memory": "cold",
                "datatype": "float32",
                "multivector_config": {
                  "comparator": "max_sim"
                }
              },
              "shard_number": 1,
              "sharding_method": "auto",
              "replication_factor": 1,
              "write_consistency_factor": 1,
              "read_fan_out_factor": 0,
              "read_fan_out_delay_ms": 0,
              "on_disk_payload": true,
              "payload": {
                "memory": "cold"
              },
              "id_tracker": {
                "memory": "cold"
              },
              "sparse_vectors": {}
            },
            "hnsw_config": {
              "m": 0,
              "ef_construct": 4,
              "full_scan_threshold": 0,
              "max_indexing_threads": 0,
              "on_disk": true,
              "memory": "cold",
              "payload_m": 0,
              "inline_storage": true
            },
            "optimizer_config": {
              "deleted_threshold": 0.2,
              "vacuum_min_vector_number": 1000,
              "default_segment_number": 0,
              "max_segment_size": null,
              "memmap_threshold": null,
              "indexing_threshold": null,
              "flush_interval_sec": 0,
              "max_optimization_threads": null,
              "prevent_unoptimized": null
            },
            "wal_config": {
              "wal_capacity_mb": 1,
              "wal_segments_ahead": 0,
              "wal_retain_closed": 1
            },
            "quantization_config": null,
            "strict_mode_config": {
              "enabled": true,
              "max_query_limit": 0,
              "max_timeout": 0,
              "unindexed_filtering_retrieve": true,
              "unindexed_filtering_update": true,
              "search_max_hnsw_ef": 0,
              "search_allow_exact": true,
              "search_max_oversampling": 0,
              "upsert_max_batchsize": 0,
              "search_max_batchsize": 0,
              "max_collection_vector_size_bytes": 0,
              "read_rate_limit": 0,
              "write_rate_limit": 0,
              "max_collection_payload_size_bytes": 0,
              "max_points_count": 0,
              "filter_max_conditions": 0,
              "condition_max_size": 0,
              "multivector_config": {},
              "sparse_config": {},
              "max_payload_index_count": 0,
              "max_resident_memory_percent": 0
            },
            "uuid": null,
            "metadata": {
              "city": "London",
              "color": "green"
            }
          },
          "shards": [
            {
              "id": 0,
              "key": "region_1",
              "local": {
                "variant_name": "string",
                "status": "green",
                "total_optimized_points": 0,
                "vectors_size_bytes": 0,
                "payloads_size_bytes": 0,
                "num_points": 0,
                "num_vectors": 0,
                "num_vectors_by_name": {},
                "segments": [
                  {
                    "info": {
                      "uuid": "550e8400-e29b-41d4-a716-446655440000",
                      "segment_type": "plain",
                      "num_vectors": 0,
                      "num_points": 0,
                      "num_deferred_points": 0,
                      "num_deleted_deferred_points": 0,
                      "num_indexed_vectors": 0,
                      "num_deleted_vectors": 0,
                      "vectors_size_bytes": 0,
                      "payloads_size_bytes": 0,
                      "ram_usage_bytes": 0,
                      "disk_usage_bytes": 0,
                      "is_appendable": true,
                      "index_schema": {},
                      "vector_data": {},
                      "payload_storage_io_backend": "mmap",
                      "deferred_internal_id": 0
                    },
                    "config": {
                      "vector_data": {},
                      "sparse_vector_data": {},
                      "payload_storage_type": {
                        "type": "mmap"
                      },
                      "id_tracker_memory": "cold"
                    },
                    "vector_index_searches": [
                      {
                        "index_name": "string",
                        "unfiltered_plain": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "unfiltered_hnsw": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "unfiltered_sparse": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "filtered_plain": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "filtered_small_cardinality": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "filtered_large_cardinality": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "filtered_acorn": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "filtered_exact": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "filtered_sparse": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        },
                        "unfiltered_exact": {
                          "count": 0,
                          "fail_count": 0,
                          "avg_duration_micros": 0,
                          "min_duration_micros": 0,
                          "max_duration_micros": 0,
                          "total_duration_micros": 0,
                          "last_responded": "2024-01-15T09:30:00Z"
                        }
                      }
                    ],
                    "payload_field_indices": [
                      {
                        "field_name": "string",
                        "index_type": "string",
                        "points_values_count": 0,
                        "points_count": 0,
                        "histogram_bucket_size": 0
                      }
                    ]
                  }
                ],
                "optimizations": {
                  "status": "ok",
                  "optimizations": {
                    "count": 0,
                    "fail_count": 0,
                    "avg_duration_micros": 0,
                    "min_duration_micros": 0,
                    "max_duration_micros": 0,
                    "total_duration_micros": 0,
                    "last_responded": "2024-01-15T09:30:00Z"
                  },
                  "log": [
                    {
                      "name": "string",
                      "uuid": "550e8400-e29b-41d4-a716-446655440000",
                      "segment_ids": [
                        0
                      ],
                      "segment_uuids": [
                        "550e8400-e29b-41d4-a716-446655440000"
                      ],
                      "status": "optimizing",
                      "start_at": "2024-01-15T09:30:00Z",
                      "end_at": "2024-01-15T09:30:00Z"
                    }
                  ]
                },
                "async_scorer": true,
                "indexed_only_excluded_vectors": {},
                "update_queue": {
                  "length": 0,
                  "op_num": 0,
                  "deferred_points": 0
                }
              },
              "remote": [
                {
                  "shard_id": 0,
                  "peer_id": 0,
                  "searches": {
                    "count": 0,
                    "fail_count": 0,
                    "avg_duration_micros": 0,
                    "min_duration_micros": 0,
                    "max_duration_micros": 0,
                    "total_duration_micros": 0,
                    "last_responded": "2024-01-15T09:30:00Z"
                  },
                  "updates": {
                    "count": 0,
                    "fail_count": 0,
                    "avg_duration_micros": 0,
                    "min_duration_micros": 0,
                    "max_duration_micros": 0,
                    "total_duration_micros": 0,
                    "last_responded": "2024-01-15T09:30:00Z"
                  }
                }
              ],
              "replicate_states": {},
              "partial_snapshot": {
                "ongoing_create_snapshot_requests": 0,
                "is_recovering": true,
                "recovery_timestamp": 0
              }
            }
          ],
          "transfers": [
            {
              "shard_id": 0,
              "to_shard_id": 0,
              "from": 0,
              "to": 0,
              "sync": true,
              "method": "stream_records",
              "comment": "string"
            }
          ],
          "resharding": [
            {
              "stage": "migrating_points",
              "direction": "up",
              "shard_id": 0,
              "peer_id": 0,
              "shard_key": "region_1",
              "uuid": "550e8400-e29b-41d4-a716-446655440000"
            }
          ],
          "shard_clean_tasks": {}
        }
      ],
      "snapshots": [
        {
          "id": "string",
          "running_snapshots": 0,
          "running_snapshot_recovery": 0,
          "total_snapshot_creations": 0
        }
      ]
    },
    "cluster": {
      "enabled": true,
      "status": {
        "number_of_peers": 0,
        "term": 0,
        "commit": 0,
        "pending_operations": 0,
        "role": "Follower",
        "is_voter": true,
        "peer_id": 0,
        "consensus_thread_status": {
          "consensus_thread_status": "working",
          "last_update": "2024-01-15T09:30:00Z"
        }
      },
      "config": {
        "grpc_timeout_ms": 0,
        "p2p": {
          "connection_pool_size": 0
        },
        "consensus": {
          "max_message_queue_size": 0,
          "tick_period_ms": 0,
          "bootstrap_timeout_sec": 0
        }
      },
      "peers": {},
      "peer_metadata": {},
      "metadata": {},
      "resharding_enabled": true
    },
    "requests": {
      "rest": {
        "responses": {},
        "per_collection_responses": {}
      },
      "grpc": {
        "responses": {},
        "per_collection_responses": {}
      }
    },
    "memory": {
      "active_bytes": 0,
      "allocated_bytes": 0,
      "metadata_bytes": 0,
      "resident_bytes": 0,
      "retained_bytes": 0
    },
    "hardware": {
      "collection_data": {}
    },
    "search_pool": {
      "mode": "string",
      "high_cpu_threads": 0,
      "high_io_threads": 0
    },
    "quota": {
      "config": {
        "enabled": false,
        "max_resident_memory_percent": 1,
        "max_disk_usage_percent": 1,
        "release_margin_percent": 0
      },
      "exceeded": {
        "resident_memory": true,
        "disk_usage": true
      }
    }
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Collect Prometheus metrics data

GET
{protocol}://{hostname}:{port}/metrics

Collect metrics data including app info, collections info, cluster info and statistics

Parameters

anonymizebooleanquery

If true, anonymize result

per_collectionbooleanquery

If true, include per-collection request metrics with a collection label instead of global request metrics

timeoutinteger>= 160query

Timeout for this request

Response

200OKstring

Metrics data in Prometheus format

4XX

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Collect Prometheus metrics data
curl -X GET '{protocol}://{hostname}:{port}/metrics'
const response = await fetch('{protocol}://{hostname}:{port}/metrics', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/metrics')
data = response.json()
200
# HELP app_info information about qdrant server
# TYPE app_info gauge
app_info{name="qdrant",version="0.11.1"} 1
# HELP cluster_enabled is cluster support enabled
# TYPE cluster_enabled gauge
cluster_enabled 0
# HELP collections_total number of collections
# TYPE collections_total gauge
collections_total 1

Kubernetes healthz endpoint

GET
{protocol}://{hostname}:{port}/healthz

Liveness-style health check. Returns 200 as soon as the HTTP API is serving requests. It does not inspect collections, shards or consensus state, and is identical to /livez. Use it only to detect whether the process is up and responsive.

Response

200OKstring

Healthz response

4XX

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Kubernetes healthz endpoint
curl -X GET '{protocol}://{hostname}:{port}/healthz'
const response = await fetch('{protocol}://{hostname}:{port}/healthz', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/healthz')
data = response.json()
200
healthz check passed

Kubernetes livez endpoint

GET
{protocol}://{hostname}:{port}/livez

Kubernetes liveness probe. Returns 200 as soon as the HTTP API is serving requests. It does not inspect collections, shards or consensus state, and is identical to /healthz. A failure indicates the process is unresponsive and should be restarted.

Response

200OKstring

Healthz response

4XX

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Kubernetes livez endpoint
curl -X GET '{protocol}://{hostname}:{port}/livez'
const response = await fetch('{protocol}://{hostname}:{port}/livez', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/livez')
data = response.json()
200
healthz check passed

Kubernetes readyz endpoint

GET
{protocol}://{hostname}:{port}/readyz

Kubernetes readiness probe. Checks the instance and waits out pending data operations to see when it can start accepting traffic. In a distributed deployment it returns 200 only once the node has caught up with the cluster consensus commit and its local shards are healthy; otherwise it returns 503. In a single-node deployment it always returns 200 once the API is up. Use it to decide when to route traffic to the instance.

Response

200OKstring

The instance is ready to accept traffic

503Service Unavailablestring

The instance is not ready to accept traffic yet

4XX

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Kubernetes readyz endpoint
curl -X GET '{protocol}://{hostname}:{port}/readyz'
const response = await fetch('{protocol}://{hostname}:{port}/readyz', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/readyz')
data = response.json()
all shards are ready
some shards are not ready

Quotas

Cluster-wide resource quotas.

Get global quotas

GET
{protocol}://{hostname}:{port}/quotas

Get the cluster-wide resource quota configuration, together with the current utilization it is measured against. The configuration is the same on every peer, but the reported utilization is for the node serving this request only - memory and disk are node-local, so query each peer to see where the whole cluster stands.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Get global quotas
curl -X GET '{protocol}://{hostname}:{port}/quotas'
const response = await fetch('{protocol}://{hostname}:{port}/quotas', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/quotas')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": {
    "config": {
      "enabled": false,
      "max_resident_memory_percent": 1,
      "max_disk_usage_percent": 1,
      "release_margin_percent": 0
    },
    "usage": {
      "resident_memory_percent": 0,
      "disk_usage_percent": 0
    },
    "peers": {}
  }
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Set global quotas

PUT
{protocol}://{hostname}:{port}/quotas

Replace the cluster-wide resource quota configuration. The new configuration is propagated to every peer through consensus and persisted, so it survives restarts

Body

application/json

Quota configuration to apply

Cluster-wide limits on node resources.

An unset limit means the corresponding resource is not capped. Limits are only enforced while enabled is true.

enabledbooleanfalse

Whether the limits below are enforced.

max_resident_memory_percentinteger<uint8> | null[1, 100]

Reject memory-consuming updates once process resident memory reaches this percentage of total system memory (or of the cgroup limit, if one applies).

max_disk_usage_percentinteger<uint8> | null[1, 100]

Reject disk-consuming updates once the filesystem hosting the storage directory is filled to this percentage of its capacity.

release_margin_percentinteger<uint8> | null[0, 100]

How many percentage points below its limit a resource has to fall before this node starts accepting work again.

Without a margin, a resource resting on its limit crosses it in both directions on the noise between two readings, putting the node in and out of service each time — and restarting a shard recovery with it. Raise it where usage is volatile; 0 disables the margin and releases as soon as usage is back under the limit.

Unset leaves the built-in default in force, so a config written today does not pin a number that a later release may want to revise.

Parameters

waitbooleanfalsequery

If true, wait until the new configuration is confirmed by consensus on this peer. If false - the request returns as soon as the change is proposed.

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Set global quotas
curl -X PUT '{protocol}://{hostname}:{port}/quotas' \
  -H 'Content-Type: application/json' \
  -d '{
    "enabled": false,
    "max_resident_memory_percent": 1,
    "max_disk_usage_percent": 1,
    "release_margin_percent": 0
  }'
const response = await fetch('{protocol}://{hostname}:{port}/quotas', {
  method: 'PUT',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "enabled": false,
      "max_resident_memory_percent": 1,
      "max_disk_usage_percent": 1,
      "release_margin_percent": 0
    }),
});

const data = await response.json();
import requests

payload = {
  "enabled": False,
  "max_resident_memory_percent": 1,
  "max_disk_usage_percent": 1,
  "release_margin_percent": 0
}

response = requests.put('{protocol}://{hostname}:{port}/quotas', json=payload)
data = response.json()
Request Body
{
  "enabled": false,
  "max_resident_memory_percent": 1,
  "max_disk_usage_percent": 1,
  "release_margin_percent": 0
}
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Beta

Beta features, do not depend on these yet.

Get issues

GET
{protocol}://{hostname}:{port}/issues

Get a report of performance issues and configuration suggestions

Response

200OKobject

Successful response

4XX

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Get issues
curl -X GET '{protocol}://{hostname}:{port}/issues'
const response = await fetch('{protocol}://{hostname}:{port}/issues', {
  method: 'GET',
});

const data = await response.json();
import requests

response = requests.get('{protocol}://{hostname}:{port}/issues')
data = response.json()
200
{}

Clear issues

DELETE
{protocol}://{hostname}:{port}/issues

Removes all issues reported so far

Response

200OKobject

successful operation

defaultErrorResponse

error

4XXErrorResponse

error

Authorization

api-keyapiKey in header

Authorization key, either read-write or read-only

bearerAuthhttp (bearer)
Clear issues
curl -X DELETE '{protocol}://{hostname}:{port}/issues'
const response = await fetch('{protocol}://{hostname}:{port}/issues', {
  method: 'DELETE',
});

const data = await response.json();
import requests

response = requests.delete('{protocol}://{hostname}:{port}/issues')
data = response.json()
{
  "usage": null,
  "time": 0.002,
  "status": "ok",
  "result": true
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

Models

ErrorResponse

object
timenumber<float>

Time spent to process this request

statusobject
Show child attributes
errorstring

Description of the occurred error.

resultobject | null
Example
{
  "time": 0,
  "status": {
    "error": "string"
  },
  "result": {}
}

CollectionsResponse

object
collectionsArray<CollectionDescription>required
Show child attributes
namestringrequired
Example
{
  "collections": [
    {
      "name": "arxiv-title"
    },
    {
      "name": "arxiv-abstract"
    },
    {
      "name": "medium-title"
    },
    {
      "name": "medium-text"
    }
  ]
}

CollectionDescription

object
namestringrequired
Example
{
  "name": "string"
}

CollectionInfo

object

Current statistics and configuration of the collection

statusCollectionStatusgreenyellowgreyredrequired

Current state of the collection. Green - all good. Yellow - optimization is running, 'Grey' - optimizations are possible but not triggered, Red - some operations failed and was not recovered

optimizer_statusstring | objectrequired

Current state of the collection

warningsArray<CollectionWarning>

Warnings related to the collection

Show child attributes
messagestringrequired

Warning message

indexed_vectors_countinteger<uint> | null>= 0

Approximate number of indexed vectors in the collection. Indexed vectors in large segments are faster to query, as it is stored in a specialized vector index.

points_countinteger<uint> | null>= 0

Approximate number of points (vectors + payloads) in collection. Each point could be accessed by unique id.

segments_countinteger<uint>>= 0required

Number of segments in collection. Each segment has independent vector as payload indexes

configCollectionConfigrequired

Information about the collection configuration

Show child attributes
paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

hnsw_configHnswConfigrequired

Config of HNSW index

Show child attributes
minteger<uint>>= 0required

Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.

ef_constructinteger<uint>>= 4required

Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index.

full_scan_thresholdinteger<uint>>= 0required

Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than full_scan_threshold_kb, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256

max_indexing_threadsinteger<uint>>= 00

Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of slow building or broken/inefficient HNSW graphs. On small CPUs, less threads are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store HNSW index on disk. If set to false, index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the HNSW graph. Overrides the deprecated on_disk flag if both are set. Default: cached (cold if on_disk is set to true).

payload_minteger<uint> | null>= 0

Custom M param for hnsw graph built for payload index. If not set, default M will be used.

inline_storageboolean | null

Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.

optimizer_configOptimizersConfigrequired
Show child attributes
deleted_thresholdnumber<double>[0, 1]0.2

The minimal fraction of deleted vectors in a segment, required to perform segment optimization

vacuum_min_vector_numberinteger<uint>>= 1001000

The minimal number of vectors in a segment, required to perform segment optimization

default_segment_numberinteger<uint>>= 0required

Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: - Amount of stored points - Current write RPS

It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads. If default_segment_number = 0, will be automatically selected by the number of available CPUs.

max_segment_sizeinteger<uint> | null>= 1null

Do not create segments larger than this size (in kilobytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.

If indexing speed is more important - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256 If not set, will be automatically selected considering the number of available CPUs.

memmap_thresholdinteger<uint> | null>= 0nulldeprecated

Maximum size (in kilobytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmapped file.

Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.

To disable memmap storage, set this to 0. Internally it will use the largest threshold possible.

Note: 1Kb = 1 vector of size 256

indexing_thresholdinteger<uint> | null>= 0null

Maximum size (in kilobytes) of vectors allowed for plain index, exceeding this threshold will enable vector indexing

Default value is 10,000, based on experiments and observations.

To disable vector indexing, set to 0.

Note: 1kB = 1 vector of size 256.

flush_interval_secinteger<uint64>>= 0required

Minimum interval between forced flushes.

max_optimization_threadsinteger<uint> | null>= 0null

Max number of threads (jobs) for running optimizations per shard. Note: each optimization job will also use max_indexing_threads threads by itself for index building. If null - have no limit and choose dynamically to saturate CPU. If 0 - no optimization threads, optimizations will be disabled.

prevent_unoptimizedboolean | nullnull

If enabled, the service will try to prevent the creation of large unoptimized segments. When enabled, new points written to segments larger than the indexing threshold are stored as "deferred points": they are persisted in the WAL and segments, but excluded from read/search results until the corresponding segments are optimized (e.g. indexed, quantized, or moved to mmap storage). Update requests with wait=true will only return after the deferred points become visible, which may significantly increase the perceived latency between submitting an update and its completion. Update requests with wait=false are not affected. Default is disabled.

wal_configWalConfig | any
quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | anynull
strict_mode_configStrictModeConfigOutput | any
metadataPayload | any

Arbitrary JSON metadata for the collection This can be used to store application-specific information such as creation time, migration data, inference model info, etc.

payload_schemaobjectrequired

Types of stored payload

update_queueUpdateQueueInfo | any

Update queue info

Example
{
  "status": "green",
  "optimizer_status": "ok",
  "warnings": [
    {
      "message": "string"
    }
  ],
  "indexed_vectors_count": 0,
  "points_count": 0,
  "segments_count": 0,
  "config": {
    "params": {
      "vectors": {
        "size": 1,
        "distance": "Cosine",
        "hnsw_config": {
          "m": 0,
          "ef_construct": 4,
          "full_scan_threshold": 10,
          "max_indexing_threads": 0,
          "on_disk": true,
          "memory": "cold",
          "payload_m": 0,
          "inline_storage": true
        },
        "quantization_config": {
          "scalar": {
            "type": "int8",
            "quantile": 0.5,
            "always_ram": true,
            "memory": "cold"
          }
        },
        "on_disk": true,
        "memory": "cold",
        "datatype": "float32",
        "multivector_config": {
          "comparator": "max_sim"
        }
      },
      "shard_number": 1,
      "sharding_method": "auto",
      "replication_factor": 1,
      "write_consistency_factor": 1,
      "read_fan_out_factor": 0,
      "read_fan_out_delay_ms": 0,
      "on_disk_payload": true,
      "payload": {
        "memory": "cold"
      },
      "id_tracker": {
        "memory": "cold"
      },
      "sparse_vectors": {}
    },
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 0,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "optimizer_config": {
      "deleted_threshold": 0.2,
      "vacuum_min_vector_number": 1000,
      "default_segment_number": 0,
      "max_segment_size": null,
      "memmap_threshold": null,
      "indexing_threshold": null,
      "flush_interval_sec": 0,
      "max_optimization_threads": null,
      "prevent_unoptimized": null
    },
    "wal_config": {
      "wal_capacity_mb": 1,
      "wal_segments_ahead": 0,
      "wal_retain_closed": 1
    },
    "quantization_config": null,
    "strict_mode_config": {
      "enabled": true,
      "max_query_limit": 0,
      "max_timeout": 0,
      "unindexed_filtering_retrieve": true,
      "unindexed_filtering_update": true,
      "search_max_hnsw_ef": 0,
      "search_allow_exact": true,
      "search_max_oversampling": 0,
      "upsert_max_batchsize": 0,
      "search_max_batchsize": 0,
      "max_collection_vector_size_bytes": 0,
      "read_rate_limit": 0,
      "write_rate_limit": 0,
      "max_collection_payload_size_bytes": 0,
      "max_points_count": 0,
      "filter_max_conditions": 0,
      "condition_max_size": 0,
      "multivector_config": {},
      "sparse_config": {},
      "max_payload_index_count": 0,
      "max_resident_memory_percent": 0
    },
    "metadata": {
      "city": "London",
      "color": "green"
    }
  },
  "payload_schema": {},
  "update_queue": {
    "length": 0,
    "deferred_points": 0
  }
}

CollectionStatus

string

Current state of the collection. Green - all good. Yellow - optimization is running, 'Grey' - optimizations are possible but not triggered, Red - some operations failed and was not recovered

CollectionStatusgreenyellowgreyred
Example
"green"

OptimizersStatus

object

Current state of the collection

One of

Optimizers are reporting as expected

stringok
errorstringrequired
Example
"ok"

CollectionWarning

object
messagestringrequired

Warning message

Example
{
  "message": "string"
}

CollectionConfig

object

Information about the collection configuration

paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

hnsw_configHnswConfigrequired

Config of HNSW index

Show child attributes
minteger<uint>>= 0required

Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.

ef_constructinteger<uint>>= 4required

Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index.

full_scan_thresholdinteger<uint>>= 0required

Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than full_scan_threshold_kb, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256

max_indexing_threadsinteger<uint>>= 00

Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of slow building or broken/inefficient HNSW graphs. On small CPUs, less threads are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store HNSW index on disk. If set to false, index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the HNSW graph. Overrides the deprecated on_disk flag if both are set. Default: cached (cold if on_disk is set to true).

payload_minteger<uint> | null>= 0

Custom M param for hnsw graph built for payload index. If not set, default M will be used.

inline_storageboolean | null

Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.

optimizer_configOptimizersConfigrequired
Show child attributes
deleted_thresholdnumber<double>[0, 1]0.2

The minimal fraction of deleted vectors in a segment, required to perform segment optimization

vacuum_min_vector_numberinteger<uint>>= 1001000

The minimal number of vectors in a segment, required to perform segment optimization

default_segment_numberinteger<uint>>= 0required

Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: - Amount of stored points - Current write RPS

It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads. If default_segment_number = 0, will be automatically selected by the number of available CPUs.

max_segment_sizeinteger<uint> | null>= 1null

Do not create segments larger than this size (in kilobytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.

If indexing speed is more important - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256 If not set, will be automatically selected considering the number of available CPUs.

memmap_thresholdinteger<uint> | null>= 0nulldeprecated

Maximum size (in kilobytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmapped file.

Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.

To disable memmap storage, set this to 0. Internally it will use the largest threshold possible.

Note: 1Kb = 1 vector of size 256

indexing_thresholdinteger<uint> | null>= 0null

Maximum size (in kilobytes) of vectors allowed for plain index, exceeding this threshold will enable vector indexing

Default value is 10,000, based on experiments and observations.

To disable vector indexing, set to 0.

Note: 1kB = 1 vector of size 256.

flush_interval_secinteger<uint64>>= 0required

Minimum interval between forced flushes.

max_optimization_threadsinteger<uint> | null>= 0null

Max number of threads (jobs) for running optimizations per shard. Note: each optimization job will also use max_indexing_threads threads by itself for index building. If null - have no limit and choose dynamically to saturate CPU. If 0 - no optimization threads, optimizations will be disabled.

prevent_unoptimizedboolean | nullnull

If enabled, the service will try to prevent the creation of large unoptimized segments. When enabled, new points written to segments larger than the indexing threshold are stored as "deferred points": they are persisted in the WAL and segments, but excluded from read/search results until the corresponding segments are optimized (e.g. indexed, quantized, or moved to mmap storage). Update requests with wait=true will only return after the deferred points become visible, which may significantly increase the perceived latency between submitting an update and its completion. Update requests with wait=false are not affected. Default is disabled.

wal_configWalConfig | any
quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | anynull
strict_mode_configStrictModeConfigOutput | any
metadataPayload | any

Arbitrary JSON metadata for the collection This can be used to store application-specific information such as creation time, migration data, inference model info, etc.

Example
{
  "params": {
    "vectors": {
      "size": 1,
      "distance": "Cosine",
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 10,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "quantization_config": {
        "scalar": {
          "type": "int8",
          "quantile": 0.5,
          "always_ram": true,
          "memory": "cold"
        }
      },
      "on_disk": true,
      "memory": "cold",
      "datatype": "float32",
      "multivector_config": {
        "comparator": "max_sim"
      }
    },
    "shard_number": 1,
    "sharding_method": "auto",
    "replication_factor": 1,
    "write_consistency_factor": 1,
    "read_fan_out_factor": 0,
    "read_fan_out_delay_ms": 0,
    "on_disk_payload": true,
    "payload": {
      "memory": "cold"
    },
    "id_tracker": {
      "memory": "cold"
    },
    "sparse_vectors": {}
  },
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 0,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "optimizer_config": {
    "deleted_threshold": 0.2,
    "vacuum_min_vector_number": 1000,
    "default_segment_number": 0,
    "max_segment_size": null,
    "memmap_threshold": null,
    "indexing_threshold": null,
    "flush_interval_sec": 0,
    "max_optimization_threads": null,
    "prevent_unoptimized": null
  },
  "wal_config": {
    "wal_capacity_mb": 1,
    "wal_segments_ahead": 0,
    "wal_retain_closed": 1
  },
  "quantization_config": null,
  "strict_mode_config": {
    "enabled": true,
    "max_query_limit": 0,
    "max_timeout": 0,
    "unindexed_filtering_retrieve": true,
    "unindexed_filtering_update": true,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": true,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 0,
    "write_rate_limit": 0,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 0,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 0
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}

CollectionParams

object
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

Example
{
  "vectors": {
    "size": 1,
    "distance": "Cosine",
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 10,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "quantization_config": {
      "scalar": {
        "type": "int8",
        "quantile": 0.5,
        "always_ram": true,
        "memory": "cold"
      }
    },
    "on_disk": true,
    "memory": "cold",
    "datatype": "float32",
    "multivector_config": {
      "comparator": "max_sim"
    }
  },
  "shard_number": 1,
  "sharding_method": "auto",
  "replication_factor": 1,
  "write_consistency_factor": 1,
  "read_fan_out_factor": 0,
  "read_fan_out_delay_ms": 0,
  "on_disk_payload": true,
  "payload": {
    "memory": "cold"
  },
  "id_tracker": {
    "memory": "cold"
  },
  "sparse_vectors": {}
}

VectorsConfig

object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

Any of
sizeinteger<uint64>[1, 65536]required

Size of a vectors used

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

hnsw_configHnswConfigDiff | any

Custom params for HNSW index. If none - values from collection configuration are used.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | any

Custom params for quantization. If none - values from collection configuration are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, vectors are served from disk, improving RAM usage at the cost of latency Default: false

memoryMemory | any

Memory placement of the original vector storage. Overrides the deprecated on_disk flag if both are set. pinned is not supported for dense vector storage. Default: cached (cold if on_disk is set to true).

datatypeDatatype | any

Defines which datatype should be used to represent vectors in the storage. Choosing different datatypes allows to optimize memory usage and performance vs accuracy.

  • For float32 datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For float16 datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For uint8 datatype - vectors are stored as unsigned 8-bit integers, 1 byte. It expects vector elements to be in range [0, 255]. - For turbo4 datatype - vectors are quantized to 4 bits per element using the TurboQuant algorithm.
multivector_configMultiVectorConfig | any
object
Example
{
  "size": 1,
  "distance": "Cosine",
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "quantization_config": {
    "scalar": {
      "type": "int8",
      "quantile": 0.5,
      "always_ram": true,
      "memory": "cold"
    }
  },
  "on_disk": true,
  "memory": "cold",
  "datatype": "float32",
  "multivector_config": {
    "comparator": "max_sim"
  }
}

VectorParams

object

Params of single vector data storage

sizeinteger<uint64>[1, 65536]required

Size of a vectors used

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

hnsw_configHnswConfigDiff | any

Custom params for HNSW index. If none - values from collection configuration are used.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | any

Custom params for quantization. If none - values from collection configuration are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, vectors are served from disk, improving RAM usage at the cost of latency Default: false

memoryMemory | any

Memory placement of the original vector storage. Overrides the deprecated on_disk flag if both are set. pinned is not supported for dense vector storage. Default: cached (cold if on_disk is set to true).

datatypeDatatype | any

Defines which datatype should be used to represent vectors in the storage. Choosing different datatypes allows to optimize memory usage and performance vs accuracy.

  • For float32 datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For float16 datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For uint8 datatype - vectors are stored as unsigned 8-bit integers, 1 byte. It expects vector elements to be in range [0, 255]. - For turbo4 datatype - vectors are quantized to 4 bits per element using the TurboQuant algorithm.
multivector_configMultiVectorConfig | any
Example
{
  "size": 1,
  "distance": "Cosine",
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "quantization_config": {
    "scalar": {
      "type": "int8",
      "quantile": 0.5,
      "always_ram": true,
      "memory": "cold"
    }
  },
  "on_disk": true,
  "memory": "cold",
  "datatype": "float32",
  "multivector_config": {
    "comparator": "max_sim"
  }
}

Distance

string

Type of internal tags, build from payload Distance function types used to compare vectors

DistanceCosineEuclidDotManhattan
Example
"Cosine"

HnswConfigDiff

object
minteger<uint> | null>= 0

Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.

ef_constructinteger<uint> | null>= 4

Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build the index.

full_scan_thresholdinteger<uint> | null>= 10

Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than full_scan_threshold_kb, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256

max_indexing_threadsinteger<uint> | null>= 0

Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of building broken/inefficient HNSW graphs. On small CPUs, less threads are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store HNSW index on disk. If set to false, the index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the HNSW graph. Overrides the deprecated on_disk flag if both are set. Default: cached (cold if on_disk is set to true).

payload_minteger<uint> | null>= 0

Custom M param for additional payload-aware HNSW links. If not set, default M will be used.

inline_storageboolean | null

Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.

Example
{
  "m": 0,
  "ef_construct": 4,
  "full_scan_threshold": 10,
  "max_indexing_threads": 0,
  "on_disk": true,
  "memory": "cold",
  "payload_m": 0,
  "inline_storage": true
}

Memory

string

Memory placement of a component's data.

Data is always persisted on disk regardless of this setting; it only controls how the data is held in RAM.

Options:

  • Cold - Data is not pre-loaded from disk to RAM. Preferred for rarely queried components or components larger than RAM size. First request might be slow, but data is cached with usage.

  • Cached - Data is pre-loaded into disk-cache RAM on start. First request is fast, but data may be evicted if there is not enough memory and some other component's data is used more frequently.

  • Pinned - Data is loaded in RAM and never evicted. First request is fast, but the component must fit in RAM at all times. Recommended for frequently queried small components like quantized vectors or primary indexes.

Memorycoldcachedpinned
Example
"cold"

QuantizationConfig

object
Any of
scalarScalarQuantizationConfigrequired
Show child attributes
typeScalarTypeint8required
quantilenumber<float> | null[0.5, 1]

Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values

always_ramboolean | nulldeprecated

Deprecated: use memory instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

productProductQuantizationConfigrequired
Show child attributes
compressionCompressionRatiox4x8x16x32x64required
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

binaryBinaryQuantizationConfigrequired
Show child attributes
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

encodingBinaryQuantizationEncoding | any
query_encodingBinaryQuantizationQueryEncoding | any

Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance.

turboTurboQuantQuantizationConfigrequired
Show child attributes
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

bitsTurboQuantBitSize | any
Example
{
  "scalar": {
    "type": "int8",
    "quantile": 0.5,
    "always_ram": true,
    "memory": "cold"
  }
}

ScalarQuantization

object
scalarScalarQuantizationConfigrequired
Show child attributes
typeScalarTypeint8required
quantilenumber<float> | null[0.5, 1]

Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values

always_ramboolean | nulldeprecated

Deprecated: use memory instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

Example
{
  "scalar": {
    "type": "int8",
    "quantile": 0.5,
    "always_ram": true,
    "memory": "cold"
  }
}

ScalarQuantizationConfig

object
typeScalarTypeint8required
quantilenumber<float> | null[0.5, 1]

Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values

always_ramboolean | nulldeprecated

Deprecated: use memory instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

Example
{
  "type": "int8",
  "quantile": 0.5,
  "always_ram": true,
  "memory": "cold"
}

ScalarType

string
ScalarTypeint8
Example
"int8"

ProductQuantization

object
productProductQuantizationConfigrequired
Show child attributes
compressionCompressionRatiox4x8x16x32x64required
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

Example
{
  "product": {
    "compression": "x4",
    "always_ram": true,
    "memory": "cold"
  }
}

ProductQuantizationConfig

object
compressionCompressionRatiox4x8x16x32x64required
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

Example
{
  "compression": "x4",
  "always_ram": true,
  "memory": "cold"
}

CompressionRatio

string
CompressionRatiox4x8x16x32x64
Example
"x4"

BinaryQuantization

object
binaryBinaryQuantizationConfigrequired
Show child attributes
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

encodingBinaryQuantizationEncoding | any
query_encodingBinaryQuantizationQueryEncoding | any

Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance.

Example
{
  "binary": {
    "always_ram": true,
    "memory": "cold",
    "encoding": "one_bit",
    "query_encoding": "default"
  }
}

BinaryQuantizationConfig

object
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

encodingBinaryQuantizationEncoding | any
query_encodingBinaryQuantizationQueryEncoding | any

Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance.

Example
{
  "always_ram": true,
  "memory": "cold",
  "encoding": "one_bit",
  "query_encoding": "default"
}

BinaryQuantizationEncoding

string
BinaryQuantizationEncodingone_bittwo_bitsone_and_half_bits
Example
"one_bit"

BinaryQuantizationQueryEncoding

string
BinaryQuantizationQueryEncodingdefaultbinaryscalar4bitsscalar8bits
Example
"default"

TurboQuantization

object
turboTurboQuantQuantizationConfigrequired
Show child attributes
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

bitsTurboQuantBitSize | any
Example
{
  "turbo": {
    "always_ram": true,
    "memory": "cold",
    "bits": "bits1"
  }
}

TurboQuantQuantizationConfig

object
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

bitsTurboQuantBitSize | any
Example
{
  "always_ram": true,
  "memory": "cold",
  "bits": "bits1"
}

TurboQuantBitSize

string
TurboQuantBitSizebits1bits1_5bits2bits4
Example
"bits1"

Datatype

string
Datatypefloat32uint8float16turbo4
Example
"float32"

MultiVectorConfig

object
comparatorMultiVectorComparatormax_simrequired
Example
{
  "comparator": "max_sim"
}

MultiVectorComparator

string
MultiVectorComparatormax_sim
Example
"max_sim"

ShardingMethod

string
ShardingMethodautocustom
Example
"auto"

PayloadStorageParams

object

Params of the payload storage

memoryMemory | any

Memory placement of the payload storage. Overrides the deprecated on_disk_payload flag if both are set. pinned is not supported for payload storage. Default: cold (cached if on_disk_payload is set to false).

Example
{
  "memory": "cold"
}

IdTrackerParams

object

Params of the point id tracker

memoryMemory | any

Memory placement of the point id mapping in indexed segments: cold keeps it on disk and reads it on demand, cached keeps it on disk but primes the page cache with it on load, pinned keeps it in RAM. Default: pinned.

Example
{
  "memory": "cold"
}

SparseVectorParams

object

Params of single sparse vector data storage

indexSparseIndexParams | any

Custom params for index. If none - values from collection configuration are used.

modifierModifier | any

Configures addition value modifications for sparse vectors. Default: none

Example
{
  "index": {
    "full_scan_threshold": 0,
    "on_disk": true,
    "memory": "cold",
    "datatype": "float32"
  },
  "modifier": "none"
}

SparseIndexParams

object

Configuration for sparse inverted index.

full_scan_thresholdinteger<uint> | null>= 0

We prefer a full scan search upto (excluding) this number of vectors.

Note: this is number of vectors, not KiloBytes.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store index on disk. If set to false, the index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

datatypeDatatype | any

Defines which datatype should be used for the index. Choosing different datatypes allows to optimize memory usage and performance vs accuracy.

  • For float32 datatype - vectors are stored as single-precision floating point numbers, 4 bytes. - For float16 datatype - vectors are stored as half-precision floating point numbers, 2 bytes. - For uint8 datatype - vectors are quantized to unsigned 8-bit integers, 1 byte. Quantization to fit byte range [0, 255] happens during indexing automatically, so the actual vector data does not need to conform to this range.
Example
{
  "full_scan_threshold": 0,
  "on_disk": true,
  "memory": "cold",
  "datatype": "float32"
}

Modifier

string

If used, include weight modification, which will be applied to sparse vectors at query time: None - no modification (default) Idf - inverse document frequency, based on statistics of the collection

Modifiernoneidf
Example
"none"

HnswConfig

object

Config of HNSW index

minteger<uint>>= 0required

Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.

ef_constructinteger<uint>>= 4required

Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index.

full_scan_thresholdinteger<uint>>= 0required

Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than full_scan_threshold_kb, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256

max_indexing_threadsinteger<uint>>= 00

Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of slow building or broken/inefficient HNSW graphs. On small CPUs, less threads are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store HNSW index on disk. If set to false, index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the HNSW graph. Overrides the deprecated on_disk flag if both are set. Default: cached (cold if on_disk is set to true).

payload_minteger<uint> | null>= 0

Custom M param for hnsw graph built for payload index. If not set, default M will be used.

inline_storageboolean | null

Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.

Example
{
  "m": 0,
  "ef_construct": 4,
  "full_scan_threshold": 0,
  "max_indexing_threads": 0,
  "on_disk": true,
  "memory": "cold",
  "payload_m": 0,
  "inline_storage": true
}

OptimizersConfig

object
deleted_thresholdnumber<double>[0, 1]0.2

The minimal fraction of deleted vectors in a segment, required to perform segment optimization

vacuum_min_vector_numberinteger<uint>>= 1001000

The minimal number of vectors in a segment, required to perform segment optimization

default_segment_numberinteger<uint>>= 0required

Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: - Amount of stored points - Current write RPS

It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads. If default_segment_number = 0, will be automatically selected by the number of available CPUs.

max_segment_sizeinteger<uint> | null>= 1null

Do not create segments larger than this size (in kilobytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.

If indexing speed is more important - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256 If not set, will be automatically selected considering the number of available CPUs.

memmap_thresholdinteger<uint> | null>= 0nulldeprecated

Maximum size (in kilobytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmapped file.

Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.

To disable memmap storage, set this to 0. Internally it will use the largest threshold possible.

Note: 1Kb = 1 vector of size 256

indexing_thresholdinteger<uint> | null>= 0null

Maximum size (in kilobytes) of vectors allowed for plain index, exceeding this threshold will enable vector indexing

Default value is 10,000, based on experiments and observations.

To disable vector indexing, set to 0.

Note: 1kB = 1 vector of size 256.

flush_interval_secinteger<uint64>>= 0required

Minimum interval between forced flushes.

max_optimization_threadsinteger<uint> | null>= 0null

Max number of threads (jobs) for running optimizations per shard. Note: each optimization job will also use max_indexing_threads threads by itself for index building. If null - have no limit and choose dynamically to saturate CPU. If 0 - no optimization threads, optimizations will be disabled.

prevent_unoptimizedboolean | nullnull

If enabled, the service will try to prevent the creation of large unoptimized segments. When enabled, new points written to segments larger than the indexing threshold are stored as "deferred points": they are persisted in the WAL and segments, but excluded from read/search results until the corresponding segments are optimized (e.g. indexed, quantized, or moved to mmap storage). Update requests with wait=true will only return after the deferred points become visible, which may significantly increase the perceived latency between submitting an update and its completion. Update requests with wait=false are not affected. Default is disabled.

Example
{
  "deleted_threshold": 0.2,
  "vacuum_min_vector_number": 1000,
  "default_segment_number": 0,
  "max_segment_size": null,
  "memmap_threshold": null,
  "indexing_threshold": null,
  "flush_interval_sec": 0,
  "max_optimization_threads": null,
  "prevent_unoptimized": null
}

WalConfig

object
wal_capacity_mbinteger<uint>>= 1required

Size of a single WAL segment in MB

wal_segments_aheadinteger<uint>>= 0required

Number of WAL segments to create ahead of actually used ones

wal_retain_closedinteger<uint>>= 11

Number of closed WAL segments to keep

Example
{
  "wal_capacity_mb": 1,
  "wal_segments_ahead": 0,
  "wal_retain_closed": 1
}

StrictModeConfigOutput

object
enabledboolean | null

Whether strict mode is enabled for a collection or not.

max_query_limitinteger<uint> | null>= 0

Max allowed limit parameter for all APIs that don't have their own max limit.

max_timeoutinteger<uint> | null>= 0

Max allowed timeout parameter.

unindexed_filtering_retrieveboolean | null

Allow usage of unindexed fields in retrieval based (e.g. search) filters.

unindexed_filtering_updateboolean | null

Allow usage of unindexed fields in filtered updates (e.g. delete by payload).

search_max_hnsw_efinteger<uint> | null>= 0

Max HNSW value allowed in search parameters.

search_allow_exactboolean | null

Whether exact search is allowed or not.

search_max_oversamplingnumber<double> | null

Max oversampling value allowed in search.

upsert_max_batchsizeinteger<uint> | null>= 0

Max batchsize when upserting

search_max_batchsizeinteger<uint> | null>= 0

Max batchsize when searching

max_collection_vector_size_bytesinteger<uint> | null>= 0

Max size of a collections vector storage in bytes, ignoring replicas.

read_rate_limitinteger<uint> | null>= 0

Max number of read operations per minute per replica

write_rate_limitinteger<uint> | null>= 0

Max number of write operations per minute per replica

max_collection_payload_size_bytesinteger<uint> | null>= 0

Max size of a collections payload storage in bytes

max_points_countinteger<uint> | null>= 0

Max number of points estimated in a collection

filter_max_conditionsinteger<uint> | null>= 0

Max conditions a filter can have.

condition_max_sizeinteger<uint> | null>= 0

Max size of a condition, eg. items in MatchAny.

multivector_configStrictModeMultivectorConfigOutput | any

Multivector configuration

sparse_configStrictModeSparseConfigOutput | any

Sparse vector configuration

max_payload_index_countinteger<uint> | null>= 0

Max number of payload indexes in a collection

max_resident_memory_percentinteger<uint8> | null>= 0deprecated

Deprecated: use the node-wide quota config instead. Reject memory-consuming update operations when resident memory exceeds this percentage of total RAM (1-100)

Example
{
  "enabled": true,
  "max_query_limit": 0,
  "max_timeout": 0,
  "unindexed_filtering_retrieve": true,
  "unindexed_filtering_update": true,
  "search_max_hnsw_ef": 0,
  "search_allow_exact": true,
  "search_max_oversampling": 0,
  "upsert_max_batchsize": 0,
  "search_max_batchsize": 0,
  "max_collection_vector_size_bytes": 0,
  "read_rate_limit": 0,
  "write_rate_limit": 0,
  "max_collection_payload_size_bytes": 0,
  "max_points_count": 0,
  "filter_max_conditions": 0,
  "condition_max_size": 0,
  "multivector_config": {},
  "sparse_config": {},
  "max_payload_index_count": 0,
  "max_resident_memory_percent": 0
}

StrictModeMultivectorConfigOutput

object
StrictModeMultivectorConfigOutput
Example
{}

StrictModeMultivectorOutput

object
max_vectorsinteger<uint> | null>= 0

Max number of vectors in a multivector

Example
{
  "max_vectors": 0
}

StrictModeSparseConfigOutput

object
StrictModeSparseConfigOutput
Example
{}

StrictModeSparseOutput

object
max_lengthinteger<uint> | null>= 0

Max length of sparse vector

Example
{
  "max_length": 0
}

Payload

object
Payload
Example
{
  "city": "London",
  "color": "green"
}

PayloadIndexInfo

object

Display payload field type & index information

data_typePayloadSchemaTypekeywordintegerfloatgeotextbooldatetimeuuidrequired

All possible names of payload types

paramsKeywordIndexParams | IntegerIndexParams | FloatIndexParams | GeoIndexParams | TextIndexParams | BoolIndexParams | DatetimeIndexParams | UuidIndexParams | any
pointsinteger<uint>>= 0required

Number of points indexed with this index

Example
{
  "data_type": "keyword",
  "params": {
    "type": "keyword",
    "is_tenant": true,
    "on_disk": true,
    "memory": "cold",
    "enable_hnsw": true,
    "prefix": true
  },
  "points": 0
}

PayloadSchemaType

string

All possible names of payload types

PayloadSchemaTypekeywordintegerfloatgeotextbooldatetimeuuid
Example
"keyword"

PayloadSchemaParams

object

Payload type with parameters

Any of
typeKeywordIndexTypekeywordrequired
is_tenantboolean | null

If true - used for tenant optimization. Default: false.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

prefixboolean | null

If true, enable prefix matching (match: { "prefix": ... }) on this field. Default: false.

typeIntegerIndexTypeintegerrequired
lookupboolean | null

If true - support direct lookups. Default is true.

rangeboolean | null

If true - support ranges filters. Default is true.

is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeFloatIndexTypefloatrequired
is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeGeoIndexTypegeorequired
on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeTextIndexTypetextrequired
tokenizerTokenizerTypeprefixwhitespacewordmultilingual
min_token_leninteger<uint> | null>= 0

Minimum characters to be tokenized.

max_token_leninteger<uint> | null>= 0

Maximum characters to be tokenized.

lowercaseboolean | null

If true, lowercase all tokens. Default: true.

ascii_foldingboolean | null

If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default: false.

phrase_matchingboolean | null

If true, support phrase matching. Default: false.

stopwordsLanguage | StopwordsSet | any

Ignore this set of tokens. Can select from predefined languages and/or provide a custom set.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

stemmerSnowballParams | DisabledStemmerParams | any

Algorithm for stemming. Default: disabled.

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeBoolIndexTypeboolrequired
on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeDatetimeIndexTypedatetimerequired
is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeUuidIndexTypeuuidrequired
is_tenantboolean | null

If true - used for tenant optimization.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "keyword",
  "is_tenant": true,
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true,
  "prefix": true
}

KeywordIndexParams

object
typeKeywordIndexTypekeywordrequired
is_tenantboolean | null

If true - used for tenant optimization. Default: false.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

prefixboolean | null

If true, enable prefix matching (match: { "prefix": ... }) on this field. Default: false.

Example
{
  "type": "keyword",
  "is_tenant": true,
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true,
  "prefix": true
}

KeywordIndexType

string
KeywordIndexTypekeyword
Example
"keyword"

IntegerIndexParams

object
typeIntegerIndexTypeintegerrequired
lookupboolean | null

If true - support direct lookups. Default is true.

rangeboolean | null

If true - support ranges filters. Default is true.

is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "integer",
  "lookup": true,
  "range": true,
  "is_principal": true,
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true
}

IntegerIndexType

string
IntegerIndexTypeinteger
Example
"integer"

FloatIndexParams

object
typeFloatIndexTypefloatrequired
is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "float",
  "is_principal": true,
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true
}

FloatIndexType

string
FloatIndexTypefloat
Example
"float"

GeoIndexParams

object
typeGeoIndexTypegeorequired
on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "geo",
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true
}

GeoIndexType

string
GeoIndexTypegeo
Example
"geo"

TextIndexParams

object
typeTextIndexTypetextrequired
tokenizerTokenizerTypeprefixwhitespacewordmultilingual
min_token_leninteger<uint> | null>= 0

Minimum characters to be tokenized.

max_token_leninteger<uint> | null>= 0

Maximum characters to be tokenized.

lowercaseboolean | null

If true, lowercase all tokens. Default: true.

ascii_foldingboolean | null

If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default: false.

phrase_matchingboolean | null

If true, support phrase matching. Default: false.

stopwordsLanguage | StopwordsSet | any

Ignore this set of tokens. Can select from predefined languages and/or provide a custom set.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

stemmerSnowballParams | DisabledStemmerParams | any

Algorithm for stemming. Default: disabled.

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "text",
  "tokenizer": "prefix",
  "min_token_len": 0,
  "max_token_len": 0,
  "lowercase": true,
  "ascii_folding": true,
  "phrase_matching": true,
  "stopwords": "arabic",
  "on_disk": true,
  "memory": "cold",
  "stemmer": {
    "type": "snowball",
    "language": "arabic"
  },
  "enable_hnsw": true
}

TextIndexType

string
TextIndexTypetext
Example
"text"

TokenizerType

string
TokenizerTypeprefixwhitespacewordmultilingual
Example
"prefix"

StopwordsInterface

object
Any of
Languagearabicazerbaijanibasquebengalicatalanchinesedanishdutchenglishfinnishfrenchgermangreekhebrewhinglishhungarianindonesianitalianjapanesekazakhnepalinorwegianportugueseromanianrussianslovenespanishswedishtajikturkish
languagesArray<Language> | nullarabicazerbaijanibasquebengalicatalanchinesedanishdutchenglishfinnishfrenchgermangreekhebrewhinglishhungarianindonesianitalianjapanesekazakhnepalinorwegianportugueseromanianrussianslovenespanishswedishtajikturkish

Set of languages to use for stopwords. Multiple pre-defined lists of stopwords can be combined.

customArray<string> | null

Custom stopwords set. Will be merged with the languages set.

Example
"arabic"

Language

string
Languagearabicazerbaijanibasquebengalicatalanchinesedanishdutchenglishfinnishfrenchgermangreekhebrewhinglishhungarianindonesianitalianjapanesekazakhnepalinorwegianportugueseromanianrussianslovenespanishswedishtajikturkish
Example
"arabic"

StopwordsSet

object
languagesArray<Language> | nullarabicazerbaijanibasquebengalicatalanchinesedanishdutchenglishfinnishfrenchgermangreekhebrewhinglishhungarianindonesianitalianjapanesekazakhnepalinorwegianportugueseromanianrussianslovenespanishswedishtajikturkish

Set of languages to use for stopwords. Multiple pre-defined lists of stopwords can be combined.

customArray<string> | null

Custom stopwords set. Will be merged with the languages set.

Example
{
  "languages": [
    "arabic"
  ],
  "custom": [
    "string"
  ]
}

StemmingAlgorithm

object

Different stemming algorithms with their configs.

Any of
typeSnowballsnowballrequired
languageSnowballLanguagearabicarmeniandanishdutchenglishfinnishfrenchgermangreekhungarianitaliannorwegianportugueseromanianrussianspanishswedishtamilturkishrequired

Languages supported by snowball stemmer.

typeNoStemmernonerequired

Tag selecting the explicit "no stemming" algorithm.

Example
{
  "type": "snowball",
  "language": "arabic"
}

SnowballParams

object
typeSnowballsnowballrequired
languageSnowballLanguagearabicarmeniandanishdutchenglishfinnishfrenchgermangreekhungarianitaliannorwegianportugueseromanianrussianspanishswedishtamilturkishrequired

Languages supported by snowball stemmer.

Example
{
  "type": "snowball",
  "language": "arabic"
}

Snowball

string
Snowballsnowball
Example
"snowball"

SnowballLanguage

string

Languages supported by snowball stemmer.

SnowballLanguagearabicarmeniandanishdutchenglishfinnishfrenchgermangreekhungarianitaliannorwegianportugueseromanianrussianspanishswedishtamilturkish
Example
"arabic"

DisabledStemmerParams

object
typeNoStemmernonerequired

Tag selecting the explicit "no stemming" algorithm.

Example
{
  "type": "none"
}

NoStemmer

string

Tag selecting the explicit "no stemming" algorithm.

NoStemmernone
Example
"none"

BoolIndexParams

object
typeBoolIndexTypeboolrequired
on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "bool",
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true
}

BoolIndexType

string
BoolIndexTypebool
Example
"bool"

DatetimeIndexParams

object
typeDatetimeIndexTypedatetimerequired
is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "datetime",
  "is_principal": true,
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true
}

DatetimeIndexType

string
DatetimeIndexTypedatetime
Example
"datetime"

UuidIndexParams

object
typeUuidIndexTypeuuidrequired
is_tenantboolean | null

If true - used for tenant optimization.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
{
  "type": "uuid",
  "is_tenant": true,
  "on_disk": true,
  "memory": "cold",
  "enable_hnsw": true
}

UuidIndexType

string
UuidIndexTypeuuid
Example
"uuid"

UpdateQueueInfo

object
lengthinteger<uint>>= 0required

Number of elements in the queue

deferred_pointsinteger<uint> | null>= 0

Number of points that are deferred (i.e hidden from search as they're not yet optimized).

Example
{
  "length": 0,
  "deferred_points": 0
}

PointRequest

object
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any

Specify in which shards to look for the points, if not specified - look in all shards

idsArray<ExtendedPointId>required

Look for points with ids

Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | any

Select which payload to return with the response. Default is true.

with_vectorboolean | Array<string>

Options for specifying which vector to include

Example
{
  "shard_key": "region_1",
  "ids": [
    42
  ],
  "with_payload": true,
  "with_vector": true
}

ShardKeySelector

object
Any of
Any of
string
integer<uint64>>= 0
Array<ShardKey>
targetstring | integerrequired
fallbackstring | integerrequired
Example
"region_1"

ShardKey

object
Any of
string
integer<uint64>>= 0
Example
"region_1"

ShardKeyWithFallback

object
targetstring | integerrequired
fallbackstring | integerrequired
Example
{
  "target": "region_1",
  "fallback": "region_1"
}

ExtendedPointId

object

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
Example
42

WithPayloadInterface

object

Options for specifying which payload to include or not

Any of

If true - return all payload, If false - do not return payload

boolean
Array<string>

Specifies how to treat payload selector

Any of
includeArray<string>required

Only include this payload keys

excludeArray<string>required

Exclude this fields from returning payload

Example
true

PayloadSelector

object

Specifies how to treat payload selector

Any of
includeArray<string>required

Only include this payload keys

excludeArray<string>required

Exclude this fields from returning payload

Example
{
  "include": [
    "string"
  ]
}

PayloadSelectorInclude

object
includeArray<string>required

Only include this payload keys

Example
{
  "include": [
    "string"
  ]
}

PayloadSelectorExclude

object
excludeArray<string>required

Exclude this fields from returning payload

Example
{
  "exclude": [
    "string"
  ]
}

WithVector

object

Options for specifying which vector to include

Any of

If true - return all vector, If false - do not return vector

boolean
Array<string>
Example
true

Record

object

Point data

idinteger | stringrequired

Type, used for specifying point ID in user interface

payloadPayload | any

Payload - values assigned to the point

vectorArray<number> | Array<Array<number>> | object | any

Vector of the point

shard_keystring | integer | any

Shard Key

order_valueinteger | number | any
Example
{
  "id": 42,
  "payload": {
    "city": "London",
    "color": "green"
  },
  "vector": [
    0.875,
    0.140625,
    0.897599995136261
  ],
  "shard_key": "region_1",
  "order_value": 42
}

VectorStructOutput

object

Vector data stored in Point

Any of
Array<number>
Array<Array<number>>
object
Example
[
  0.875,
  0.140625,
  0.897599995136261
]

VectorOutput

object

Vector Data stored in Point

Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>
Example
[
  0
]

SparseVector

object

Sparse vector structure

indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Example
{
  "indices": [
    0
  ],
  "values": [
    0
  ]
}

OrderValue

object
Any of
integer<int64>
number<double>
Example
42

ScoredPoint

object

Search result

idinteger | stringrequired

Type, used for specifying point ID in user interface

versioninteger<uint64>>= 0required

Point version

scorenumber<float>required

Points vector distance to the query vector

payloadPayload | any

Payload - values assigned to the point

vectorArray<number> | Array<Array<number>> | object | any

Vector of the point

shard_keystring | integer | any

Shard Key

order_valueinteger | number | any

Order-by value

Example
{
  "id": 42,
  "version": 3,
  "score": 0.75,
  "payload": {
    "city": "London",
    "color": "green"
  },
  "vector": [
    0.875,
    0.140625,
    0.897599995136261
  ],
  "shard_key": "region_1",
  "order_value": 42
}

UpdateResult

object
operation_idinteger<uint64> | null>= 0

Sequential number of the operation

statusUpdateStatusacknowledgedcompletedwait_timeoutrequired

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.

Example
{
  "operation_id": 0,
  "status": "acknowledged"
}

UpdateStatus

string

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.

UpdateStatusacknowledgedcompletedwait_timeout
Example
"acknowledged"

ScrollRequest

object

Scroll request - paginate over all points which matches given condition

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any

Specify in which shards to look for the points, if not specified - look in all shards

offsetinteger | string | any

Start ID to read points from.

limitinteger<uint> | null>= 1

Page size. Default: 10

filterFilter | any

Look only for points which satisfies this conditions. If not provided - all points.

with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | any

Select which payload to return with the response. Default is true.

with_vectorboolean | Array<string>

Options for specifying which vector to include

order_bystring | OrderBy | any

Order the records by a payload field.

Example
{
  "shard_key": "region_1",
  "offset": 42,
  "limit": 1,
  "with_payload": true,
  "with_vector": true,
  "order_by": "string"
}

Filter

object
shouldCondition | Array<Condition> | any

At least one of those conditions should match

min_shouldany | any

At least minimum amount of given conditions should match

mustCondition | Array<Condition> | any

All conditions must match

must_notCondition | Array<Condition> | any

All conditions must NOT match

Example
{}

Condition

object
Any of
keystringrequired

Payload key

matchMatchValue | MatchText | MatchTextAny | MatchPhrase | MatchPrefix | MatchSubstring | MatchAny | MatchExcept | any

Check if point has field with a given value

rangeRange | DatetimeRange | any

Check if points value lies in a given range

geo_bounding_boxGeoBoundingBox | any

Check if points geolocation lies in a given area

geo_radiusGeoRadius | any

Check if geo point is within a given radius

geo_polygonGeoPolygon | any

Check if geo point is within a given polygon

values_countValuesCount | any

Check number of values of the field

is_emptyboolean | null

Check that the field is empty, alternative syntax for is_empty: "field_name"

is_nullboolean | null

Check that the field is null, alternative syntax for is_null: "field_name"

is_emptyPayloadFieldrequired

Payload field

Show child attributes
keystringrequired

Payload field name

is_nullPayloadFieldrequired

Payload field

Show child attributes
keystringrequired

Payload field name

has_idArray<ExtendedPointId>required
Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
has_vectorstringrequired
sliceSlicerequired

One of total disjoint deterministic slices of the id space.

A point belongs to the slice iff hash(id) % total == index, where hash is SipHash-2-4 with a zero key over the canonical id bytes: 8 little-endian bytes for numeric ids, the 16 RFC 4122 bytes for UUIDs. For a fixed total, slices 0..total are disjoint and together cover all points; membership is uniform regardless of the id scheme and stable across queries, segments, platforms and Qdrant versions.

Slices with different total values are correlated (same hash, no salt): e.g. slice 0 of total: 4 is a strict subset of slice 0 of total: 2. This keeps a smaller sample contained in a larger one.

Show child attributes
totalinteger<uint32>>= 1required

Total number of disjoint slices the id space is split into

indexinteger<uint32>>= 0required

Which slice to select, must be in 0..total

any
Filter
Example
{
  "key": "string",
  "match": {
    "value": "string"
  },
  "range": {
    "lt": 0,
    "gt": 0,
    "gte": 0,
    "lte": 0
  },
  "geo_bounding_box": {
    "top_left": {
      "lon": 0,
      "lat": 0
    },
    "bottom_right": {
      "lon": 0,
      "lat": 0
    }
  },
  "geo_radius": {
    "center": {
      "lon": 0,
      "lat": 0
    },
    "radius": 0
  },
  "geo_polygon": {
    "exterior": {
      "points": [
        {
          "lon": 0,
          "lat": 0
        }
      ]
    },
    "interiors": [
      {
        "points": [
          {
            "lon": 0,
            "lat": 0
          }
        ]
      }
    ]
  },
  "values_count": {
    "lt": 0,
    "gt": 0,
    "gte": 0,
    "lte": 0
  },
  "is_empty": true,
  "is_null": true
}

FieldCondition

object

All possible payload filtering conditions

keystringrequired

Payload key

matchMatchValue | MatchText | MatchTextAny | MatchPhrase | MatchPrefix | MatchSubstring | MatchAny | MatchExcept | any

Check if point has field with a given value

rangeRange | DatetimeRange | any

Check if points value lies in a given range

geo_bounding_boxGeoBoundingBox | any

Check if points geolocation lies in a given area

geo_radiusGeoRadius | any

Check if geo point is within a given radius

geo_polygonGeoPolygon | any

Check if geo point is within a given polygon

values_countValuesCount | any

Check number of values of the field

is_emptyboolean | null

Check that the field is empty, alternative syntax for is_empty: "field_name"

is_nullboolean | null

Check that the field is null, alternative syntax for is_null: "field_name"

Example
{
  "key": "string",
  "match": {
    "value": "string"
  },
  "range": {
    "lt": 0,
    "gt": 0,
    "gte": 0,
    "lte": 0
  },
  "geo_bounding_box": {
    "top_left": {
      "lon": 0,
      "lat": 0
    },
    "bottom_right": {
      "lon": 0,
      "lat": 0
    }
  },
  "geo_radius": {
    "center": {
      "lon": 0,
      "lat": 0
    },
    "radius": 0
  },
  "geo_polygon": {
    "exterior": {
      "points": [
        {
          "lon": 0,
          "lat": 0
        }
      ]
    },
    "interiors": [
      {
        "points": [
          {
            "lon": 0,
            "lat": 0
          }
        ]
      }
    ]
  },
  "values_count": {
    "lt": 0,
    "gt": 0,
    "gte": 0,
    "lte": 0
  },
  "is_empty": true,
  "is_null": true
}

Match

object

Match filter request

Any of
valuestring | integer | booleanrequired
textstringrequired
text_anystringrequired
phrasestringrequired
prefixstringrequired
substringstringrequired
anyArray<string> | Array<integer>required
exceptArray<string> | Array<integer>required
Example
{
  "value": "string"
}

MatchValue

object

Exact match of the given value

valuestring | integer | booleanrequired
Example
{
  "value": "string"
}

ValueVariants

object
Any of
string
integer<int64>
boolean
Example
"string"

MatchText

object

Full-text match of the strings.

textstringrequired
Example
{
  "text": "string"
}

MatchTextAny

object

Full-text match of at least one token of the string.

text_anystringrequired
Example
{
  "text_any": "string"
}

MatchPhrase

object

Full-text phrase match of the string.

phrasestringrequired
Example
{
  "phrase": "string"
}

MatchPrefix

object

Match keyword values that start with the given string.

Byte-wise (hence, for valid UTF-8, character-wise) and case-sensitive, consistent with exact keyword matching. Served efficiently by a keyword index created with the prefix option.

prefixstringrequired
Example
{
  "prefix": "string"
}

MatchSubstring

object

Match keyword values that contain the given string.

Byte-wise (hence, for valid UTF-8, character-wise) and case-sensitive, consistent with exact keyword and prefix matching. Served by a keyword index with the prefix option, through a scan of its key dictionary; without one, falls back to reading the payload.

substringstringrequired
Example
{
  "substring": "string"
}

MatchAny

object

Exact match on any of the given values

anyArray<string> | Array<integer>required
Example
{
  "any": [
    "string"
  ]
}

AnyVariants

object
Any of
Array<string>
Array<integer>
Example
[
  "string"
]

MatchExcept

object

Should have at least one value not matching the any given values

exceptArray<string> | Array<integer>required
Example
{
  "except": [
    "string"
  ]
}

RangeInterface

object
Any of
ltnumber<double> | null

point.key < range.lt

gtnumber<double> | null

point.key > range.gt

gtenumber<double> | null

point.key >= range.gte

ltenumber<double> | null

point.key <= range.lte

ltstring<date-time> | null

point.key < range.lt

gtstring<date-time> | null

point.key > range.gt

gtestring<date-time> | null

point.key >= range.gte

ltestring<date-time> | null

point.key <= range.lte

Example
{
  "lt": 0,
  "gt": 0,
  "gte": 0,
  "lte": 0
}

Range

object

Range filter request

ltnumber<double> | null

point.key < range.lt

gtnumber<double> | null

point.key > range.gt

gtenumber<double> | null

point.key >= range.gte

ltenumber<double> | null

point.key <= range.lte

Example
{
  "lt": 0,
  "gt": 0,
  "gte": 0,
  "lte": 0
}

DatetimeRange

object

Range filter request

ltstring<date-time> | null

point.key < range.lt

gtstring<date-time> | null

point.key > range.gt

gtestring<date-time> | null

point.key >= range.gte

ltestring<date-time> | null

point.key <= range.lte

Example
{
  "lt": "2024-01-15T09:30:00Z",
  "gt": "2024-01-15T09:30:00Z",
  "gte": "2024-01-15T09:30:00Z",
  "lte": "2024-01-15T09:30:00Z"
}

GeoBoundingBox

object

Geo filter request

Matches coordinates inside the rectangle, described by coordinates of lop-left and bottom-right edges

top_leftGeoPointrequired

Geo point payload schema

Show child attributes
lonnumber<double>required
latnumber<double>required
bottom_rightGeoPointrequired

Geo point payload schema

Show child attributes
lonnumber<double>required
latnumber<double>required
Example
{
  "top_left": {
    "lon": 0,
    "lat": 0
  },
  "bottom_right": {
    "lon": 0,
    "lat": 0
  }
}

GeoPoint

object

Geo point payload schema

lonnumber<double>required
latnumber<double>required
Example
{
  "lon": 0,
  "lat": 0
}

GeoRadius

object

Geo filter request

Matches coordinates inside the circle of radius and center with coordinates center

centerGeoPointrequired

Geo point payload schema

Show child attributes
lonnumber<double>required
latnumber<double>required
radiusnumber<double>required

Radius of the area in meters

Example
{
  "center": {
    "lon": 0,
    "lat": 0
  },
  "radius": 0
}

GeoPolygon

object

Geo filter request

Matches coordinates inside the polygon, defined by exterior and interiors

exteriorGeoLineStringrequired

Ordered sequence of GeoPoints representing the line

Show child attributes
pointsArray<GeoPoint>required
Show child attributes
lonnumber<double>required
latnumber<double>required
interiorsArray<GeoLineString> | null

Interior lines (if present) bound holes within the surface each GeoLineString must consist of a minimum of 4 points, and the first and last points must be the same.

Show child attributes
pointsArray<GeoPoint>required
Show child attributes
lonnumber<double>required
latnumber<double>required
Example
{
  "exterior": {
    "points": [
      {
        "lon": 0,
        "lat": 0
      }
    ]
  },
  "interiors": [
    {
      "points": [
        {
          "lon": 0,
          "lat": 0
        }
      ]
    }
  ]
}

GeoLineString

object

Ordered sequence of GeoPoints representing the line

pointsArray<GeoPoint>required
Show child attributes
lonnumber<double>required
latnumber<double>required
Example
{
  "points": [
    {
      "lon": 0,
      "lat": 0
    }
  ]
}

ValuesCount

object

Values count filter request

ltinteger<uint> | null>= 0

point.key.length() < values_count.lt

gtinteger<uint> | null>= 0

point.key.length() > values_count.gt

gteinteger<uint> | null>= 0

point.key.length() >= values_count.gte

lteinteger<uint> | null>= 0

point.key.length() <= values_count.lte

Example
{
  "lt": 0,
  "gt": 0,
  "gte": 0,
  "lte": 0
}

IsEmptyCondition

object

Select points with empty payload for a specified field

is_emptyPayloadFieldrequired

Payload field

Show child attributes
keystringrequired

Payload field name

Example
{
  "is_empty": {
    "key": "string"
  }
}

PayloadField

object

Payload field

keystringrequired

Payload field name

Example
{
  "key": "string"
}

IsNullCondition

object

Select points with null payload for a specified field

is_nullPayloadFieldrequired

Payload field

Show child attributes
keystringrequired

Payload field name

Example
{
  "is_null": {
    "key": "string"
  }
}

HasIdCondition

object

ID-based filtering condition

has_idArray<ExtendedPointId>required
Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
Example
{
  "has_id": [
    42
  ]
}

HasVectorCondition

object

Filter points which have specific vector assigned

has_vectorstringrequired
Example
{
  "has_vector": "string"
}

SliceCondition

object

Select points that fall into one of total disjoint deterministic slices of the id space, for parallel scans and reproducible sampling.

sliceSlicerequired

One of total disjoint deterministic slices of the id space.

A point belongs to the slice iff hash(id) % total == index, where hash is SipHash-2-4 with a zero key over the canonical id bytes: 8 little-endian bytes for numeric ids, the 16 RFC 4122 bytes for UUIDs. For a fixed total, slices 0..total are disjoint and together cover all points; membership is uniform regardless of the id scheme and stable across queries, segments, platforms and Qdrant versions.

Slices with different total values are correlated (same hash, no salt): e.g. slice 0 of total: 4 is a strict subset of slice 0 of total: 2. This keeps a smaller sample contained in a larger one.

Show child attributes
totalinteger<uint32>>= 1required

Total number of disjoint slices the id space is split into

indexinteger<uint32>>= 0required

Which slice to select, must be in 0..total

Example
{
  "slice": {
    "total": 1,
    "index": 0
  }
}

Slice

object

One of total disjoint deterministic slices of the id space.

A point belongs to the slice iff hash(id) % total == index, where hash is SipHash-2-4 with a zero key over the canonical id bytes: 8 little-endian bytes for numeric ids, the 16 RFC 4122 bytes for UUIDs. For a fixed total, slices 0..total are disjoint and together cover all points; membership is uniform regardless of the id scheme and stable across queries, segments, platforms and Qdrant versions.

Slices with different total values are correlated (same hash, no salt): e.g. slice 0 of total: 4 is a strict subset of slice 0 of total: 2. This keeps a smaller sample contained in a larger one.

totalinteger<uint32>>= 1required

Total number of disjoint slices the id space is split into

indexinteger<uint32>>= 0required

Which slice to select, must be in 0..total

Example
{
  "total": 1,
  "index": 0
}

NestedCondition

object
nestedanyrequired
Example
{}

Nested

object

Select points with payload for a specified nested field

keystringrequired
filterFilterrequired
Example
{
  "key": "string"
}

MinShould

object
conditionsArray<Condition>required
min_countinteger<uint>>= 1required
Example
{
  "conditions": [],
  "min_count": 1
}

OrderByInterface

object
Any of
string
keystringrequired

Payload key to order by

directionDirection | any

Direction of ordering: asc or desc. Default is ascending.

start_frominteger | number | string | any

Which payload value to start scrolling from. Default is the lowest value for asc and the highest for desc

Example
"string"

OrderBy

object
keystringrequired

Payload key to order by

directionDirection | any

Direction of ordering: asc or desc. Default is ascending.

start_frominteger | number | string | any

Which payload value to start scrolling from. Default is the lowest value for asc and the highest for desc

Example
{
  "key": "string",
  "direction": "asc",
  "start_from": 0
}

Direction

string
Directionascdesc
Example
"asc"

StartFrom

object
Any of
integer<int64>
number<double>
string<date-time>
Example
0

ScrollResult

object

Result of the points read request

pointsArray<Record>required

List of retrieved points

Show child attributes
idinteger | stringrequired

Type, used for specifying point ID in user interface

payloadPayload | any

Payload - values assigned to the point

vectorArray<number> | Array<Array<number>> | object | any

Vector of the point

shard_keystring | integer | any

Shard Key

order_valueinteger | number | any
next_page_offsetinteger | string | any

Offset which should be used to retrieve a next page result

Example
{
  "points": [
    {
      "id": 40,
      "payload": {
        "city": "London",
        "color": "green"
      },
      "vector": [
        0.875,
        0.140625,
        0.897599995136261
      ],
      "shard_key": "region_1"
    },
    {
      "id": 41,
      "payload": {
        "city": "Paris",
        "color": "red"
      },
      "vector": [
        0.75,
        0.640625,
        0.8945000171661377
      ],
      "shard_key": "region_1"
    }
  ],
  "next_page_offset": 42
}

CreateCollection

object

Operation for creating new collection and (optionally) specify index params

vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32> | null>= 1null

For auto sharding: Number of shards in collection. - Default is 1 for standalone, otherwise equal to the number of nodes - Minimum is 1

For custom sharding: Number of shards in collection per shard group. - Default is 1, meaning that each shard key will be mapped to a single shard - Minimum is 1

sharding_methodShardingMethod | anynull

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32> | null>= 1null

Number of shards replicas. Default is 1 Minimum is 1

write_consistency_factorinteger<uint32> | null>= 1null

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

on_disk_payloadboolean | nullnulldeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | anynull

Configuration of the payload storage

id_trackerIdTrackerParams | anynull

Configuration of the point id tracker

hnsw_configHnswConfigDiff | any

Custom params for HNSW index. If none - values from service configuration file are used.

wal_configWalConfigDiff | any

Custom params for WAL. If none - values from service configuration file are used.

optimizers_configOptimizersConfigDiff | any

Custom params for Optimizers. If none - values from service configuration file are used.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | anynull

Quantization parameters. If none - quantization is disabled.

sparse_vectorsobject | null

Sparse vector data config.

strict_mode_configStrictModeConfig | any

Strict-mode config.

metadataPayload | any

Arbitrary JSON metadata for the collection This can be used to store application-specific information such as creation time, migration data, inference model info, etc.

Example
{
  "vectors": {
    "size": 1,
    "distance": "Cosine",
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 10,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "quantization_config": {
      "scalar": {
        "type": "int8",
        "quantile": 0.5,
        "always_ram": true,
        "memory": "cold"
      }
    },
    "on_disk": true,
    "memory": "cold",
    "datatype": "float32",
    "multivector_config": {
      "comparator": "max_sim"
    }
  },
  "shard_number": null,
  "sharding_method": null,
  "replication_factor": null,
  "write_consistency_factor": null,
  "on_disk_payload": null,
  "payload": null,
  "id_tracker": null,
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "wal_config": {
    "wal_capacity_mb": 1,
    "wal_segments_ahead": 0,
    "wal_retain_closed": 0
  },
  "optimizers_config": {
    "deleted_threshold": 0,
    "vacuum_min_vector_number": 100,
    "default_segment_number": 0,
    "max_segment_size": 1,
    "memmap_threshold": 0,
    "indexing_threshold": 0,
    "flush_interval_sec": 0,
    "max_optimization_threads": "auto",
    "prevent_unoptimized": null
  },
  "quantization_config": null,
  "sparse_vectors": {},
  "strict_mode_config": {
    "enabled": true,
    "max_query_limit": 1,
    "max_timeout": 1,
    "unindexed_filtering_retrieve": true,
    "unindexed_filtering_update": true,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": true,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 1,
    "write_rate_limit": 1,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 1,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 1
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}

WalConfigDiff

object
wal_capacity_mbinteger<uint> | null>= 1

Size of a single WAL segment in MB

wal_segments_aheadinteger<uint> | null>= 0

Number of WAL segments to create ahead of actually used ones

wal_retain_closedinteger<uint> | null>= 0

Number of closed WAL segments to retain

Example
{
  "wal_capacity_mb": 1,
  "wal_segments_ahead": 0,
  "wal_retain_closed": 0
}

OptimizersConfigDiff

object
deleted_thresholdnumber<double> | null[0, 1]

The minimal fraction of deleted vectors in a segment, required to perform segment optimization

vacuum_min_vector_numberinteger<uint> | null>= 100

The minimal number of vectors in a segment, required to perform segment optimization

default_segment_numberinteger<uint> | null>= 0

Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: - Amount of stored points - Current write RPS

It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads If default_segment_number = 0, will be automatically selected by the number of available CPUs

max_segment_sizeinteger<uint> | null>= 1

Do not create segments larger than this size (in kilobytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.

If indexation speed have more priority for your - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256

memmap_thresholdinteger<uint> | null>= 0deprecated

Maximum size (in kilobytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmapped file.

Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.

To disable memmap storage, set this to 0.

Note: 1Kb = 1 vector of size 256

Deprecated since Qdrant 1.15.0

indexing_thresholdinteger<uint> | null>= 0

Maximum size (in kilobytes) of vectors allowed for plain index, exceeding this threshold will enable vector indexing

Default value is 20,000, based on https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md.

To disable vector indexing, set to 0.

Note: 1kB = 1 vector of size 256.

flush_interval_secinteger<uint64> | null>= 0

Minimum interval between forced flushes.

max_optimization_threadsMaxOptimizationThreadsSetting | integer | any

Max number of threads (jobs) for running optimizations per shard. Note: each optimization job will also use max_indexing_threads threads by itself for index building. If "auto" - have no limit and choose dynamically to saturate CPU. If 0 - no optimization threads, optimizations will be disabled.

prevent_unoptimizedboolean | nullnull

If enabled, the service will try to prevent the creation of large unoptimized segments. When enabled, new points written to segments larger than the indexing threshold are stored as "deferred points": they are persisted in the WAL and segments, but excluded from read/search results until the corresponding segments are optimized (e.g. indexed, quantized, or moved to mmap storage). Update requests with wait=true will only return after the deferred points become visible, which may significantly increase the perceived latency between submitting an update and its completion. Update requests with wait=false are not affected. Default is disabled.

Example
{
  "deleted_threshold": 0,
  "vacuum_min_vector_number": 100,
  "default_segment_number": 0,
  "max_segment_size": 1,
  "memmap_threshold": 0,
  "indexing_threshold": 0,
  "flush_interval_sec": 0,
  "max_optimization_threads": "auto",
  "prevent_unoptimized": null
}

MaxOptimizationThreads

object
Any of
MaxOptimizationThreadsSettingauto
integer<uint>>= 0
Example
"auto"

MaxOptimizationThreadsSetting

string
MaxOptimizationThreadsSettingauto
Example
"auto"

StrictModeConfig

object
enabledboolean | null

Whether strict mode is enabled for a collection or not.

max_query_limitinteger<uint> | null>= 1

Max allowed limit parameter for all APIs that don't have their own max limit.

max_timeoutinteger<uint> | null>= 1

Max allowed timeout parameter.

unindexed_filtering_retrieveboolean | null

Allow usage of unindexed fields in retrieval based (e.g. search) filters.

unindexed_filtering_updateboolean | null

Allow usage of unindexed fields in filtered updates (e.g. delete by payload).

search_max_hnsw_efinteger<uint> | null>= 0

Max HNSW ef value allowed in search parameters.

search_allow_exactboolean | null

Whether exact search is allowed.

search_max_oversamplingnumber<double> | null

Max oversampling value allowed in search.

upsert_max_batchsizeinteger<uint> | null>= 0

Max batchsize when upserting

search_max_batchsizeinteger<uint> | null>= 0

Max batchsize when searching

max_collection_vector_size_bytesinteger<uint> | null>= 0

Max size of a collections vector storage in bytes, ignoring replicas.

read_rate_limitinteger<uint> | null>= 1

Max number of read operations per minute per replica

write_rate_limitinteger<uint> | null>= 1

Max number of write operations per minute per replica

max_collection_payload_size_bytesinteger<uint> | null>= 0

Max size of a collections payload storage in bytes

max_points_countinteger<uint> | null>= 1

Max number of points estimated in a collection

filter_max_conditionsinteger<uint> | null>= 0

Max conditions a filter can have.

condition_max_sizeinteger<uint> | null>= 0

Max size of a condition, eg. items in MatchAny.

multivector_configStrictModeMultivectorConfig | any

Multivector strict mode configuration

sparse_configStrictModeSparseConfig | any

Sparse vector strict mode configuration

max_payload_index_countinteger<uint> | null>= 0

Max number of payload indexes in a collection

max_resident_memory_percentinteger<uint8> | null[1, 100]deprecated

Deprecated: use the node-wide quota config (PUT /quotas) instead, which caps the same resource for every collection. Scheduled for removal in 1.21.

Reject memory-consuming update operations (e.g. upsert, set payload) when the process resident memory exceeds this percentage of total system memory (or cgroup limit). Value in [1, 100]. Memory is a node-wide resource, so this only tightens the quota for one collection; it cannot lift it. Delete operations are not affected, so callers can still free memory.

Example
{
  "enabled": true,
  "max_query_limit": 1,
  "max_timeout": 1,
  "unindexed_filtering_retrieve": true,
  "unindexed_filtering_update": true,
  "search_max_hnsw_ef": 0,
  "search_allow_exact": true,
  "search_max_oversampling": 0,
  "upsert_max_batchsize": 0,
  "search_max_batchsize": 0,
  "max_collection_vector_size_bytes": 0,
  "read_rate_limit": 1,
  "write_rate_limit": 1,
  "max_collection_payload_size_bytes": 0,
  "max_points_count": 1,
  "filter_max_conditions": 0,
  "condition_max_size": 0,
  "multivector_config": {},
  "sparse_config": {},
  "max_payload_index_count": 0,
  "max_resident_memory_percent": 1
}

StrictModeMultivectorConfig

object
StrictModeMultivectorConfig
Example
{}

StrictModeMultivector

object
max_vectorsinteger<uint> | null>= 1

Max number of vectors in a multivector

Example
{
  "max_vectors": 1
}

StrictModeSparseConfig

object
StrictModeSparseConfig
Example
{}

StrictModeSparse

object
max_lengthinteger<uint> | null>= 1

Max length of sparse vector

Example
{
  "max_length": 1
}

UpdateCollection

object

Operation for updating parameters of the existing collection

vectorsVectorsConfigDiff | any

Map of vector data parameters to update for each named vector. To update parameters in a collection having a single unnamed vector, use an empty string as name.

optimizers_configOptimizersConfigDiff | any

Custom params for Optimizers. If none - it is left unchanged. This operation is blocking, it will only proceed once all current optimizations are complete

paramsCollectionParamsDiff | any

Collection base params. If none - it is left unchanged.

hnsw_configHnswConfigDiff | any

HNSW parameters to update for the collection index. If none - it is left unchanged.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | Disabled | anynull

Quantization parameters to update. If none - it is left unchanged.

sparse_vectorsSparseVectorsConfig | any

Map of sparse vector data parameters to update for each sparse vector.

strict_mode_configStrictModeConfig | any
metadataPayload | any

Metadata to update for the collection. If provided, this will merge with existing metadata. Individual keys can be removed by setting their value to null.

Example
{
  "vectors": {},
  "optimizers_config": {
    "deleted_threshold": 0,
    "vacuum_min_vector_number": 100,
    "default_segment_number": 0,
    "max_segment_size": 1,
    "memmap_threshold": 0,
    "indexing_threshold": 0,
    "flush_interval_sec": 0,
    "max_optimization_threads": "auto",
    "prevent_unoptimized": null
  },
  "params": {
    "replication_factor": 1,
    "write_consistency_factor": 1,
    "read_fan_out_factor": 0,
    "read_fan_out_delay_ms": 0,
    "on_disk_payload": null,
    "payload": {
      "memory": "cold"
    },
    "id_tracker": {
      "memory": "cold"
    }
  },
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "quantization_config": null,
  "sparse_vectors": {},
  "strict_mode_config": {
    "enabled": true,
    "max_query_limit": 1,
    "max_timeout": 1,
    "unindexed_filtering_retrieve": true,
    "unindexed_filtering_update": true,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": true,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 1,
    "write_rate_limit": 1,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 1,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 1
  },
  "metadata": {
    "city": "London",
    "color": "green"
  }
}

VectorsConfigDiff

object

Vector update params for multiple vectors

{ "vector_name": { "hnsw_config": { "m": 8 } } }

VectorsConfigDiff
Example
{}

VectorParamsDiff

object
hnsw_configHnswConfigDiff | any

Update params for HNSW index. If empty object - it will be unset.

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | Disabled | any

Update params for quantization. If none - it is left unchanged.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, vectors are served from disk, improving RAM usage at the cost of latency

memoryMemory | any

Memory placement of the original vector storage. Overrides the deprecated on_disk flag if both are set. pinned is not supported for dense vector storage.

Example
{
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 10,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "quantization_config": {
    "scalar": {
      "type": "int8",
      "quantile": 0.5,
      "always_ram": true,
      "memory": "cold"
    }
  },
  "on_disk": true,
  "memory": "cold"
}

QuantizationConfigDiff

object
Any of
scalarScalarQuantizationConfigrequired
Show child attributes
typeScalarTypeint8required
quantilenumber<float> | null[0.5, 1]

Quantile for quantization. Expected value range in [0.5, 1.0]. If not set - use the whole range of values

always_ramboolean | nulldeprecated

Deprecated: use memory instead. If true - quantized vectors always will be stored in RAM, ignoring the config of main storage

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

productProductQuantizationConfigrequired
Show child attributes
compressionCompressionRatiox4x8x16x32x64required
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

binaryBinaryQuantizationConfigrequired
Show child attributes
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

encodingBinaryQuantizationEncoding | any
query_encodingBinaryQuantizationQueryEncoding | any

Asymmetric quantization configuration allows a query to have different quantization than stored vectors. It can increase the accuracy of search at the cost of performance.

turboTurboQuantQuantizationConfigrequired
Show child attributes
always_ramboolean | nulldeprecated

Deprecated: use memory instead.

memoryMemory | any

Memory placement of quantized vectors. Overrides the deprecated always_ram flag if both are set. Default: follow the memory placement of the original vector storage.

bitsTurboQuantBitSize | any
DisabledDisabled
Example
{
  "scalar": {
    "type": "int8",
    "quantile": 0.5,
    "always_ram": true,
    "memory": "cold"
  }
}

Disabled

string
DisabledDisabled
Example
"Disabled"

CollectionParamsDiff

object
replication_factorinteger<uint32> | null>= 1

Number of replicas for each shard

write_consistency_factorinteger<uint32> | null>= 1

Minimal number successful responses from replicas to consider operation successful

read_fan_out_factorinteger<uint32> | null>= 0

Fan-out every read request to these many additional remote nodes (and return first available response)

read_fan_out_delay_msinteger<uint64> | null>= 0

Delay in milliseconds before sending read requests to remote nodes

on_disk_payloadboolean | nullnulldeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

payloadPayloadStorageParams | any

Update params of the payload storage. If none - it is left unchanged.

id_trackerIdTrackerParams | any

Update params of the point id tracker. If none - it is left unchanged.

Example
{
  "replication_factor": 1,
  "write_consistency_factor": 1,
  "read_fan_out_factor": 0,
  "read_fan_out_delay_ms": 0,
  "on_disk_payload": null,
  "payload": {
    "memory": "cold"
  },
  "id_tracker": {
    "memory": "cold"
  }
}

SparseVectorsConfig

object
SparseVectorsConfig
Example
{}

ChangeAliasesOperation

object

Operation for performing changes of collection aliases. Alias changes are atomic, meaning that no collection modifications can happen between alias operations.

actionsArray<AliasOperations>required
Show child attributes

Group of all the possible operations related to collection aliases

Any of
create_aliasCreateAliasrequired

Create alternative name for a collection. Collection will be available under both names for search, retrieve,

Show child attributes
collection_namestringrequired
alias_namestringrequired
delete_aliasDeleteAliasrequired

Delete alias if exists

Show child attributes
alias_namestringrequired
rename_aliasRenameAliasrequired

Change alias to a new one

Show child attributes
old_alias_namestringrequired
new_alias_namestringrequired
Example
{
  "actions": [
    {
      "create_alias": {
        "collection_name": "string",
        "alias_name": "string"
      }
    }
  ]
}

AliasOperations

object

Group of all the possible operations related to collection aliases

Any of
create_aliasCreateAliasrequired

Create alternative name for a collection. Collection will be available under both names for search, retrieve,

Show child attributes
collection_namestringrequired
alias_namestringrequired
delete_aliasDeleteAliasrequired

Delete alias if exists

Show child attributes
alias_namestringrequired
rename_aliasRenameAliasrequired

Change alias to a new one

Show child attributes
old_alias_namestringrequired
new_alias_namestringrequired
Example
{
  "create_alias": {
    "collection_name": "string",
    "alias_name": "string"
  }
}

CreateAliasOperation

object
create_aliasCreateAliasrequired

Create alternative name for a collection. Collection will be available under both names for search, retrieve,

Show child attributes
collection_namestringrequired
alias_namestringrequired
Example
{
  "create_alias": {
    "collection_name": "string",
    "alias_name": "string"
  }
}

CreateAlias

object

Create alternative name for a collection. Collection will be available under both names for search, retrieve,

collection_namestringrequired
alias_namestringrequired
Example
{
  "collection_name": "string",
  "alias_name": "string"
}

DeleteAliasOperation

object

Delete alias if exists

delete_aliasDeleteAliasrequired

Delete alias if exists

Show child attributes
alias_namestringrequired
Example
{
  "delete_alias": {
    "alias_name": "string"
  }
}

DeleteAlias

object

Delete alias if exists

alias_namestringrequired
Example
{
  "alias_name": "string"
}

RenameAliasOperation

object

Change alias to a new one

rename_aliasRenameAliasrequired

Change alias to a new one

Show child attributes
old_alias_namestringrequired
new_alias_namestringrequired
Example
{
  "rename_alias": {
    "old_alias_name": "string",
    "new_alias_name": "string"
  }
}

RenameAlias

object

Change alias to a new one

old_alias_namestringrequired
new_alias_namestringrequired
Example
{
  "old_alias_name": "string",
  "new_alias_name": "string"
}

CreateFieldIndex

object
field_namestringrequired
field_schemaPayloadSchemaType | KeywordIndexParams | IntegerIndexParams | FloatIndexParams | GeoIndexParams | TextIndexParams | BoolIndexParams | DatetimeIndexParams | UuidIndexParams | any
Example
{
  "field_name": "string",
  "field_schema": "keyword"
}

PayloadFieldSchema

object
Any of

All possible names of payload types

PayloadSchemaTypekeywordintegerfloatgeotextbooldatetimeuuid

Payload type with parameters

Any of
typeKeywordIndexTypekeywordrequired
is_tenantboolean | null

If true - used for tenant optimization. Default: false.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

prefixboolean | null

If true, enable prefix matching (match: { "prefix": ... }) on this field. Default: false.

typeIntegerIndexTypeintegerrequired
lookupboolean | null

If true - support direct lookups. Default is true.

rangeboolean | null

If true - support ranges filters. Default is true.

is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeFloatIndexTypefloatrequired
is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeGeoIndexTypegeorequired
on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeTextIndexTypetextrequired
tokenizerTokenizerTypeprefixwhitespacewordmultilingual
min_token_leninteger<uint> | null>= 0

Minimum characters to be tokenized.

max_token_leninteger<uint> | null>= 0

Maximum characters to be tokenized.

lowercaseboolean | null

If true, lowercase all tokens. Default: true.

ascii_foldingboolean | null

If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default: false.

phrase_matchingboolean | null

If true, support phrase matching. Default: false.

stopwordsLanguage | StopwordsSet | any

Ignore this set of tokens. Can select from predefined languages and/or provide a custom set.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

stemmerSnowballParams | DisabledStemmerParams | any

Algorithm for stemming. Default: disabled.

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeBoolIndexTypeboolrequired
on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeDatetimeIndexTypedatetimerequired
is_principalboolean | null

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.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

typeUuidIndexTypeuuidrequired
is_tenantboolean | null

If true - used for tenant optimization.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. If true, store the index on disk. Default: false.

memoryMemory | any

Memory placement of the index. Overrides the deprecated on_disk flag if both are set. Default: pinned (cold if on_disk is set to true).

enable_hnswboolean | null

Enable HNSW graph building for this payload field. If true, builds additional HNSW links (Need payload_m > 0). Default: true.

Example
"keyword"

PointsSelector

object
Any of
pointsArray<ExtendedPointId>required
Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
any
Example
{
  "points": [
    42
  ],
  "shard_key": "region_1"
}

PointIdsList

object
pointsArray<ExtendedPointId>required
Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
Example
{
  "points": [
    42
  ],
  "shard_key": "region_1"
}

FilterSelector

object
filterFilterrequired
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
Example
{
  "shard_key": "region_1"
}

PointInsertOperations

object
Any of
any
any

PointsBatch

object
batchBatchrequired
Show child attributes
idsArray<ExtendedPointId>required
Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
vectorsArray<Array<number>> | Array<Array<Array<number>>> | object | Array<Document> | Array<Image> | Array<InferenceObject>required
payloadsArray<Payload | any> | null
Show child attributes
Any of
Payload
any | null
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
update_filterFilter | any

Filter to apply when updating existing points. Only points matching this filter will be updated. Points that don't match will keep their current state. New points will be inserted regardless of the filter.

update_modeUpdateMode | any

Mode of the upsert operation: insert_only, upsert (default), update_only

Example
{
  "batch": {
    "ids": [
      42
    ],
    "vectors": [
      [
        0
      ]
    ],
    "payloads": [
      {
        "city": "London",
        "color": "green"
      }
    ]
  },
  "shard_key": "region_1",
  "update_mode": "upsert"
}

Batch

object
idsArray<ExtendedPointId>required
Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
vectorsArray<Array<number>> | Array<Array<Array<number>>> | object | Array<Document> | Array<Image> | Array<InferenceObject>required
payloadsArray<Payload | any> | null
Show child attributes
Any of
Payload
any | null
Example
{
  "ids": [
    42
  ],
  "vectors": [
    [
      0
    ]
  ],
  "payloads": [
    {
      "city": "London",
      "color": "green"
    }
  ]
}

BatchVectorStruct

object
Any of
Array<Array<number>>
Array<Array<Array<number>>>
object
Array<Document>
Show child attributes
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

Array<Image>
Show child attributes
imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Array<InferenceObject>
Show child attributes
objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Example
[
  [
    0
  ]
]

Vector

object

Vector Data Vectors can be described directly with values Or specified with source "objects" for inference

Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Example
[
  0
]

Document

object

WARN: Work-in-progress, unimplemented

Text document for embedding. Requires inference infrastructure, unimplemented.

textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

Example
{
  "text": "This is a document text",
  "model": "jinaai/jina-embeddings-v2-base-en",
  "options": {}
}

DocumentOptions

object

Option variants for text documents. Ether general-purpose options or BM25-specific options. BM25-specific will only take effect if the qdrant/bm25 is specified as a model.

Any of
object
knumber<double>1.2

Controls term frequency saturation. Higher values mean term frequency has more impact. Default is 1.2

bnumber<double>0.75

Controls document length normalization. Ranges from 0 (no normalization) to 1 (full normalization). Higher values mean longer documents have less impact. Default is 0.75.

avg_lennumber<double>256

Expected average document length in the collection. Default is 256.

tokenizerTokenizerTypeprefixwhitespacewordmultilingual
languagestring | null

Defines which language to use for text preprocessing. This parameter is used to construct default stopwords filter and stemmer. To disable language-specific processing, set stemmer to {"type": "none"} and configure an empty stopword set. The legacy "language": "none" hack is deprecated and may be rejected in a future release. If not specified, English is assumed.

lowercaseboolean | null

Lowercase the text before tokenization. Default is true.

ascii_foldingboolean | null

If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default is false.

stopwordsLanguage | StopwordsSet | any

Configuration of the stopwords filter. Supports list of pre-defined languages and custom stopwords. Default: initialized for specified language or English if not specified.

stemmerSnowballParams | DisabledStemmerParams | any

Configuration of the stemmer. Processes tokens to their root form. Default: initialized Snowball stemmer for specified language or English if not specified.

min_token_leninteger<uint> | null>= 0

Minimum token length to keep. If token is shorter than this, it will be discarded. Default is None, which means no minimum length.

max_token_leninteger<uint> | null>= 0

Maximum token length to keep. If token is longer than this, it will be discarded. Default is None, which means no maximum length.

Example
{}

Bm25Config

object

Configuration of the local bm25 models.

knumber<double>1.2

Controls term frequency saturation. Higher values mean term frequency has more impact. Default is 1.2

bnumber<double>0.75

Controls document length normalization. Ranges from 0 (no normalization) to 1 (full normalization). Higher values mean longer documents have less impact. Default is 0.75.

avg_lennumber<double>256

Expected average document length in the collection. Default is 256.

tokenizerTokenizerTypeprefixwhitespacewordmultilingual
languagestring | null

Defines which language to use for text preprocessing. This parameter is used to construct default stopwords filter and stemmer. To disable language-specific processing, set stemmer to {"type": "none"} and configure an empty stopword set. The legacy "language": "none" hack is deprecated and may be rejected in a future release. If not specified, English is assumed.

lowercaseboolean | null

Lowercase the text before tokenization. Default is true.

ascii_foldingboolean | null

If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default is false.

stopwordsLanguage | StopwordsSet | any

Configuration of the stopwords filter. Supports list of pre-defined languages and custom stopwords. Default: initialized for specified language or English if not specified.

stemmerSnowballParams | DisabledStemmerParams | any

Configuration of the stemmer. Processes tokens to their root form. Default: initialized Snowball stemmer for specified language or English if not specified.

min_token_leninteger<uint> | null>= 0

Minimum token length to keep. If token is shorter than this, it will be discarded. Default is None, which means no minimum length.

max_token_leninteger<uint> | null>= 0

Maximum token length to keep. If token is longer than this, it will be discarded. Default is None, which means no maximum length.

Example
{
  "k": 1.2,
  "b": 0.75,
  "avg_len": 256,
  "tokenizer": "prefix",
  "language": "string",
  "lowercase": true,
  "ascii_folding": true,
  "stopwords": "arabic",
  "stemmer": {
    "type": "snowball",
    "language": "arabic"
  },
  "min_token_len": 0,
  "max_token_len": 0
}

Image

object

WARN: Work-in-progress, unimplemented

Image object for embedding. Requires inference infrastructure, unimplemented.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Example
{
  "image": "https://example.com/image.jpg",
  "model": "Qdrant/clip-ViT-B-32-vision",
  "options": {}
}

InferenceObject

object

WARN: Work-in-progress, unimplemented

Custom object for embedding. Requires inference infrastructure, unimplemented.

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Example
{
  "model": "jinaai/jina-embeddings-v2-base-en",
  "options": {}
}

UpdateMode

string

Defines the mode of the upsert operation

  • upsert - default mode, insert new points, update existing points * insert_only - only insert new points, do not update existing points * update_only - only update existing points, do not insert new points
UpdateModeupsertinsert_onlyupdate_only
Example
"upsert"

PointsList

object
pointsArray<PointStruct>required
Show child attributes
idinteger | stringrequired

Type, used for specifying point ID in user interface

vectorArray<number> | Array<Array<number>> | object | Document | Image | InferenceObjectrequired

Full vector data per point separator with single and multiple vector modes

payloadPayload | any

Payload values (optional)

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
update_filterFilter | any

Filter to apply when updating existing points. Only points matching this filter will be updated. Points that don't match will keep their current state. New points will be inserted regardless of the filter.

update_modeUpdateMode | any

Mode of the upsert operation: insert_only, upsert (default), update_only

Example
{
  "points": [
    {
      "id": 42,
      "vector": [
        0.875,
        0.140625,
        0.897599995136261
      ],
      "payload": {
        "city": "London",
        "color": "green"
      }
    }
  ],
  "shard_key": "region_1",
  "update_mode": "upsert"
}

PointStruct

object
idinteger | stringrequired

Type, used for specifying point ID in user interface

vectorArray<number> | Array<Array<number>> | object | Document | Image | InferenceObjectrequired

Full vector data per point separator with single and multiple vector modes

payloadPayload | any

Payload values (optional)

Example
{
  "id": 42,
  "vector": [
    0.875,
    0.140625,
    0.897599995136261
  ],
  "payload": {
    "city": "London",
    "color": "green"
  }
}

VectorStruct

object

Full vector data per point separator with single and multiple vector modes

Any of
Array<number>
Array<Array<number>>
object
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Example
[
  0.875,
  0.140625,
  0.897599995136261
]

SetPayload

object

This data structure is used in API interface and applied across multiple shards

payloadPayloadrequired
pointsArray<ExtendedPointId> | null

Assigns payload to each point in this list

Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
filterFilter | any

Assigns payload to each point that satisfy this filter condition

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
keystring | null

Assigns payload to each point that satisfy this path of property

Example
{
  "payload": {
    "city": "London",
    "color": "green"
  },
  "points": [
    42
  ],
  "shard_key": "region_1",
  "key": "string"
}

DeletePayload

object

This data structure is used in API interface and applied across multiple shards

keysArray<string>required

List of payload keys to remove from payload

pointsArray<ExtendedPointId> | null

Deletes values from each point in this list

Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
filterFilter | any

Deletes values from points that satisfy this filter condition

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
Example
{
  "keys": [
    "string"
  ],
  "points": [
    42
  ],
  "shard_key": "region_1"
}

ClusterStatus

object

Information about current cluster status and structure

One of
statusstringdisabledrequired
statusstringenabledrequired
peer_idinteger<uint64>>= 0required

ID of this peer

peersobjectrequired

Peers composition of the cluster with main information

raft_infoRaftInforequired

Summary information about the current raft state

Show child attributes
terminteger<uint64>>= 0required

Raft divides time into terms of arbitrary length, each beginning with an election. If a candidate wins the election, it remains the leader for the rest of the term. The term number increases monotonically. Each server stores the current term number which is also exchanged in every communication.

commitinteger<uint64>>= 0required

The index of the latest committed (finalized) operation that this peer is aware of.

pending_operationsinteger<uint>>= 0required

Number of consensus operations pending to be applied on this peer

leaderinteger<uint64> | null>= 0

Leader of the current term

roleStateRole | any

Role of this peer in the current term

is_voterbooleanrequired

Is this peer a voter or a learner

consensus_thread_statusobject | object | objectrequired

Information about current consensus thread status

message_send_failuresobjectrequired

Consequent failures of message send operations in consensus by peer address. On the first success to send to that peer - entry is removed from this hashmap.

Example
{
  "status": "disabled"
}

PeerInfo

object

Information of a peer in the cluster

uristringrequired
Example
{
  "uri": "string"
}

RaftInfo

object

Summary information about the current raft state

terminteger<uint64>>= 0required

Raft divides time into terms of arbitrary length, each beginning with an election. If a candidate wins the election, it remains the leader for the rest of the term. The term number increases monotonically. Each server stores the current term number which is also exchanged in every communication.

commitinteger<uint64>>= 0required

The index of the latest committed (finalized) operation that this peer is aware of.

pending_operationsinteger<uint>>= 0required

Number of consensus operations pending to be applied on this peer

leaderinteger<uint64> | null>= 0

Leader of the current term

roleStateRole | any

Role of this peer in the current term

is_voterbooleanrequired

Is this peer a voter or a learner

Example
{
  "term": 0,
  "commit": 0,
  "pending_operations": 0,
  "leader": 0,
  "role": "Follower",
  "is_voter": true
}

StateRole

string

Role of the peer in the consensus

StateRoleFollowerCandidateLeaderPreCandidate
Example
"Follower"

ConsensusThreadStatus

object

Information about current consensus thread status

One of
consensus_thread_statusstringworkingrequired
last_updatestring<date-time>required
consensus_thread_statusstringstoppedrequired
consensus_thread_statusstringstopped_with_errrequired
errstringrequired
Example
{
  "consensus_thread_status": "working",
  "last_update": "2024-01-15T09:30:00Z"
}

MessageSendErrors

object

Message send failures for a particular peer

countinteger<uint>>= 0required
latest_errorstring | null
latest_error_timestampstring<date-time> | null

Timestamp of the latest error

Example
{
  "count": 0,
  "latest_error": "string",
  "latest_error_timestamp": "2024-01-15T09:30:00Z"
}

SnapshotDescription

object
namestringrequired
creation_timestring<partial-date-time> | null
sizeinteger<uint64>>= 0required
checksumstring | null
Example
{
  "name": "my-collection-3766212330831337-2024-07-22-08-31-55.snapshot",
  "creation_time": "2022-08-04T10:49:10",
  "size": 1000000,
  "checksum": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0c1d2e3f4a5b6c7d8e9f0"
}

CountRequest

object

Count Request Counts the number of points which satisfy the given filter. If filter is not provided, the count of all points in the collection will be returned.

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any

Specify in which shards to look for the points, if not specified - look in all shards

filterFilter | any

Look only for points which satisfies this conditions

exactbooleantrue

If true, count exact number of points. If false, count approximate number of points faster. Approximate count might be unreliable during the indexing process. Default: true

Example
{
  "shard_key": "region_1",
  "exact": true
}

CountResult

object
countinteger<uint>>= 0required

Number of points which satisfy the conditions

Example
{
  "count": 0
}

CollectionClusterInfo

object

Current clustering distribution for the collection

peer_idinteger<uint64>>= 0required

ID of this peer

shard_countinteger<uint>>= 0required

Total number of shards

local_shardsArray<LocalShardInfo>required

Local shards

Show child attributes
shard_idinteger<uint32>>= 0required

Local shard id

shard_keystring | integer | any

User-defined sharding key

points_countinteger<uint>>= 0required

Number of points in the shard

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

remote_shardsArray<RemoteShardInfo>required

Remote shards

Show child attributes
shard_idinteger<uint32>>= 0required

Remote shard id

shard_keystring | integer | any

User-defined sharding key

peer_idinteger<uint64>>= 0required

Remote peer id

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

shard_transfersArray<ShardTransferInfo>required

Shard transfers

Show child attributes
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

resharding_operationsArray<ReshardingInfo> | null

Resharding operations

Show child attributes
directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
Example
{
  "peer_id": 0,
  "shard_count": 0,
  "local_shards": [
    {
      "shard_id": 0,
      "shard_key": "region_1",
      "points_count": 0,
      "state": "Active"
    }
  ],
  "remote_shards": [
    {
      "shard_id": 0,
      "shard_key": "region_1",
      "peer_id": 0,
      "state": "Active"
    }
  ],
  "shard_transfers": [
    {
      "shard_id": 0,
      "to_shard_id": 0,
      "from": 0,
      "to": 0,
      "sync": true,
      "method": "stream_records",
      "comment": "string"
    }
  ],
  "resharding_operations": [
    {
      "direction": "up",
      "shard_id": 0,
      "peer_id": 0,
      "shard_key": "region_1"
    }
  ]
}

LocalShardInfo

object
shard_idinteger<uint32>>= 0required

Local shard id

shard_keystring | integer | any

User-defined sharding key

points_countinteger<uint>>= 0required

Number of points in the shard

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

Example
{
  "shard_id": 0,
  "shard_key": "region_1",
  "points_count": 0,
  "state": "Active"
}

ReplicaState

string

State of the single shard within a replica set.

ReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecovery
Example
"Active"

RemoteShardInfo

object
shard_idinteger<uint32>>= 0required

Remote shard id

shard_keystring | integer | any

User-defined sharding key

peer_idinteger<uint64>>= 0required

Remote peer id

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

Example
{
  "shard_id": 0,
  "shard_key": "region_1",
  "peer_id": 0,
  "state": "Active"
}

ShardTransferInfo

object
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

Example
{
  "shard_id": 0,
  "to_shard_id": 0,
  "from": 0,
  "to": 0,
  "sync": true,
  "method": "stream_records",
  "comment": "string"
}

ShardTransferMethod

string

Methods for transferring a shard from one node to another.

  • stream_records - Stream all shard records in batches until the whole shard is transferred.

  • snapshot - Snapshot the shard, transfer and restore it on the receiver.

  • wal_delta - Attempt to transfer shard difference by WAL delta.

  • resharding_stream_records - Shard transfer for resharding: stream all records in batches until all points are transferred.

ShardTransferMethodstream_recordssnapshotwal_deltaresharding_stream_records
Example
"stream_records"

ReshardingInfo

object
directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
Example
{
  "direction": "up",
  "shard_id": 0,
  "peer_id": 0,
  "shard_key": "region_1"
}

ReshardingDirection

string

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

ReshardingDirectionupdown
Example
"up"

TelemetryData

object
idstringrequired
appAppBuildTelemetry | any
collectionsCollectionsTelemetryrequired
Show child attributes
number_of_collectionsinteger<uint>>= 0required
max_collectionsinteger<uint> | null>= 0
collectionsArray<CollectionTelemetryEnum> | null
Show child attributes
Any of
idstringrequired
init_time_msinteger<uint64> | null>= 0
configCollectionConfigTelemetry | any
shardsArray<ReplicaSetTelemetry> | null
Show child attributes
idinteger<uint32>>= 0required
keystring | integer | any
localLocalShardTelemetry | any
remoteArray<RemoteShardTelemetry>required
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
searchesOperationDurationStatistics | any
updatesOperationDurationStatistics | any
replicate_statesobjectrequired
partial_snapshotPartialSnapshotTelemetry | any
transfersArray<ShardTransferInfo> | null
Show child attributes
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

reshardingArray<ReshardingTelemetry> | null
Show child attributes
stageReshardingStagemigrating_pointsread_hash_ring_committedwrite_hash_ring_committedrequired

Resharding stages

directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
uuidstring<uuid>required
shard_clean_tasksobject | null
vectorsinteger<uint>>= 0required
optimizers_statusstring | objectrequired

Current state of the collection

paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

snapshotsArray<CollectionSnapshotTelemetry> | null
Show child attributes
idstringrequired
running_snapshotsinteger<uint> | null>= 0
running_snapshot_recoveryinteger<uint> | null>= 0
total_snapshot_creationsinteger<uint> | null>= 0
clusterClusterTelemetry | any
requestsRequestsTelemetry | any
memoryMemoryTelemetry | any
hardwareHardwareTelemetry | any
search_poolSearchThreadPoolTelemetry | any
quotaQuotaTelemetry | any

Resource quota this node is enforcing, and whether it is currently over it. The config is whatever this node last persisted, so a peer that missed a consensus update reports what it is actually applying rather than what the cluster agreed on. Absent for a token without global access, which GET /quotas requires as well.

Example
{
  "id": "string",
  "app": {
    "name": "string",
    "version": "string",
    "features": {
      "debug": true,
      "service_debug_feature": true,
      "recovery_mode": true,
      "gpu": true,
      "rocksdb": true,
      "staging": true
    },
    "runtime_features": {
      "all": false,
      "incremental_hnsw_building": true,
      "appendable_quantization": true,
      "single_file_mmap_vector_storage": true,
      "async_payload_storage": true,
      "async_hnsw_graph": false,
      "write_segment_manifest": false,
      "append_only_mutations": false,
      "compact_bitmask": false,
      "append_only_storages": false,
      "compact_logstore_tracker": false,
      "transfer_raw_points": false,
      "transfer_raw_payloads": false,
      "persist_proxy_segments": false,
      "combined_vector_storage": true,
      "serverless_compatible": false
    },
    "low_memory_mode": "disabled",
    "hnsw_global_config": {
      "healing_threshold": 0.3
    },
    "system": {
      "distribution": "string",
      "distribution_version": "string",
      "is_docker": true,
      "container_runtime": "none",
      "cores": 0,
      "cpu_cores_used": 0,
      "ram_size": 0,
      "disk_size": 0,
      "cpu_flags": "string",
      "cpu_endian": "little",
      "gpu_devices": [
        {
          "name": "string"
        }
      ]
    },
    "jwt_rbac": true,
    "hide_jwt_dashboard": true,
    "audit": {
      "dir": "string",
      "rotation": "string",
      "max_log_files": 0,
      "trust_forwarded_headers": true,
      "log_api": true,
      "dir_size_bytes": 0
    },
    "startup": "2024-01-15T09:30:00Z"
  },
  "collections": {
    "number_of_collections": 0,
    "max_collections": 0,
    "collections": [
      {
        "id": "string",
        "init_time_ms": 0,
        "config": {
          "params": {
            "vectors": {
              "size": 1,
              "distance": "Cosine",
              "hnsw_config": {
                "m": 0,
                "ef_construct": 4,
                "full_scan_threshold": 10,
                "max_indexing_threads": 0,
                "on_disk": true,
                "memory": "cold",
                "payload_m": 0,
                "inline_storage": true
              },
              "quantization_config": {
                "scalar": {
                  "type": "int8",
                  "quantile": 0.5,
                  "always_ram": true,
                  "memory": "cold"
                }
              },
              "on_disk": true,
              "memory": "cold",
              "datatype": "float32",
              "multivector_config": {
                "comparator": "max_sim"
              }
            },
            "shard_number": 1,
            "sharding_method": "auto",
            "replication_factor": 1,
            "write_consistency_factor": 1,
            "read_fan_out_factor": 0,
            "read_fan_out_delay_ms": 0,
            "on_disk_payload": true,
            "payload": {
              "memory": "cold"
            },
            "id_tracker": {
              "memory": "cold"
            },
            "sparse_vectors": {}
          },
          "hnsw_config": {
            "m": 0,
            "ef_construct": 4,
            "full_scan_threshold": 0,
            "max_indexing_threads": 0,
            "on_disk": true,
            "memory": "cold",
            "payload_m": 0,
            "inline_storage": true
          },
          "optimizer_config": {
            "deleted_threshold": 0.2,
            "vacuum_min_vector_number": 1000,
            "default_segment_number": 0,
            "max_segment_size": null,
            "memmap_threshold": null,
            "indexing_threshold": null,
            "flush_interval_sec": 0,
            "max_optimization_threads": null,
            "prevent_unoptimized": null
          },
          "wal_config": {
            "wal_capacity_mb": 1,
            "wal_segments_ahead": 0,
            "wal_retain_closed": 1
          },
          "quantization_config": null,
          "strict_mode_config": {
            "enabled": true,
            "max_query_limit": 0,
            "max_timeout": 0,
            "unindexed_filtering_retrieve": true,
            "unindexed_filtering_update": true,
            "search_max_hnsw_ef": 0,
            "search_allow_exact": true,
            "search_max_oversampling": 0,
            "upsert_max_batchsize": 0,
            "search_max_batchsize": 0,
            "max_collection_vector_size_bytes": 0,
            "read_rate_limit": 0,
            "write_rate_limit": 0,
            "max_collection_payload_size_bytes": 0,
            "max_points_count": 0,
            "filter_max_conditions": 0,
            "condition_max_size": 0,
            "multivector_config": {},
            "sparse_config": {},
            "max_payload_index_count": 0,
            "max_resident_memory_percent": 0
          },
          "uuid": null,
          "metadata": {
            "city": "London",
            "color": "green"
          }
        },
        "shards": [
          {
            "id": 0,
            "key": "region_1",
            "local": {
              "variant_name": "string",
              "status": "green",
              "total_optimized_points": 0,
              "vectors_size_bytes": 0,
              "payloads_size_bytes": 0,
              "num_points": 0,
              "num_vectors": 0,
              "num_vectors_by_name": {},
              "segments": [
                {
                  "info": {
                    "uuid": "550e8400-e29b-41d4-a716-446655440000",
                    "segment_type": "plain",
                    "num_vectors": 0,
                    "num_points": 0,
                    "num_deferred_points": 0,
                    "num_deleted_deferred_points": 0,
                    "num_indexed_vectors": 0,
                    "num_deleted_vectors": 0,
                    "vectors_size_bytes": 0,
                    "payloads_size_bytes": 0,
                    "ram_usage_bytes": 0,
                    "disk_usage_bytes": 0,
                    "is_appendable": true,
                    "index_schema": {},
                    "vector_data": {},
                    "payload_storage_io_backend": "mmap",
                    "deferred_internal_id": 0
                  },
                  "config": {
                    "vector_data": {},
                    "sparse_vector_data": {},
                    "payload_storage_type": {
                      "type": "mmap"
                    },
                    "id_tracker_memory": "cold"
                  },
                  "vector_index_searches": [
                    {
                      "index_name": "string",
                      "unfiltered_plain": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "unfiltered_hnsw": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "unfiltered_sparse": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "filtered_plain": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "filtered_small_cardinality": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "filtered_large_cardinality": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "filtered_acorn": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "filtered_exact": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "filtered_sparse": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      },
                      "unfiltered_exact": {
                        "count": 0,
                        "fail_count": 0,
                        "avg_duration_micros": 0,
                        "min_duration_micros": 0,
                        "max_duration_micros": 0,
                        "total_duration_micros": 0,
                        "last_responded": "2024-01-15T09:30:00Z"
                      }
                    }
                  ],
                  "payload_field_indices": [
                    {
                      "field_name": "string",
                      "index_type": "string",
                      "points_values_count": 0,
                      "points_count": 0,
                      "histogram_bucket_size": 0
                    }
                  ]
                }
              ],
              "optimizations": {
                "status": "ok",
                "optimizations": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "log": [
                  {
                    "name": "string",
                    "uuid": "550e8400-e29b-41d4-a716-446655440000",
                    "segment_ids": [
                      0
                    ],
                    "segment_uuids": [
                      "550e8400-e29b-41d4-a716-446655440000"
                    ],
                    "status": "optimizing",
                    "start_at": "2024-01-15T09:30:00Z",
                    "end_at": "2024-01-15T09:30:00Z"
                  }
                ]
              },
              "async_scorer": true,
              "indexed_only_excluded_vectors": {},
              "update_queue": {
                "length": 0,
                "op_num": 0,
                "deferred_points": 0
              }
            },
            "remote": [
              {
                "shard_id": 0,
                "peer_id": 0,
                "searches": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "updates": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                }
              }
            ],
            "replicate_states": {},
            "partial_snapshot": {
              "ongoing_create_snapshot_requests": 0,
              "is_recovering": true,
              "recovery_timestamp": 0
            }
          }
        ],
        "transfers": [
          {
            "shard_id": 0,
            "to_shard_id": 0,
            "from": 0,
            "to": 0,
            "sync": true,
            "method": "stream_records",
            "comment": "string"
          }
        ],
        "resharding": [
          {
            "stage": "migrating_points",
            "direction": "up",
            "shard_id": 0,
            "peer_id": 0,
            "shard_key": "region_1",
            "uuid": "550e8400-e29b-41d4-a716-446655440000"
          }
        ],
        "shard_clean_tasks": {}
      }
    ],
    "snapshots": [
      {
        "id": "string",
        "running_snapshots": 0,
        "running_snapshot_recovery": 0,
        "total_snapshot_creations": 0
      }
    ]
  },
  "cluster": {
    "enabled": true,
    "status": {
      "number_of_peers": 0,
      "term": 0,
      "commit": 0,
      "pending_operations": 0,
      "role": "Follower",
      "is_voter": true,
      "peer_id": 0,
      "consensus_thread_status": {
        "consensus_thread_status": "working",
        "last_update": "2024-01-15T09:30:00Z"
      }
    },
    "config": {
      "grpc_timeout_ms": 0,
      "p2p": {
        "connection_pool_size": 0
      },
      "consensus": {
        "max_message_queue_size": 0,
        "tick_period_ms": 0,
        "bootstrap_timeout_sec": 0
      }
    },
    "peers": {},
    "peer_metadata": {},
    "metadata": {},
    "resharding_enabled": true
  },
  "requests": {
    "rest": {
      "responses": {},
      "per_collection_responses": {}
    },
    "grpc": {
      "responses": {},
      "per_collection_responses": {}
    }
  },
  "memory": {
    "active_bytes": 0,
    "allocated_bytes": 0,
    "metadata_bytes": 0,
    "resident_bytes": 0,
    "retained_bytes": 0
  },
  "hardware": {
    "collection_data": {}
  },
  "search_pool": {
    "mode": "string",
    "high_cpu_threads": 0,
    "high_io_threads": 0
  },
  "quota": {
    "config": {
      "enabled": false,
      "max_resident_memory_percent": 1,
      "max_disk_usage_percent": 1,
      "release_margin_percent": 0
    },
    "exceeded": {
      "resident_memory": true,
      "disk_usage": true
    }
  }
}

AppBuildTelemetry

object
namestringrequired
versionstringrequired
featuresAppFeaturesTelemetry | any
runtime_featuresFeatureFlags | any
low_memory_modestring | string | string | any
hnsw_global_configHnswGlobalConfig | any
systemRunningEnvironmentTelemetry | any
jwt_rbacboolean | null
hide_jwt_dashboardboolean | null
auditAuditTelemetry | any
startupstring<date-time>required
Example
{
  "name": "string",
  "version": "string",
  "features": {
    "debug": true,
    "service_debug_feature": true,
    "recovery_mode": true,
    "gpu": true,
    "rocksdb": true,
    "staging": true
  },
  "runtime_features": {
    "all": false,
    "incremental_hnsw_building": true,
    "appendable_quantization": true,
    "single_file_mmap_vector_storage": true,
    "async_payload_storage": true,
    "async_hnsw_graph": false,
    "write_segment_manifest": false,
    "append_only_mutations": false,
    "compact_bitmask": false,
    "append_only_storages": false,
    "compact_logstore_tracker": false,
    "transfer_raw_points": false,
    "transfer_raw_payloads": false,
    "persist_proxy_segments": false,
    "combined_vector_storage": true,
    "serverless_compatible": false
  },
  "low_memory_mode": "disabled",
  "hnsw_global_config": {
    "healing_threshold": 0.3
  },
  "system": {
    "distribution": "string",
    "distribution_version": "string",
    "is_docker": true,
    "container_runtime": "none",
    "cores": 0,
    "cpu_cores_used": 0,
    "ram_size": 0,
    "disk_size": 0,
    "cpu_flags": "string",
    "cpu_endian": "little",
    "gpu_devices": [
      {
        "name": "string"
      }
    ]
  },
  "jwt_rbac": true,
  "hide_jwt_dashboard": true,
  "audit": {
    "dir": "string",
    "rotation": "string",
    "max_log_files": 0,
    "trust_forwarded_headers": true,
    "log_api": true,
    "dir_size_bytes": 0
  },
  "startup": "2024-01-15T09:30:00Z"
}

AppFeaturesTelemetry

object
debugbooleanrequired
service_debug_featurebooleanrequired
recovery_modebooleanrequired
gpubooleanrequired
rocksdbbooleanrequired
stagingbooleanrequired
Example
{
  "debug": true,
  "service_debug_feature": true,
  "recovery_mode": true,
  "gpu": true,
  "rocksdb": true,
  "staging": true
}

FeatureFlags

object
allbooleanfalse

Magic feature flag that enables all features.

Note that this will only be applied to all flags when passed into [init_feature_flags].

incremental_hnsw_buildingbooleantrue

Use incremental HNSW building.

Enabled by default in Qdrant 1.14.1.

appendable_quantizationbooleantrue

Use appendable quantization in appendable plain segments.

Enabled by default in Qdrant 1.16.0.

single_file_mmap_vector_storagebooleantrue

Use single-file mmap in-ram vector storage (InRamMmap)

Enabled by default in Qdrant 1.18.3+

async_payload_storagebooleantrue

Allow the io_uring-based payload storage implementation. When disabled, io_uring payload storage is never used. When enabled, payload storage backend is decided based on storage.performance.io_uring option and payload storage type.

async_hnsw_graphbooleanfalse

Allow the batched io_uring-based HNSW graph search. When disabled, the HNSW graph is never opened on io_uring. When enabled, the graph backend is decided based on storage.performance.io_uring option and links placement.

write_segment_manifestbooleanfalse

Write a segment manifest (segments_manifest.json, next to the segments/ directory) listing the shard's segments and their state, so out-of-process readers can discover segments without scanning the filesystem.

append_only_mutationsbooleanfalse

Build new segments in append-only mode: in-place point mutations become clone-and-tombstone appends instead. Intended for testing the append-only storage path.

compact_bitmaskbooleanfalse

Persist write-once bitmasks in the compact StoredBitmask format instead of raw dense bitslices. Only gates writing: both formats are always readable.

append_only_storagesbooleanfalse

Create Blobstore-backed storages (payload storage, appendable field indexes, sparse vectors) in the append-only Logstore mode. Gates creation only: an existing storage keeps its persisted mode, and both modes are always readable.

Implies [Self::append_only_mutations], enforced by [init_feature_flags].

compact_logstore_trackerbooleanfalse

In non-appendable segments built by the optimizer, store the tracker of an append-only payload storage in the compacted format: read into RAM whole on open instead of one lookup per value. Only has an effect together with [Self::append_only_storages]. Gates creation only: both formats are always readable.

transfer_raw_pointsbooleanfalse

Transfer points as storage-native bytes (raw points), for every collection rather than only those whose vector storage would lose precision in a decode-encode round-trip (TurboQuant).

Read on the sending side only, where the transfer batch is prepared: nodes accept raw points regardless.

transfer_raw_payloadsbooleanfalse

Send the payload of a raw point as the byte blob it is stored as, so the sending node does not parse it and neither node builds a protobuf value tree for it. The receiving node still parses the blob, once, when the operation is applied. Only has an effect on points transferred raw, see [Self::transfer_raw_points].

Read on the sending side only: nodes accept raw payloads regardless.

persist_proxy_segmentsbooleanfalse

Persist proxy segment changes on disk. Prevents pinning the WAL while proxy segments are open. Replays the persisted changes on startup to guarantee data consistency. Required for serverless deployments where storage and compute is separated.

combined_vector_storagebooleantrue

When hnsw_config.inline_storage enabled, use the GraphInline vector storage (aka inline-storage without standalone vector storage) for new segments.

Existing GraphInline segments are always readable, regardless of this flag.

serverless_compatiblebooleanfalse

Serverless-compatible deployment mode. Implies [Self::write_segment_manifest], [Self::append_only_mutations], [Self::compact_bitmask], [Self::append_only_storages], [Self::compact_logstore_tracker] and [Self::persist_proxy_segments].

Note that this will only be applied when passed into [init_feature_flags].

Example
{
  "all": false,
  "incremental_hnsw_building": true,
  "appendable_quantization": true,
  "single_file_mmap_vector_storage": true,
  "async_payload_storage": true,
  "async_hnsw_graph": false,
  "write_segment_manifest": false,
  "append_only_mutations": false,
  "compact_bitmask": false,
  "append_only_storages": false,
  "compact_logstore_tracker": false,
  "transfer_raw_points": false,
  "transfer_raw_payloads": false,
  "persist_proxy_segments": false,
  "combined_vector_storage": true,
  "serverless_compatible": false
}

LowMemoryMode

object

Controls how segments are loaded on startup to reduce memory pressure.

Configured via storage.low_memory_mode in the configuration file.

This setting only affects loading — it never modifies the persisted configuration of any segment. The same data directory will behave differently depending on how this mode is set at startup, which makes it safe to toggle for recovery from out-of-memory crash loops.

One of

No special handling. Every component loads as persisted.

stringdisabled

Load RAM-friendly components as their on-disk variants where possible:

  • Quantization is loaded as if always_ram = false. * Payload field indexes are loaded as if on_disk = true. * Payload storage is loaded as the mmap variant (lazy populate).
stringno_resident

Same as [LowMemoryMode::NoResident], plus mmap page population is skipped on load (for original vectors, HNSW graph and payload storage).

stringno_populate
Example
"disabled"

HnswGlobalConfig

object
healing_thresholdnumber<double>[0, 1]0.3

Enable HNSW healing if the ratio of missing points is no more than this value. To disable healing completely, set this value to 0.0.

Example
{
  "healing_threshold": 0.3
}

RunningEnvironmentTelemetry

object
distributionstring | null
distribution_versionstring | null
is_dockerbooleanrequired
container_runtimeContainerRuntimenonedockerkubernetesotherrequired

Container runtime Qdrant is running under (none if bare metal).

coresinteger<uint> | null>= 0
cpu_cores_usednumber<float> | null

Average number of CPU cores used by this process over roughly the last two seconds. None on unsupported platforms, before two samples are collected, or on transient failures reading process CPU time.

ram_sizeinteger<uint> | null>= 0

Effective total memory for this process in KiB (cgroup limit or host RAM).

disk_sizeinteger<uint> | null>= 0

Size in KiB of the filesystem hosting Qdrant's /storage path (if not available, fallback to host disk size)

cpu_flagsstringrequired
cpu_endianCpuEndian | any
gpu_devicesArray<GpuDeviceTelemetry> | null
Show child attributes
namestringrequired
Example
{
  "distribution": "string",
  "distribution_version": "string",
  "is_docker": true,
  "container_runtime": "none",
  "cores": 0,
  "cpu_cores_used": 0,
  "ram_size": 0,
  "disk_size": 0,
  "cpu_flags": "string",
  "cpu_endian": "little",
  "gpu_devices": [
    {
      "name": "string"
    }
  ]
}

ContainerRuntime

string

Container runtime Qdrant is running under (none if bare metal).

ContainerRuntimenonedockerkubernetesother
Example
"none"

CpuEndian

string
CpuEndianlittlebigother
Example
"little"

GpuDeviceTelemetry

object
namestringrequired
Example
{
  "name": "string"
}

AuditTelemetry

object
dirstringrequired
rotationstringrequired
max_log_filesinteger<uint>>= 0required
trust_forwarded_headersbooleanrequired
log_apibooleanrequired
dir_size_bytesinteger<uint> | null>= 0
Example
{
  "dir": "string",
  "rotation": "string",
  "max_log_files": 0,
  "trust_forwarded_headers": true,
  "log_api": true,
  "dir_size_bytes": 0
}

CollectionsTelemetry

object
number_of_collectionsinteger<uint>>= 0required
max_collectionsinteger<uint> | null>= 0
collectionsArray<CollectionTelemetryEnum> | null
Show child attributes
Any of
idstringrequired
init_time_msinteger<uint64> | null>= 0
configCollectionConfigTelemetry | any
shardsArray<ReplicaSetTelemetry> | null
Show child attributes
idinteger<uint32>>= 0required
keystring | integer | any
localLocalShardTelemetry | any
remoteArray<RemoteShardTelemetry>required
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
searchesOperationDurationStatistics | any
updatesOperationDurationStatistics | any
replicate_statesobjectrequired
partial_snapshotPartialSnapshotTelemetry | any
transfersArray<ShardTransferInfo> | null
Show child attributes
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

reshardingArray<ReshardingTelemetry> | null
Show child attributes
stageReshardingStagemigrating_pointsread_hash_ring_committedwrite_hash_ring_committedrequired

Resharding stages

directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
uuidstring<uuid>required
shard_clean_tasksobject | null
vectorsinteger<uint>>= 0required
optimizers_statusstring | objectrequired

Current state of the collection

paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

snapshotsArray<CollectionSnapshotTelemetry> | null
Show child attributes
idstringrequired
running_snapshotsinteger<uint> | null>= 0
running_snapshot_recoveryinteger<uint> | null>= 0
total_snapshot_creationsinteger<uint> | null>= 0
Example
{
  "number_of_collections": 0,
  "max_collections": 0,
  "collections": [
    {
      "id": "string",
      "init_time_ms": 0,
      "config": {
        "params": {
          "vectors": {
            "size": 1,
            "distance": "Cosine",
            "hnsw_config": {
              "m": 0,
              "ef_construct": 4,
              "full_scan_threshold": 10,
              "max_indexing_threads": 0,
              "on_disk": true,
              "memory": "cold",
              "payload_m": 0,
              "inline_storage": true
            },
            "quantization_config": {
              "scalar": {
                "type": "int8",
                "quantile": 0.5,
                "always_ram": true,
                "memory": "cold"
              }
            },
            "on_disk": true,
            "memory": "cold",
            "datatype": "float32",
            "multivector_config": {
              "comparator": "max_sim"
            }
          },
          "shard_number": 1,
          "sharding_method": "auto",
          "replication_factor": 1,
          "write_consistency_factor": 1,
          "read_fan_out_factor": 0,
          "read_fan_out_delay_ms": 0,
          "on_disk_payload": true,
          "payload": {
            "memory": "cold"
          },
          "id_tracker": {
            "memory": "cold"
          },
          "sparse_vectors": {}
        },
        "hnsw_config": {
          "m": 0,
          "ef_construct": 4,
          "full_scan_threshold": 0,
          "max_indexing_threads": 0,
          "on_disk": true,
          "memory": "cold",
          "payload_m": 0,
          "inline_storage": true
        },
        "optimizer_config": {
          "deleted_threshold": 0.2,
          "vacuum_min_vector_number": 1000,
          "default_segment_number": 0,
          "max_segment_size": null,
          "memmap_threshold": null,
          "indexing_threshold": null,
          "flush_interval_sec": 0,
          "max_optimization_threads": null,
          "prevent_unoptimized": null
        },
        "wal_config": {
          "wal_capacity_mb": 1,
          "wal_segments_ahead": 0,
          "wal_retain_closed": 1
        },
        "quantization_config": null,
        "strict_mode_config": {
          "enabled": true,
          "max_query_limit": 0,
          "max_timeout": 0,
          "unindexed_filtering_retrieve": true,
          "unindexed_filtering_update": true,
          "search_max_hnsw_ef": 0,
          "search_allow_exact": true,
          "search_max_oversampling": 0,
          "upsert_max_batchsize": 0,
          "search_max_batchsize": 0,
          "max_collection_vector_size_bytes": 0,
          "read_rate_limit": 0,
          "write_rate_limit": 0,
          "max_collection_payload_size_bytes": 0,
          "max_points_count": 0,
          "filter_max_conditions": 0,
          "condition_max_size": 0,
          "multivector_config": {},
          "sparse_config": {},
          "max_payload_index_count": 0,
          "max_resident_memory_percent": 0
        },
        "uuid": null,
        "metadata": {
          "city": "London",
          "color": "green"
        }
      },
      "shards": [
        {
          "id": 0,
          "key": "region_1",
          "local": {
            "variant_name": "string",
            "status": "green",
            "total_optimized_points": 0,
            "vectors_size_bytes": 0,
            "payloads_size_bytes": 0,
            "num_points": 0,
            "num_vectors": 0,
            "num_vectors_by_name": {},
            "segments": [
              {
                "info": {
                  "uuid": "550e8400-e29b-41d4-a716-446655440000",
                  "segment_type": "plain",
                  "num_vectors": 0,
                  "num_points": 0,
                  "num_deferred_points": 0,
                  "num_deleted_deferred_points": 0,
                  "num_indexed_vectors": 0,
                  "num_deleted_vectors": 0,
                  "vectors_size_bytes": 0,
                  "payloads_size_bytes": 0,
                  "ram_usage_bytes": 0,
                  "disk_usage_bytes": 0,
                  "is_appendable": true,
                  "index_schema": {},
                  "vector_data": {},
                  "payload_storage_io_backend": "mmap",
                  "deferred_internal_id": 0
                },
                "config": {
                  "vector_data": {},
                  "sparse_vector_data": {},
                  "payload_storage_type": {
                    "type": "mmap"
                  },
                  "id_tracker_memory": "cold"
                },
                "vector_index_searches": [
                  {
                    "index_name": "string",
                    "unfiltered_plain": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "unfiltered_hnsw": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "unfiltered_sparse": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "filtered_plain": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "filtered_small_cardinality": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "filtered_large_cardinality": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "filtered_acorn": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "filtered_exact": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "filtered_sparse": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    },
                    "unfiltered_exact": {
                      "count": 0,
                      "fail_count": 0,
                      "avg_duration_micros": 0,
                      "min_duration_micros": 0,
                      "max_duration_micros": 0,
                      "total_duration_micros": 0,
                      "last_responded": "2024-01-15T09:30:00Z"
                    }
                  }
                ],
                "payload_field_indices": [
                  {
                    "field_name": "string",
                    "index_type": "string",
                    "points_values_count": 0,
                    "points_count": 0,
                    "histogram_bucket_size": 0
                  }
                ]
              }
            ],
            "optimizations": {
              "status": "ok",
              "optimizations": {
                "count": 0,
                "fail_count": 0,
                "avg_duration_micros": 0,
                "min_duration_micros": 0,
                "max_duration_micros": 0,
                "total_duration_micros": 0,
                "last_responded": "2024-01-15T09:30:00Z"
              },
              "log": [
                {
                  "name": "string",
                  "uuid": "550e8400-e29b-41d4-a716-446655440000",
                  "segment_ids": [
                    0
                  ],
                  "segment_uuids": [
                    "550e8400-e29b-41d4-a716-446655440000"
                  ],
                  "status": "optimizing",
                  "start_at": "2024-01-15T09:30:00Z",
                  "end_at": "2024-01-15T09:30:00Z"
                }
              ]
            },
            "async_scorer": true,
            "indexed_only_excluded_vectors": {},
            "update_queue": {
              "length": 0,
              "op_num": 0,
              "deferred_points": 0
            }
          },
          "remote": [
            {
              "shard_id": 0,
              "peer_id": 0,
              "searches": {
                "count": 0,
                "fail_count": 0,
                "avg_duration_micros": 0,
                "min_duration_micros": 0,
                "max_duration_micros": 0,
                "total_duration_micros": 0,
                "last_responded": "2024-01-15T09:30:00Z"
              },
              "updates": {
                "count": 0,
                "fail_count": 0,
                "avg_duration_micros": 0,
                "min_duration_micros": 0,
                "max_duration_micros": 0,
                "total_duration_micros": 0,
                "last_responded": "2024-01-15T09:30:00Z"
              }
            }
          ],
          "replicate_states": {},
          "partial_snapshot": {
            "ongoing_create_snapshot_requests": 0,
            "is_recovering": true,
            "recovery_timestamp": 0
          }
        }
      ],
      "transfers": [
        {
          "shard_id": 0,
          "to_shard_id": 0,
          "from": 0,
          "to": 0,
          "sync": true,
          "method": "stream_records",
          "comment": "string"
        }
      ],
      "resharding": [
        {
          "stage": "migrating_points",
          "direction": "up",
          "shard_id": 0,
          "peer_id": 0,
          "shard_key": "region_1",
          "uuid": "550e8400-e29b-41d4-a716-446655440000"
        }
      ],
      "shard_clean_tasks": {}
    }
  ],
  "snapshots": [
    {
      "id": "string",
      "running_snapshots": 0,
      "running_snapshot_recovery": 0,
      "total_snapshot_creations": 0
    }
  ]
}

CollectionTelemetryEnum

object
Any of
idstringrequired
init_time_msinteger<uint64> | null>= 0
configCollectionConfigTelemetry | any
shardsArray<ReplicaSetTelemetry> | null
Show child attributes
idinteger<uint32>>= 0required
keystring | integer | any
localLocalShardTelemetry | any
remoteArray<RemoteShardTelemetry>required
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
searchesOperationDurationStatistics | any
updatesOperationDurationStatistics | any
replicate_statesobjectrequired
partial_snapshotPartialSnapshotTelemetry | any
transfersArray<ShardTransferInfo> | null
Show child attributes
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

reshardingArray<ReshardingTelemetry> | null
Show child attributes
stageReshardingStagemigrating_pointsread_hash_ring_committedwrite_hash_ring_committedrequired

Resharding stages

directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
uuidstring<uuid>required
shard_clean_tasksobject | null
vectorsinteger<uint>>= 0required
optimizers_statusstring | objectrequired

Current state of the collection

paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

Example
{
  "id": "string",
  "init_time_ms": 0,
  "config": {
    "params": {
      "vectors": {
        "size": 1,
        "distance": "Cosine",
        "hnsw_config": {
          "m": 0,
          "ef_construct": 4,
          "full_scan_threshold": 10,
          "max_indexing_threads": 0,
          "on_disk": true,
          "memory": "cold",
          "payload_m": 0,
          "inline_storage": true
        },
        "quantization_config": {
          "scalar": {
            "type": "int8",
            "quantile": 0.5,
            "always_ram": true,
            "memory": "cold"
          }
        },
        "on_disk": true,
        "memory": "cold",
        "datatype": "float32",
        "multivector_config": {
          "comparator": "max_sim"
        }
      },
      "shard_number": 1,
      "sharding_method": "auto",
      "replication_factor": 1,
      "write_consistency_factor": 1,
      "read_fan_out_factor": 0,
      "read_fan_out_delay_ms": 0,
      "on_disk_payload": true,
      "payload": {
        "memory": "cold"
      },
      "id_tracker": {
        "memory": "cold"
      },
      "sparse_vectors": {}
    },
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 0,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "optimizer_config": {
      "deleted_threshold": 0.2,
      "vacuum_min_vector_number": 1000,
      "default_segment_number": 0,
      "max_segment_size": null,
      "memmap_threshold": null,
      "indexing_threshold": null,
      "flush_interval_sec": 0,
      "max_optimization_threads": null,
      "prevent_unoptimized": null
    },
    "wal_config": {
      "wal_capacity_mb": 1,
      "wal_segments_ahead": 0,
      "wal_retain_closed": 1
    },
    "quantization_config": null,
    "strict_mode_config": {
      "enabled": true,
      "max_query_limit": 0,
      "max_timeout": 0,
      "unindexed_filtering_retrieve": true,
      "unindexed_filtering_update": true,
      "search_max_hnsw_ef": 0,
      "search_allow_exact": true,
      "search_max_oversampling": 0,
      "upsert_max_batchsize": 0,
      "search_max_batchsize": 0,
      "max_collection_vector_size_bytes": 0,
      "read_rate_limit": 0,
      "write_rate_limit": 0,
      "max_collection_payload_size_bytes": 0,
      "max_points_count": 0,
      "filter_max_conditions": 0,
      "condition_max_size": 0,
      "multivector_config": {},
      "sparse_config": {},
      "max_payload_index_count": 0,
      "max_resident_memory_percent": 0
    },
    "uuid": null,
    "metadata": {
      "city": "London",
      "color": "green"
    }
  },
  "shards": [
    {
      "id": 0,
      "key": "region_1",
      "local": {
        "variant_name": "string",
        "status": "green",
        "total_optimized_points": 0,
        "vectors_size_bytes": 0,
        "payloads_size_bytes": 0,
        "num_points": 0,
        "num_vectors": 0,
        "num_vectors_by_name": {},
        "segments": [
          {
            "info": {
              "uuid": "550e8400-e29b-41d4-a716-446655440000",
              "segment_type": "plain",
              "num_vectors": 0,
              "num_points": 0,
              "num_deferred_points": 0,
              "num_deleted_deferred_points": 0,
              "num_indexed_vectors": 0,
              "num_deleted_vectors": 0,
              "vectors_size_bytes": 0,
              "payloads_size_bytes": 0,
              "ram_usage_bytes": 0,
              "disk_usage_bytes": 0,
              "is_appendable": true,
              "index_schema": {},
              "vector_data": {},
              "payload_storage_io_backend": "mmap",
              "deferred_internal_id": 0
            },
            "config": {
              "vector_data": {},
              "sparse_vector_data": {},
              "payload_storage_type": {
                "type": "mmap"
              },
              "id_tracker_memory": "cold"
            },
            "vector_index_searches": [
              {
                "index_name": "string",
                "unfiltered_plain": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "unfiltered_hnsw": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "unfiltered_sparse": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_plain": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_small_cardinality": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_large_cardinality": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_acorn": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_exact": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_sparse": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "unfiltered_exact": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                }
              }
            ],
            "payload_field_indices": [
              {
                "field_name": "string",
                "index_type": "string",
                "points_values_count": 0,
                "points_count": 0,
                "histogram_bucket_size": 0
              }
            ]
          }
        ],
        "optimizations": {
          "status": "ok",
          "optimizations": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "log": [
            {
              "name": "string",
              "uuid": "550e8400-e29b-41d4-a716-446655440000",
              "segment_ids": [
                0
              ],
              "segment_uuids": [
                "550e8400-e29b-41d4-a716-446655440000"
              ],
              "status": "optimizing",
              "start_at": "2024-01-15T09:30:00Z",
              "end_at": "2024-01-15T09:30:00Z"
            }
          ]
        },
        "async_scorer": true,
        "indexed_only_excluded_vectors": {},
        "update_queue": {
          "length": 0,
          "op_num": 0,
          "deferred_points": 0
        }
      },
      "remote": [
        {
          "shard_id": 0,
          "peer_id": 0,
          "searches": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "updates": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          }
        }
      ],
      "replicate_states": {},
      "partial_snapshot": {
        "ongoing_create_snapshot_requests": 0,
        "is_recovering": true,
        "recovery_timestamp": 0
      }
    }
  ],
  "transfers": [
    {
      "shard_id": 0,
      "to_shard_id": 0,
      "from": 0,
      "to": 0,
      "sync": true,
      "method": "stream_records",
      "comment": "string"
    }
  ],
  "resharding": [
    {
      "stage": "migrating_points",
      "direction": "up",
      "shard_id": 0,
      "peer_id": 0,
      "shard_key": "region_1",
      "uuid": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "shard_clean_tasks": {}
}

CollectionTelemetry

object
idstringrequired
init_time_msinteger<uint64> | null>= 0
configCollectionConfigTelemetry | any
shardsArray<ReplicaSetTelemetry> | null
Show child attributes
idinteger<uint32>>= 0required
keystring | integer | any
localLocalShardTelemetry | any
remoteArray<RemoteShardTelemetry>required
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
searchesOperationDurationStatistics | any
updatesOperationDurationStatistics | any
replicate_statesobjectrequired
partial_snapshotPartialSnapshotTelemetry | any
transfersArray<ShardTransferInfo> | null
Show child attributes
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

reshardingArray<ReshardingTelemetry> | null
Show child attributes
stageReshardingStagemigrating_pointsread_hash_ring_committedwrite_hash_ring_committedrequired

Resharding stages

directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
uuidstring<uuid>required
shard_clean_tasksobject | null
Example
{
  "id": "string",
  "init_time_ms": 0,
  "config": {
    "params": {
      "vectors": {
        "size": 1,
        "distance": "Cosine",
        "hnsw_config": {
          "m": 0,
          "ef_construct": 4,
          "full_scan_threshold": 10,
          "max_indexing_threads": 0,
          "on_disk": true,
          "memory": "cold",
          "payload_m": 0,
          "inline_storage": true
        },
        "quantization_config": {
          "scalar": {
            "type": "int8",
            "quantile": 0.5,
            "always_ram": true,
            "memory": "cold"
          }
        },
        "on_disk": true,
        "memory": "cold",
        "datatype": "float32",
        "multivector_config": {
          "comparator": "max_sim"
        }
      },
      "shard_number": 1,
      "sharding_method": "auto",
      "replication_factor": 1,
      "write_consistency_factor": 1,
      "read_fan_out_factor": 0,
      "read_fan_out_delay_ms": 0,
      "on_disk_payload": true,
      "payload": {
        "memory": "cold"
      },
      "id_tracker": {
        "memory": "cold"
      },
      "sparse_vectors": {}
    },
    "hnsw_config": {
      "m": 0,
      "ef_construct": 4,
      "full_scan_threshold": 0,
      "max_indexing_threads": 0,
      "on_disk": true,
      "memory": "cold",
      "payload_m": 0,
      "inline_storage": true
    },
    "optimizer_config": {
      "deleted_threshold": 0.2,
      "vacuum_min_vector_number": 1000,
      "default_segment_number": 0,
      "max_segment_size": null,
      "memmap_threshold": null,
      "indexing_threshold": null,
      "flush_interval_sec": 0,
      "max_optimization_threads": null,
      "prevent_unoptimized": null
    },
    "wal_config": {
      "wal_capacity_mb": 1,
      "wal_segments_ahead": 0,
      "wal_retain_closed": 1
    },
    "quantization_config": null,
    "strict_mode_config": {
      "enabled": true,
      "max_query_limit": 0,
      "max_timeout": 0,
      "unindexed_filtering_retrieve": true,
      "unindexed_filtering_update": true,
      "search_max_hnsw_ef": 0,
      "search_allow_exact": true,
      "search_max_oversampling": 0,
      "upsert_max_batchsize": 0,
      "search_max_batchsize": 0,
      "max_collection_vector_size_bytes": 0,
      "read_rate_limit": 0,
      "write_rate_limit": 0,
      "max_collection_payload_size_bytes": 0,
      "max_points_count": 0,
      "filter_max_conditions": 0,
      "condition_max_size": 0,
      "multivector_config": {},
      "sparse_config": {},
      "max_payload_index_count": 0,
      "max_resident_memory_percent": 0
    },
    "uuid": null,
    "metadata": {
      "city": "London",
      "color": "green"
    }
  },
  "shards": [
    {
      "id": 0,
      "key": "region_1",
      "local": {
        "variant_name": "string",
        "status": "green",
        "total_optimized_points": 0,
        "vectors_size_bytes": 0,
        "payloads_size_bytes": 0,
        "num_points": 0,
        "num_vectors": 0,
        "num_vectors_by_name": {},
        "segments": [
          {
            "info": {
              "uuid": "550e8400-e29b-41d4-a716-446655440000",
              "segment_type": "plain",
              "num_vectors": 0,
              "num_points": 0,
              "num_deferred_points": 0,
              "num_deleted_deferred_points": 0,
              "num_indexed_vectors": 0,
              "num_deleted_vectors": 0,
              "vectors_size_bytes": 0,
              "payloads_size_bytes": 0,
              "ram_usage_bytes": 0,
              "disk_usage_bytes": 0,
              "is_appendable": true,
              "index_schema": {},
              "vector_data": {},
              "payload_storage_io_backend": "mmap",
              "deferred_internal_id": 0
            },
            "config": {
              "vector_data": {},
              "sparse_vector_data": {},
              "payload_storage_type": {
                "type": "mmap"
              },
              "id_tracker_memory": "cold"
            },
            "vector_index_searches": [
              {
                "index_name": "string",
                "unfiltered_plain": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "unfiltered_hnsw": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "unfiltered_sparse": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_plain": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_small_cardinality": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_large_cardinality": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_acorn": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_exact": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "filtered_sparse": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                },
                "unfiltered_exact": {
                  "count": 0,
                  "fail_count": 0,
                  "avg_duration_micros": 0,
                  "min_duration_micros": 0,
                  "max_duration_micros": 0,
                  "total_duration_micros": 0,
                  "last_responded": "2024-01-15T09:30:00Z"
                }
              }
            ],
            "payload_field_indices": [
              {
                "field_name": "string",
                "index_type": "string",
                "points_values_count": 0,
                "points_count": 0,
                "histogram_bucket_size": 0
              }
            ]
          }
        ],
        "optimizations": {
          "status": "ok",
          "optimizations": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "log": [
            {
              "name": "string",
              "uuid": "550e8400-e29b-41d4-a716-446655440000",
              "segment_ids": [
                0
              ],
              "segment_uuids": [
                "550e8400-e29b-41d4-a716-446655440000"
              ],
              "status": "optimizing",
              "start_at": "2024-01-15T09:30:00Z",
              "end_at": "2024-01-15T09:30:00Z"
            }
          ]
        },
        "async_scorer": true,
        "indexed_only_excluded_vectors": {},
        "update_queue": {
          "length": 0,
          "op_num": 0,
          "deferred_points": 0
        }
      },
      "remote": [
        {
          "shard_id": 0,
          "peer_id": 0,
          "searches": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "updates": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          }
        }
      ],
      "replicate_states": {},
      "partial_snapshot": {
        "ongoing_create_snapshot_requests": 0,
        "is_recovering": true,
        "recovery_timestamp": 0
      }
    }
  ],
  "transfers": [
    {
      "shard_id": 0,
      "to_shard_id": 0,
      "from": 0,
      "to": 0,
      "sync": true,
      "method": "stream_records",
      "comment": "string"
    }
  ],
  "resharding": [
    {
      "stage": "migrating_points",
      "direction": "up",
      "shard_id": 0,
      "peer_id": 0,
      "shard_key": "region_1",
      "uuid": "550e8400-e29b-41d4-a716-446655440000"
    }
  ],
  "shard_clean_tasks": {}
}

CollectionConfigTelemetry

object
paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

hnsw_configHnswConfigrequired

Config of HNSW index

Show child attributes
minteger<uint>>= 0required

Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.

ef_constructinteger<uint>>= 4required

Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index.

full_scan_thresholdinteger<uint>>= 0required

Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than full_scan_threshold_kb, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256

max_indexing_threadsinteger<uint>>= 00

Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of slow building or broken/inefficient HNSW graphs. On small CPUs, less threads are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store HNSW index on disk. If set to false, index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the HNSW graph. Overrides the deprecated on_disk flag if both are set. Default: cached (cold if on_disk is set to true).

payload_minteger<uint> | null>= 0

Custom M param for hnsw graph built for payload index. If not set, default M will be used.

inline_storageboolean | null

Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.

optimizer_configOptimizersConfigrequired
Show child attributes
deleted_thresholdnumber<double>[0, 1]0.2

The minimal fraction of deleted vectors in a segment, required to perform segment optimization

vacuum_min_vector_numberinteger<uint>>= 1001000

The minimal number of vectors in a segment, required to perform segment optimization

default_segment_numberinteger<uint>>= 0required

Target amount of segments optimizer will try to keep. Real amount of segments may vary depending on multiple parameters: - Amount of stored points - Current write RPS

It is recommended to select default number of segments as a factor of the number of search threads, so that each segment would be handled evenly by one of the threads. If default_segment_number = 0, will be automatically selected by the number of available CPUs.

max_segment_sizeinteger<uint> | null>= 1null

Do not create segments larger than this size (in kilobytes). Large segments might require disproportionately long indexation times, therefore it makes sense to limit the size of segments.

If indexing speed is more important - make this parameter lower. If search speed is more important - make this parameter higher. Note: 1Kb = 1 vector of size 256 If not set, will be automatically selected considering the number of available CPUs.

memmap_thresholdinteger<uint> | null>= 0nulldeprecated

Maximum size (in kilobytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmapped file.

Memmap storage is disabled by default, to enable it, set this threshold to a reasonable value.

To disable memmap storage, set this to 0. Internally it will use the largest threshold possible.

Note: 1Kb = 1 vector of size 256

indexing_thresholdinteger<uint> | null>= 0null

Maximum size (in kilobytes) of vectors allowed for plain index, exceeding this threshold will enable vector indexing

Default value is 10,000, based on experiments and observations.

To disable vector indexing, set to 0.

Note: 1kB = 1 vector of size 256.

flush_interval_secinteger<uint64>>= 0required

Minimum interval between forced flushes.

max_optimization_threadsinteger<uint> | null>= 0null

Max number of threads (jobs) for running optimizations per shard. Note: each optimization job will also use max_indexing_threads threads by itself for index building. If null - have no limit and choose dynamically to saturate CPU. If 0 - no optimization threads, optimizations will be disabled.

prevent_unoptimizedboolean | nullnull

If enabled, the service will try to prevent the creation of large unoptimized segments. When enabled, new points written to segments larger than the indexing threshold are stored as "deferred points": they are persisted in the WAL and segments, but excluded from read/search results until the corresponding segments are optimized (e.g. indexed, quantized, or moved to mmap storage). Update requests with wait=true will only return after the deferred points become visible, which may significantly increase the perceived latency between submitting an update and its completion. Update requests with wait=false are not affected. Default is disabled.

wal_configWalConfigrequired
Show child attributes
wal_capacity_mbinteger<uint>>= 1required

Size of a single WAL segment in MB

wal_segments_aheadinteger<uint>>= 0required

Number of WAL segments to create ahead of actually used ones

wal_retain_closedinteger<uint>>= 11

Number of closed WAL segments to keep

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | anynull
strict_mode_configStrictModeConfigOutput | any
uuidstring<uuid> | nullnull
metadataPayload | any

Arbitrary JSON metadata for the collection

Example
{
  "params": {
    "vectors": {
      "size": 1,
      "distance": "Cosine",
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 10,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "quantization_config": {
        "scalar": {
          "type": "int8",
          "quantile": 0.5,
          "always_ram": true,
          "memory": "cold"
        }
      },
      "on_disk": true,
      "memory": "cold",
      "datatype": "float32",
      "multivector_config": {
        "comparator": "max_sim"
      }
    },
    "shard_number": 1,
    "sharding_method": "auto",
    "replication_factor": 1,
    "write_consistency_factor": 1,
    "read_fan_out_factor": 0,
    "read_fan_out_delay_ms": 0,
    "on_disk_payload": true,
    "payload": {
      "memory": "cold"
    },
    "id_tracker": {
      "memory": "cold"
    },
    "sparse_vectors": {}
  },
  "hnsw_config": {
    "m": 0,
    "ef_construct": 4,
    "full_scan_threshold": 0,
    "max_indexing_threads": 0,
    "on_disk": true,
    "memory": "cold",
    "payload_m": 0,
    "inline_storage": true
  },
  "optimizer_config": {
    "deleted_threshold": 0.2,
    "vacuum_min_vector_number": 1000,
    "default_segment_number": 0,
    "max_segment_size": null,
    "memmap_threshold": null,
    "indexing_threshold": null,
    "flush_interval_sec": 0,
    "max_optimization_threads": null,
    "prevent_unoptimized": null
  },
  "wal_config": {
    "wal_capacity_mb": 1,
    "wal_segments_ahead": 0,
    "wal_retain_closed": 1
  },
  "quantization_config": null,
  "strict_mode_config": {
    "enabled": true,
    "max_query_limit": 0,
    "max_timeout": 0,
    "unindexed_filtering_retrieve": true,
    "unindexed_filtering_update": true,
    "search_max_hnsw_ef": 0,
    "search_allow_exact": true,
    "search_max_oversampling": 0,
    "upsert_max_batchsize": 0,
    "search_max_batchsize": 0,
    "max_collection_vector_size_bytes": 0,
    "read_rate_limit": 0,
    "write_rate_limit": 0,
    "max_collection_payload_size_bytes": 0,
    "max_points_count": 0,
    "filter_max_conditions": 0,
    "condition_max_size": 0,
    "multivector_config": {},
    "sparse_config": {},
    "max_payload_index_count": 0,
    "max_resident_memory_percent": 0
  },
  "uuid": null,
  "metadata": {
    "city": "London",
    "color": "green"
  }
}

ReplicaSetTelemetry

object
idinteger<uint32>>= 0required
keystring | integer | any
localLocalShardTelemetry | any
remoteArray<RemoteShardTelemetry>required
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
searchesOperationDurationStatistics | any
updatesOperationDurationStatistics | any
replicate_statesobjectrequired
partial_snapshotPartialSnapshotTelemetry | any
Example
{
  "id": 0,
  "key": "region_1",
  "local": {
    "variant_name": "string",
    "status": "green",
    "total_optimized_points": 0,
    "vectors_size_bytes": 0,
    "payloads_size_bytes": 0,
    "num_points": 0,
    "num_vectors": 0,
    "num_vectors_by_name": {},
    "segments": [
      {
        "info": {
          "uuid": "550e8400-e29b-41d4-a716-446655440000",
          "segment_type": "plain",
          "num_vectors": 0,
          "num_points": 0,
          "num_deferred_points": 0,
          "num_deleted_deferred_points": 0,
          "num_indexed_vectors": 0,
          "num_deleted_vectors": 0,
          "vectors_size_bytes": 0,
          "payloads_size_bytes": 0,
          "ram_usage_bytes": 0,
          "disk_usage_bytes": 0,
          "is_appendable": true,
          "index_schema": {},
          "vector_data": {},
          "payload_storage_io_backend": "mmap",
          "deferred_internal_id": 0
        },
        "config": {
          "vector_data": {},
          "sparse_vector_data": {},
          "payload_storage_type": {
            "type": "mmap"
          },
          "id_tracker_memory": "cold"
        },
        "vector_index_searches": [
          {
            "index_name": "string",
            "unfiltered_plain": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "unfiltered_hnsw": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "unfiltered_sparse": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "filtered_plain": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "filtered_small_cardinality": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "filtered_large_cardinality": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "filtered_acorn": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "filtered_exact": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "filtered_sparse": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            },
            "unfiltered_exact": {
              "count": 0,
              "fail_count": 0,
              "avg_duration_micros": 0,
              "min_duration_micros": 0,
              "max_duration_micros": 0,
              "total_duration_micros": 0,
              "last_responded": "2024-01-15T09:30:00Z"
            }
          }
        ],
        "payload_field_indices": [
          {
            "field_name": "string",
            "index_type": "string",
            "points_values_count": 0,
            "points_count": 0,
            "histogram_bucket_size": 0
          }
        ]
      }
    ],
    "optimizations": {
      "status": "ok",
      "optimizations": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "log": [
        {
          "name": "string",
          "uuid": "550e8400-e29b-41d4-a716-446655440000",
          "segment_ids": [
            0
          ],
          "segment_uuids": [
            "550e8400-e29b-41d4-a716-446655440000"
          ],
          "status": "optimizing",
          "start_at": "2024-01-15T09:30:00Z",
          "end_at": "2024-01-15T09:30:00Z"
        }
      ]
    },
    "async_scorer": true,
    "indexed_only_excluded_vectors": {},
    "update_queue": {
      "length": 0,
      "op_num": 0,
      "deferred_points": 0
    }
  },
  "remote": [
    {
      "shard_id": 0,
      "peer_id": 0,
      "searches": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "updates": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      }
    }
  ],
  "replicate_states": {},
  "partial_snapshot": {
    "ongoing_create_snapshot_requests": 0,
    "is_recovering": true,
    "recovery_timestamp": 0
  }
}

LocalShardTelemetry

object
variant_namestring | null
statusShardStatus | any
total_optimized_pointsinteger<uint>>= 0required

Total number of optimized points since the last start.

vectors_size_bytesinteger<uint> | null>= 0

An ESTIMATION of effective amount of bytes used for vectors Do NOT rely on this number unless you know what you are doing

payloads_size_bytesinteger<uint> | null>= 0

An estimation of the effective amount of bytes used for payloads Do NOT rely on this number unless you know what you are doing

num_pointsinteger<uint> | null>= 0

Sum of segment points This is an approximate number Do NOT rely on this number unless you know what you are doing

num_vectorsinteger<uint> | null>= 0

Sum of number of vectors in all segments This is an approximate number Do NOT rely on this number unless you know what you are doing

num_vectors_by_nameobject | null

Sum of number of vectors across all segments, grouped by their name. This is an approximate number. Do NOT rely on this number unless you know what you are doing

segmentsArray<SegmentTelemetry> | null
Show child attributes
infoSegmentInforequired

Aggregated information about segment

Show child attributes
uuidstring<uuid>required
segment_typeSegmentTypeplainindexedspecialrequired

Type of segment

num_vectorsinteger<uint>>= 0required
num_pointsinteger<uint>>= 0required
num_deferred_pointsinteger<uint> | null>= 0
num_deleted_deferred_pointsinteger<uint> | null>= 0
num_indexed_vectorsinteger<uint>>= 0required
num_deleted_vectorsinteger<uint>>= 0required
vectors_size_bytesinteger<uint>>= 0required

An ESTIMATION of effective amount of bytes used for vectors Do NOT rely on this number unless you know what you are doing

payloads_size_bytesinteger<uint>>= 0required

An estimation of the effective amount of bytes used for payloads

ram_usage_bytesinteger<uint>>= 0required
disk_usage_bytesinteger<uint>>= 0required
is_appendablebooleanrequired
index_schemaobjectrequired
vector_dataobjectrequired
payload_storage_io_backendIoBackend | any

Universal I/O backend that payload storage reads files with. Absent if payload storage does not support configurable backends or only supports a single backend type.

deferred_internal_idinteger<uint32> | null>= 0

Internal ID from which points are deferred (hidden from reads). Only set for appendable segments.

configSegmentConfigrequired
Show child attributes
vector_dataobject[object Object]
sparse_vector_dataobject
payload_storage_typeobject | objectrequired

Type of payload storage

id_tracker_memoryMemory | any

Memory placement of the id tracker in non-appendable segments. Unset means the deployment default: cold in serverless-compatible mode, pinned otherwise.

vector_index_searchesArray<VectorIndexSearchesTelemetry>required
Show child attributes
index_namestring | null
unfiltered_plainOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_hnswOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_sparseOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_plainOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_small_cardinalityOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_large_cardinalityOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_acornOperationDurationStatistics
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_exactOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_sparseOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_exactOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
payload_field_indicesArray<PayloadIndexTelemetry>required
Show child attributes
field_namestring | null
index_typestringrequired
points_values_countinteger<uint>>= 0required

The amount of values indexed for all points.

points_countinteger<uint>>= 0required

The amount of points that have at least one value indexed.

histogram_bucket_sizeinteger<uint> | null>= 0
optimizationsOptimizerTelemetry | any
async_scorerboolean | null
indexed_only_excluded_vectorsobject | null
update_queueShardUpdateQueueInfo | any

Update queue status

Example
{
  "variant_name": "string",
  "status": "green",
  "total_optimized_points": 0,
  "vectors_size_bytes": 0,
  "payloads_size_bytes": 0,
  "num_points": 0,
  "num_vectors": 0,
  "num_vectors_by_name": {},
  "segments": [
    {
      "info": {
        "uuid": "550e8400-e29b-41d4-a716-446655440000",
        "segment_type": "plain",
        "num_vectors": 0,
        "num_points": 0,
        "num_deferred_points": 0,
        "num_deleted_deferred_points": 0,
        "num_indexed_vectors": 0,
        "num_deleted_vectors": 0,
        "vectors_size_bytes": 0,
        "payloads_size_bytes": 0,
        "ram_usage_bytes": 0,
        "disk_usage_bytes": 0,
        "is_appendable": true,
        "index_schema": {},
        "vector_data": {},
        "payload_storage_io_backend": "mmap",
        "deferred_internal_id": 0
      },
      "config": {
        "vector_data": {},
        "sparse_vector_data": {},
        "payload_storage_type": {
          "type": "mmap"
        },
        "id_tracker_memory": "cold"
      },
      "vector_index_searches": [
        {
          "index_name": "string",
          "unfiltered_plain": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "unfiltered_hnsw": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "unfiltered_sparse": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "filtered_plain": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "filtered_small_cardinality": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "filtered_large_cardinality": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "filtered_acorn": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "filtered_exact": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "filtered_sparse": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          },
          "unfiltered_exact": {
            "count": 0,
            "fail_count": 0,
            "avg_duration_micros": 0,
            "min_duration_micros": 0,
            "max_duration_micros": 0,
            "total_duration_micros": 0,
            "last_responded": "2024-01-15T09:30:00Z"
          }
        }
      ],
      "payload_field_indices": [
        {
          "field_name": "string",
          "index_type": "string",
          "points_values_count": 0,
          "points_count": 0,
          "histogram_bucket_size": 0
        }
      ]
    }
  ],
  "optimizations": {
    "status": "ok",
    "optimizations": {
      "count": 0,
      "fail_count": 0,
      "avg_duration_micros": 0,
      "min_duration_micros": 0,
      "max_duration_micros": 0,
      "total_duration_micros": 0,
      "last_responded": "2024-01-15T09:30:00Z"
    },
    "log": [
      {
        "name": "string",
        "uuid": "550e8400-e29b-41d4-a716-446655440000",
        "segment_ids": [
          0
        ],
        "segment_uuids": [
          "550e8400-e29b-41d4-a716-446655440000"
        ],
        "status": "optimizing",
        "start_at": "2024-01-15T09:30:00Z",
        "end_at": "2024-01-15T09:30:00Z"
      }
    ]
  },
  "async_scorer": true,
  "indexed_only_excluded_vectors": {},
  "update_queue": {
    "length": 0,
    "op_num": 0,
    "deferred_points": 0
  }
}

ShardStatus

string

Current state of the shard (supports same states as the collection)

Green - all good. Yellow - optimization is running, 'Grey' - optimizations are possible but not triggered, Red - some operations failed and was not recovered

ShardStatusgreenyellowgreyred
Example
"green"

SegmentTelemetry

object
infoSegmentInforequired

Aggregated information about segment

Show child attributes
uuidstring<uuid>required
segment_typeSegmentTypeplainindexedspecialrequired

Type of segment

num_vectorsinteger<uint>>= 0required
num_pointsinteger<uint>>= 0required
num_deferred_pointsinteger<uint> | null>= 0
num_deleted_deferred_pointsinteger<uint> | null>= 0
num_indexed_vectorsinteger<uint>>= 0required
num_deleted_vectorsinteger<uint>>= 0required
vectors_size_bytesinteger<uint>>= 0required

An ESTIMATION of effective amount of bytes used for vectors Do NOT rely on this number unless you know what you are doing

payloads_size_bytesinteger<uint>>= 0required

An estimation of the effective amount of bytes used for payloads

ram_usage_bytesinteger<uint>>= 0required
disk_usage_bytesinteger<uint>>= 0required
is_appendablebooleanrequired
index_schemaobjectrequired
vector_dataobjectrequired
payload_storage_io_backendIoBackend | any

Universal I/O backend that payload storage reads files with. Absent if payload storage does not support configurable backends or only supports a single backend type.

deferred_internal_idinteger<uint32> | null>= 0

Internal ID from which points are deferred (hidden from reads). Only set for appendable segments.

configSegmentConfigrequired
Show child attributes
vector_dataobject[object Object]
sparse_vector_dataobject
payload_storage_typeobject | objectrequired

Type of payload storage

id_tracker_memoryMemory | any

Memory placement of the id tracker in non-appendable segments. Unset means the deployment default: cold in serverless-compatible mode, pinned otherwise.

vector_index_searchesArray<VectorIndexSearchesTelemetry>required
Show child attributes
index_namestring | null
unfiltered_plainOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_hnswOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_sparseOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_plainOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_small_cardinalityOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_large_cardinalityOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_acornOperationDurationStatistics
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_exactOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_sparseOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_exactOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
payload_field_indicesArray<PayloadIndexTelemetry>required
Show child attributes
field_namestring | null
index_typestringrequired
points_values_countinteger<uint>>= 0required

The amount of values indexed for all points.

points_countinteger<uint>>= 0required

The amount of points that have at least one value indexed.

histogram_bucket_sizeinteger<uint> | null>= 0
Example
{
  "info": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "segment_type": "plain",
    "num_vectors": 0,
    "num_points": 0,
    "num_deferred_points": 0,
    "num_deleted_deferred_points": 0,
    "num_indexed_vectors": 0,
    "num_deleted_vectors": 0,
    "vectors_size_bytes": 0,
    "payloads_size_bytes": 0,
    "ram_usage_bytes": 0,
    "disk_usage_bytes": 0,
    "is_appendable": true,
    "index_schema": {},
    "vector_data": {},
    "payload_storage_io_backend": "mmap",
    "deferred_internal_id": 0
  },
  "config": {
    "vector_data": {},
    "sparse_vector_data": {},
    "payload_storage_type": {
      "type": "mmap"
    },
    "id_tracker_memory": "cold"
  },
  "vector_index_searches": [
    {
      "index_name": "string",
      "unfiltered_plain": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "unfiltered_hnsw": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "unfiltered_sparse": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "filtered_plain": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "filtered_small_cardinality": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "filtered_large_cardinality": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "filtered_acorn": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "filtered_exact": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "filtered_sparse": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      },
      "unfiltered_exact": {
        "count": 0,
        "fail_count": 0,
        "avg_duration_micros": 0,
        "min_duration_micros": 0,
        "max_duration_micros": 0,
        "total_duration_micros": 0,
        "last_responded": "2024-01-15T09:30:00Z"
      }
    }
  ],
  "payload_field_indices": [
    {
      "field_name": "string",
      "index_type": "string",
      "points_values_count": 0,
      "points_count": 0,
      "histogram_bucket_size": 0
    }
  ]
}

SegmentInfo

object

Aggregated information about segment

uuidstring<uuid>required
segment_typeSegmentTypeplainindexedspecialrequired

Type of segment

num_vectorsinteger<uint>>= 0required
num_pointsinteger<uint>>= 0required
num_deferred_pointsinteger<uint> | null>= 0
num_deleted_deferred_pointsinteger<uint> | null>= 0
num_indexed_vectorsinteger<uint>>= 0required
num_deleted_vectorsinteger<uint>>= 0required
vectors_size_bytesinteger<uint>>= 0required

An ESTIMATION of effective amount of bytes used for vectors Do NOT rely on this number unless you know what you are doing

payloads_size_bytesinteger<uint>>= 0required

An estimation of the effective amount of bytes used for payloads

ram_usage_bytesinteger<uint>>= 0required
disk_usage_bytesinteger<uint>>= 0required
is_appendablebooleanrequired
index_schemaobjectrequired
vector_dataobjectrequired
payload_storage_io_backendIoBackend | any

Universal I/O backend that payload storage reads files with. Absent if payload storage does not support configurable backends or only supports a single backend type.

deferred_internal_idinteger<uint32> | null>= 0

Internal ID from which points are deferred (hidden from reads). Only set for appendable segments.

Example
{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "segment_type": "plain",
  "num_vectors": 0,
  "num_points": 0,
  "num_deferred_points": 0,
  "num_deleted_deferred_points": 0,
  "num_indexed_vectors": 0,
  "num_deleted_vectors": 0,
  "vectors_size_bytes": 0,
  "payloads_size_bytes": 0,
  "ram_usage_bytes": 0,
  "disk_usage_bytes": 0,
  "is_appendable": true,
  "index_schema": {},
  "vector_data": {},
  "payload_storage_io_backend": "mmap",
  "deferred_internal_id": 0
}

SegmentType

string

Type of segment

SegmentTypeplainindexedspecial
Example
"plain"

VectorDataInfo

object
num_vectorsinteger<uint>>= 0required
num_indexed_vectorsinteger<uint>>= 0required
num_deleted_vectorsinteger<uint>>= 0required
io_backendIoBackend | any

Universal I/O backend that this vector storage reads files with. Absent if vector storage does not support configurable backends or only supports a single backend type.

Example
{
  "num_vectors": 0,
  "num_indexed_vectors": 0,
  "num_deleted_vectors": 0,
  "io_backend": "mmap"
}

IoBackend

string

Universal I/O backend that is used to read files.

Decided when the component is opened based on storage.performance.io_uring option, component memory placement and kernel io_uring support.

Options:

  • Mmap - Reads are served by the page cache through a memory mapping.

  • IoUring - Reads are submitted to the kernel with io_uring.

IoBackendmmapio_uring
Example
"mmap"

SegmentConfig

object
vector_dataobject[object Object]
sparse_vector_dataobject
payload_storage_typeobject | objectrequired

Type of payload storage

id_tracker_memoryMemory | any

Memory placement of the id tracker in non-appendable segments. Unset means the deployment default: cold in serverless-compatible mode, pinned otherwise.

Example
{
  "vector_data": {},
  "sparse_vector_data": {},
  "payload_storage_type": {
    "type": "mmap"
  },
  "id_tracker_memory": "cold"
}

VectorDataConfig

object

Config of single vector data storage

sizeinteger<uint>>= 0required

Size/dimensionality of the vectors used

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

storage_typestring | string | string | string | string | stringrequired

Storage types for vectors

indexobject | objectrequired

Vector index configuration

quantization_configScalarQuantization | ProductQuantization | BinaryQuantization | TurboQuantization | any

Vector specific quantization config that overrides collection config

multivector_configMultiVectorConfig | any

Vector specific configuration to enable multiple vectors per point

datatypeVectorStorageDatatype | any

Vector specific configuration to set specific storage element type

Example
{
  "size": 0,
  "distance": "Cosine",
  "storage_type": "Memory",
  "index": {
    "type": "plain",
    "options": {}
  },
  "quantization_config": {
    "scalar": {
      "type": "int8",
      "quantile": 0.5,
      "always_ram": true,
      "memory": "cold"
    }
  },
  "multivector_config": {
    "comparator": "max_sim"
  },
  "datatype": "float32"
}

VectorStorageType

object

Storage types for vectors

One of

Storage in memory (RAM)

Will be very fast at the cost of consuming a lot of memory.

stringMemory

Storage in mmap file, not appendable

Search performance is defined by disk speed and the fraction of vectors that fit in memory.

stringMmap

Storage in chunked mmap files, appendable

Search performance is defined by disk speed and the fraction of vectors that fit in memory.

stringChunkedMmap

Same as ChunkedMmap, but vectors are forced to be locked in RAM In this way we avoid cold requests to disk, but risk to run out of memory

stringInRamChunkedMmap

Storage in a single mmap file, not appendable Pre-fetched into RAM on load

stringInRamMmap

Vectors are inlined in the HNSW links file, not in a dedicated storage. Not appendable.

stringGraphInline
Example
"Memory"

Indexes

object

Vector index configuration

One of
typestringplainrequired
optionsobjectrequired
typestringhnswrequired
optionsHnswConfigrequired

Config of HNSW index

Show child attributes
minteger<uint>>= 0required

Number of edges per node in the index graph. Larger the value - more accurate the search, more space required.

ef_constructinteger<uint>>= 4required

Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index.

full_scan_thresholdinteger<uint>>= 0required

Minimal size threshold (in KiloBytes) below which full-scan is preferred over HNSW search. This measures the total size of vectors being queried against. When the maximum estimated amount of points that a condition satisfies is smaller than full_scan_threshold_kb, the query planner will use full-scan search instead of HNSW index traversal for better performance. Note: 1Kb = 1 vector of size 256

max_indexing_threadsinteger<uint>>= 00

Number of parallel threads used for background index building. If 0 - automatically select from 8 to 16. Best to keep between 8 and 16 to prevent likelihood of slow building or broken/inefficient HNSW graphs. On small CPUs, less threads are used.

on_diskboolean | nulldeprecated

Deprecated: use memory instead. Store HNSW index on disk. If set to false, index will be stored in RAM. Default: false

memoryMemory | any

Memory placement of the HNSW graph. Overrides the deprecated on_disk flag if both are set. Default: cached (cold if on_disk is set to true).

payload_minteger<uint> | null>= 0

Custom M param for hnsw graph built for payload index. If not set, default M will be used.

inline_storageboolean | null

Store copies of original and quantized vectors within the HNSW index file. Default: false. Enabling this option will trade the search speed for disk usage by reducing amount of random seeks during the search. Requires quantized vectors to be enabled. Multi-vectors are not supported.

Example
{
  "type": "plain",
  "options": {}
}

VectorStorageDatatype

string

Storage types for vectors

VectorStorageDatatypefloat32float16uint8turbo4
Example
"float32"

SparseVectorDataConfig

object

Config of single sparse vector data storage

indexSparseIndexConfigrequired

Configuration for sparse inverted index.

Show child attributes
full_scan_thresholdinteger<uint> | null>= 0

We prefer a full scan search upto (excluding) this number of vectors.

Note: this is number of vectors, not KiloBytes.

index_typestring | string | stringrequired

Sparse index types

datatypeVectorStorageDatatype | any

Datatype used to store weights in the index.

memoryMemory | any

Requested memory placement of the index.

The structural decision is carried by index_type; this field additionally distinguishes cold from cached for the mmap index variant.

storage_typestring
modifierModifier | any

Configures addition value modifications for sparse vectors. Default: none

Example
{
  "index": {
    "full_scan_threshold": 0,
    "index_type": "MutableRam",
    "datatype": "float32",
    "memory": "cold"
  },
  "storage_type": "mmap",
  "modifier": "none"
}

SparseIndexConfig

object

Configuration for sparse inverted index.

full_scan_thresholdinteger<uint> | null>= 0

We prefer a full scan search upto (excluding) this number of vectors.

Note: this is number of vectors, not KiloBytes.

index_typestring | string | stringrequired

Sparse index types

datatypeVectorStorageDatatype | any

Datatype used to store weights in the index.

memoryMemory | any

Requested memory placement of the index.

The structural decision is carried by index_type; this field additionally distinguishes cold from cached for the mmap index variant.

Example
{
  "full_scan_threshold": 0,
  "index_type": "MutableRam",
  "datatype": "float32",
  "memory": "cold"
}

SparseIndexType

object

Sparse index types

One of

Mutable RAM sparse index

stringMutableRam

Immutable RAM sparse index

stringImmutableRam

Mmap sparse index

stringMmap
Example
"MutableRam"

SparseVectorStorageType

object
One of

Storage in memory maps (gridstore storage)

stringmmap
Example
"mmap"

PayloadStorageType

object

Type of payload storage

One of
typestringmmaprequired
typestringin_ram_mmaprequired
Example
{
  "type": "mmap"
}

VectorIndexSearchesTelemetry

object
index_namestring | null
unfiltered_plainOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_hnswOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_sparseOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_plainOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_small_cardinalityOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_large_cardinalityOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_acornOperationDurationStatistics
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_exactOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
filtered_sparseOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
unfiltered_exactOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
Example
{
  "index_name": "string",
  "unfiltered_plain": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "unfiltered_hnsw": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "unfiltered_sparse": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "filtered_plain": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "filtered_small_cardinality": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "filtered_large_cardinality": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "filtered_acorn": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "filtered_exact": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "filtered_sparse": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "unfiltered_exact": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  }
}

OperationDurationStatistics

object
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
Example
{
  "count": 0,
  "fail_count": 0,
  "avg_duration_micros": 0,
  "min_duration_micros": 0,
  "max_duration_micros": 0,
  "total_duration_micros": 0,
  "last_responded": "2024-01-15T09:30:00Z"
}

PayloadIndexTelemetry

object
field_namestring | null
index_typestringrequired
points_values_countinteger<uint>>= 0required

The amount of values indexed for all points.

points_countinteger<uint>>= 0required

The amount of points that have at least one value indexed.

histogram_bucket_sizeinteger<uint> | null>= 0
Example
{
  "field_name": "string",
  "index_type": "string",
  "points_values_count": 0,
  "points_count": 0,
  "histogram_bucket_size": 0
}

OptimizerTelemetry

object
statusstring | objectrequired

Current state of the collection

optimizationsOperationDurationStatisticsrequired
Show child attributes
countinteger<uint>>= 0required
fail_countinteger<uint> | null>= 0
avg_duration_microsnumber<float> | null

The average time taken by 128 latest operations, calculated as a weighted mean.

min_duration_microsnumber<float> | null

The minimum duration of the operations across all the measurements.

max_duration_microsnumber<float> | null

The maximum duration of the operations across all the measurements.

total_duration_microsinteger<uint64> | null>= 0

The total duration of all operations in microseconds.

last_respondedstring<date-time> | null
logArray<TrackerTelemetry> | null
Show child attributes
namestringrequired

Name of the optimizer

uuidstring<uuid>required

UUID of the upcoming segment being created by the optimizer

segment_idsArray<integer>required

Internal segment IDs being optimized. These are local and in-memory, meaning that they can refer to different segments after a service restart.

segment_uuidsArray<string>required

Segment UUIDs being optimized. Refers to same segments as in segment_ids, but trackable across restarts, and reflect their directory name.

statusstring | object | objectrequired

Represents the current state of the optimizer being tracked

start_atstring<date-time>required

Start time of the optimizer

end_atstring<date-time> | null

End time of the optimizer

Example
{
  "status": "ok",
  "optimizations": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "log": [
    {
      "name": "string",
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "segment_ids": [
        0
      ],
      "segment_uuids": [
        "550e8400-e29b-41d4-a716-446655440000"
      ],
      "status": "optimizing",
      "start_at": "2024-01-15T09:30:00Z",
      "end_at": "2024-01-15T09:30:00Z"
    }
  ]
}

TrackerTelemetry

object

Tracker object used in telemetry

namestringrequired

Name of the optimizer

uuidstring<uuid>required

UUID of the upcoming segment being created by the optimizer

segment_idsArray<integer>required

Internal segment IDs being optimized. These are local and in-memory, meaning that they can refer to different segments after a service restart.

segment_uuidsArray<string>required

Segment UUIDs being optimized. Refers to same segments as in segment_ids, but trackable across restarts, and reflect their directory name.

statusstring | object | objectrequired

Represents the current state of the optimizer being tracked

start_atstring<date-time>required

Start time of the optimizer

end_atstring<date-time> | null

End time of the optimizer

Example
{
  "name": "string",
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "segment_ids": [
    0
  ],
  "segment_uuids": [
    "550e8400-e29b-41d4-a716-446655440000"
  ],
  "status": "optimizing",
  "start_at": "2024-01-15T09:30:00Z",
  "end_at": "2024-01-15T09:30:00Z"
}

TrackerStatus

object

Represents the current state of the optimizer being tracked

One of
stringoptimizingdone
cancelledstringrequired
errorstringrequired
Example
"optimizing"

ShardUpdateQueueInfo

object
lengthinteger<uint>>= 0required

Number of elements in the queue

op_numinteger<uint> | null>= 0

last operation number processed

deferred_pointsinteger<uint> | null>= 0

Number of points that are deferred (i.e hidden from search as they're not yet optimized).

Example
{
  "length": 0,
  "op_num": 0,
  "deferred_points": 0
}

RemoteShardTelemetry

object
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
searchesOperationDurationStatistics | any
updatesOperationDurationStatistics | any
Example
{
  "shard_id": 0,
  "peer_id": 0,
  "searches": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  },
  "updates": {
    "count": 0,
    "fail_count": 0,
    "avg_duration_micros": 0,
    "min_duration_micros": 0,
    "max_duration_micros": 0,
    "total_duration_micros": 0,
    "last_responded": "2024-01-15T09:30:00Z"
  }
}

PartialSnapshotTelemetry

object
ongoing_create_snapshot_requestsinteger<uint>>= 0required
is_recoveringbooleanrequired
recovery_timestampinteger<uint64>>= 0required
Example
{
  "ongoing_create_snapshot_requests": 0,
  "is_recovering": true,
  "recovery_timestamp": 0
}

ReshardingTelemetry

object
stageReshardingStagemigrating_pointsread_hash_ring_committedwrite_hash_ring_committedrequired

Resharding stages

directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
uuidstring<uuid>required
Example
{
  "stage": "migrating_points",
  "direction": "up",
  "shard_id": 0,
  "peer_id": 0,
  "shard_key": "region_1",
  "uuid": "550e8400-e29b-41d4-a716-446655440000"
}

ReshardingStage

string

Resharding stages

ReshardingStagemigrating_pointsread_hash_ring_committedwrite_hash_ring_committed
Example
"migrating_points"

ShardCleanStatusTelemetry

object
One of
stringstarteddonecancelled
progressShardCleanStatusProgressTelemetryrequired
Show child attributes
deleted_pointsinteger<uint>>= 0required
failedShardCleanStatusFailedTelemetryrequired
Show child attributes
reasonstringrequired
Example
"started"

ShardCleanStatusProgressTelemetry

object
deleted_pointsinteger<uint>>= 0required
Example
{
  "deleted_points": 0
}

ShardCleanStatusFailedTelemetry

object
reasonstringrequired
Example
{
  "reason": "string"
}

CollectionsAggregatedTelemetry

object
vectorsinteger<uint>>= 0required
optimizers_statusstring | objectrequired

Current state of the collection

paramsCollectionParamsrequired
Show child attributes
vectorsVectorParams | object

Vector params separator for single and multiple vector modes Single mode:

{ "size": 128, "distance": "Cosine" }

or multiple mode:

{ "default": { "size": 128, "distance": "Cosine" } }

shard_numberinteger<uint32>>= 11

Number of shards the collection has

sharding_methodShardingMethod | any

Sharding method Default is Auto - points are distributed across all available shards Custom - points are distributed across shards according to shard key

replication_factorinteger<uint32>>= 11

Number of replicas for each shard

write_consistency_factorinteger<uint32>>= 11

Defines how many replicas should apply the operation for us to consider it successful. Increasing this number will make the collection more resilient to inconsistencies, but will also make it fail if not enough replicas are available. Does not have any performance impact.

read_fan_out_factorinteger<uint32> | null>= 0

Defines how many additional replicas should be processing read request at the same time. Default value is Auto, which means that fan-out will be determined automatically based on the busyness of the local replica. Having more than 0 might be useful to smooth latency spikes of individual nodes.

read_fan_out_delay_msinteger<uint64> | null>= 0

Define number of milliseconds to wait before attempting to read from another replica. This setting can help to reduce latency spikes in case of occasional slow replicas. Default is 0, which means delayed fan out request is disabled.

on_disk_payloadboolean | nulltruedeprecated

Deprecated: use payload.memory instead. If true - point's payload will not be stored in memory. It will be read from the disk every time it is requested. This setting saves RAM by (slightly) increasing the response time. Note: those payload values that are involved in filtering and are indexed - remain in RAM.

Default: true

payloadPayloadStorageParams | any

Configuration of the payload storage

id_trackerIdTrackerParams | any

Configuration of the point id tracker

sparse_vectorsobject | null

Configuration of the sparse vector storage

Example
{
  "vectors": 0,
  "optimizers_status": "ok",
  "params": {
    "vectors": {
      "size": 1,
      "distance": "Cosine",
      "hnsw_config": {
        "m": 0,
        "ef_construct": 4,
        "full_scan_threshold": 10,
        "max_indexing_threads": 0,
        "on_disk": true,
        "memory": "cold",
        "payload_m": 0,
        "inline_storage": true
      },
      "quantization_config": {
        "scalar": {
          "type": "int8",
          "quantile": 0.5,
          "always_ram": true,
          "memory": "cold"
        }
      },
      "on_disk": true,
      "memory": "cold",
      "datatype": "float32",
      "multivector_config": {
        "comparator": "max_sim"
      }
    },
    "shard_number": 1,
    "sharding_method": "auto",
    "replication_factor": 1,
    "write_consistency_factor": 1,
    "read_fan_out_factor": 0,
    "read_fan_out_delay_ms": 0,
    "on_disk_payload": true,
    "payload": {
      "memory": "cold"
    },
    "id_tracker": {
      "memory": "cold"
    },
    "sparse_vectors": {}
  }
}

CollectionSnapshotTelemetry

object
idstringrequired
running_snapshotsinteger<uint> | null>= 0
running_snapshot_recoveryinteger<uint> | null>= 0
total_snapshot_creationsinteger<uint> | null>= 0
Example
{
  "id": "string",
  "running_snapshots": 0,
  "running_snapshot_recovery": 0,
  "total_snapshot_creations": 0
}

ClusterTelemetry

object
enabledbooleanrequired
statusClusterStatusTelemetry | any
configClusterConfigTelemetry | any
peersobject | null
peer_metadataobject | null
metadataobject | null
resharding_enabledboolean | null
Example
{
  "enabled": true,
  "status": {
    "number_of_peers": 0,
    "term": 0,
    "commit": 0,
    "pending_operations": 0,
    "role": "Follower",
    "is_voter": true,
    "peer_id": 0,
    "consensus_thread_status": {
      "consensus_thread_status": "working",
      "last_update": "2024-01-15T09:30:00Z"
    }
  },
  "config": {
    "grpc_timeout_ms": 0,
    "p2p": {
      "connection_pool_size": 0
    },
    "consensus": {
      "max_message_queue_size": 0,
      "tick_period_ms": 0,
      "bootstrap_timeout_sec": 0
    }
  },
  "peers": {},
  "peer_metadata": {},
  "metadata": {},
  "resharding_enabled": true
}

ClusterStatusTelemetry

object
number_of_peersinteger<uint>>= 0required
terminteger<uint64>>= 0required
commitinteger<uint64>>= 0required
pending_operationsinteger<uint>>= 0required
roleStateRole | any
is_voterbooleanrequired
peer_idinteger<uint64> | null>= 0
consensus_thread_statusobject | object | objectrequired

Information about current consensus thread status

Example
{
  "number_of_peers": 0,
  "term": 0,
  "commit": 0,
  "pending_operations": 0,
  "role": "Follower",
  "is_voter": true,
  "peer_id": 0,
  "consensus_thread_status": {
    "consensus_thread_status": "working",
    "last_update": "2024-01-15T09:30:00Z"
  }
}

ClusterConfigTelemetry

object
grpc_timeout_msinteger<uint64>>= 0required
p2pP2pConfigTelemetryrequired
Show child attributes
connection_pool_sizeinteger<uint>>= 0required
consensusConsensusConfigTelemetryrequired
Show child attributes
max_message_queue_sizeinteger<uint>>= 0required
tick_period_msinteger<uint64>>= 0required
bootstrap_timeout_secinteger<uint64>>= 0required
Example
{
  "grpc_timeout_ms": 0,
  "p2p": {
    "connection_pool_size": 0
  },
  "consensus": {
    "max_message_queue_size": 0,
    "tick_period_ms": 0,
    "bootstrap_timeout_sec": 0
  }
}

P2pConfigTelemetry

object
connection_pool_sizeinteger<uint>>= 0required
Example
{
  "connection_pool_size": 0
}

ConsensusConfigTelemetry

object
max_message_queue_sizeinteger<uint>>= 0required
tick_period_msinteger<uint64>>= 0required
bootstrap_timeout_secinteger<uint64>>= 0required
Example
{
  "max_message_queue_size": 0,
  "tick_period_ms": 0,
  "bootstrap_timeout_sec": 0
}

PeerMetadata

object

Metadata describing extra properties for each peer

versionstringrequired

Peer Qdrant version

Example
{
  "version": "string"
}

RequestsTelemetry

object
restWebApiTelemetryrequired
Show child attributes
responsesobjectrequired
per_collection_responsesobject
grpcGrpcTelemetryrequired
Show child attributes
responsesobjectrequired
per_collection_responsesobject
Example
{
  "rest": {
    "responses": {},
    "per_collection_responses": {}
  },
  "grpc": {
    "responses": {},
    "per_collection_responses": {}
  }
}

WebApiTelemetry

object
responsesobjectrequired
per_collection_responsesobject
Example
{
  "responses": {},
  "per_collection_responses": {}
}

GrpcTelemetry

object
responsesobjectrequired
per_collection_responsesobject
Example
{
  "responses": {},
  "per_collection_responses": {}
}

MemoryTelemetry

object
active_bytesinteger<uint>>= 0required

Total number of bytes in active pages allocated by the application

allocated_bytesinteger<uint>>= 0required

Total number of bytes allocated by the application

metadata_bytesinteger<uint>>= 0required

Total number of bytes dedicated to metadata

resident_bytesinteger<uint>>= 0required

Maximum number of bytes in physically resident data pages mapped

retained_bytesinteger<uint>>= 0required

Total number of bytes in virtual memory mappings

Example
{
  "active_bytes": 0,
  "allocated_bytes": 0,
  "metadata_bytes": 0,
  "resident_bytes": 0,
  "retained_bytes": 0
}

HardwareTelemetry

object
collection_dataobjectrequired
Example
{
  "collection_data": {}
}

HardwareUsage

object

Usage of the hardware resources, spent to process the request

cpuinteger<uint>>= 0required
payload_io_readinteger<uint>>= 0required
payload_io_writeinteger<uint>>= 0required
payload_index_io_readinteger<uint>>= 0required
payload_index_io_writeinteger<uint>>= 0required
vector_io_readinteger<uint>>= 0required
vector_io_writeinteger<uint>>= 0required
Example
{
  "cpu": 0,
  "payload_io_read": 0,
  "payload_io_write": 0,
  "payload_index_io_read": 0,
  "payload_index_io_write": 0,
  "vector_io_read": 0,
  "vector_io_write": 0
}

SearchThreadPoolTelemetry

object

Live snapshot of the adaptive search routing.

mode is the runtime currently selected by [SearchMode]; high_cpu_threads and high_io_threads are the blocking-thread budgets of the two underlying runtimes that the adaptive handle routes between.

modestringrequired

Currently active mode (high_cpu or high_io).

high_cpu_threadsinteger<uint>>= 0required

Blocking-thread count of the high-CPU runtime.

high_io_threadsinteger<uint>>= 0required

Blocking-thread count of the high-IO runtime.

Example
{
  "mode": "string",
  "high_cpu_threads": 0,
  "high_io_threads": 0
}

QuotaTelemetry

object

What a node reports about the quota it is enforcing.

Carries the verdict rather than the raw utilization, because the point of reporting it is to know whether this node is currently refusing writes — which depends on the limits as well as the readings.

configQuotaConfigrequired

Cluster-wide limits on node resources.

An unset limit means the corresponding resource is not capped. Limits are only enforced while enabled is true.

Show child attributes
enabledbooleanfalse

Whether the limits below are enforced.

max_resident_memory_percentinteger<uint8> | null[1, 100]

Reject memory-consuming updates once process resident memory reaches this percentage of total system memory (or of the cgroup limit, if one applies).

max_disk_usage_percentinteger<uint8> | null[1, 100]

Reject disk-consuming updates once the filesystem hosting the storage directory is filled to this percentage of its capacity.

release_margin_percentinteger<uint8> | null[0, 100]

How many percentage points below its limit a resource has to fall before this node starts accepting work again.

Without a margin, a resource resting on its limit crosses it in both directions on the noise between two readings, putting the node in and out of service each time — and restarting a shard recovery with it. Raise it where usage is volatile; 0 disables the margin and releases as soon as usage is back under the limit.

Unset leaves the built-in default in force, so a config written today does not pin a number that a later release may want to revise.

exceededQuotaExceededrequired

Which of the enforced limits a node is currently refusing work over.

Reported per resource because they are freed by different actions: disk by deleting or optimizing, memory by unloading. A single flag would not say which one to go and fix.

true outlasts the reading that caused it: a resource that reaches its limit stays flagged until it has fallen a margin below, so that one resting near the limit does not flip the node in and out of service. Expect to see it set while the reported utilization is already back under the configured limit.

A field is null when the node is not enforcing that resource — the quota is disabled, no limit is set for it, or it cannot be measured here. That is deliberately distinct from false: a resource that can never trip must not be reported as one that is within its limits, or it invites an alert that can never fire.

Show child attributes
resident_memoryboolean | null
disk_usageboolean | null
Example
{
  "config": {
    "enabled": false,
    "max_resident_memory_percent": 1,
    "max_disk_usage_percent": 1,
    "release_margin_percent": 0
  },
  "exceeded": {
    "resident_memory": true,
    "disk_usage": true
  }
}

QuotaConfig

object

Cluster-wide limits on node resources.

An unset limit means the corresponding resource is not capped. Limits are only enforced while enabled is true.

enabledbooleanfalse

Whether the limits below are enforced.

max_resident_memory_percentinteger<uint8> | null[1, 100]

Reject memory-consuming updates once process resident memory reaches this percentage of total system memory (or of the cgroup limit, if one applies).

max_disk_usage_percentinteger<uint8> | null[1, 100]

Reject disk-consuming updates once the filesystem hosting the storage directory is filled to this percentage of its capacity.

release_margin_percentinteger<uint8> | null[0, 100]

How many percentage points below its limit a resource has to fall before this node starts accepting work again.

Without a margin, a resource resting on its limit crosses it in both directions on the noise between two readings, putting the node in and out of service each time — and restarting a shard recovery with it. Raise it where usage is volatile; 0 disables the margin and releases as soon as usage is back under the limit.

Unset leaves the built-in default in force, so a config written today does not pin a number that a later release may want to revise.

Example
{
  "enabled": false,
  "max_resident_memory_percent": 1,
  "max_disk_usage_percent": 1,
  "release_margin_percent": 0
}

QuotaExceeded

object

Which of the enforced limits a node is currently refusing work over.

Reported per resource because they are freed by different actions: disk by deleting or optimizing, memory by unloading. A single flag would not say which one to go and fix.

true outlasts the reading that caused it: a resource that reaches its limit stays flagged until it has fallen a margin below, so that one resting near the limit does not flip the node in and out of service. Expect to see it set while the reported utilization is already back under the configured limit.

A field is null when the node is not enforcing that resource — the quota is disabled, no limit is set for it, or it cannot be measured here. That is deliberately distinct from false: a resource that can never trip must not be reported as one that is within its limits, or it invites an alert that can never fire.

resident_memoryboolean | null
disk_usageboolean | null
Example
{
  "resident_memory": true,
  "disk_usage": true
}

ClusterOperations

object
Any of
move_shardMoveShardrequired
Show child attributes
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
methodShardTransferMethod | any

Method for transferring the shard from one node to another

replicate_shardReplicateShardrequired
Show child attributes
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
methodShardTransferMethod | any

Method for transferring the shard from one node to another

abort_transferAbortShardTransferrequired
Show child attributes
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
drop_replicaReplicarequired
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
create_sharding_keyCreateShardingKeyrequired
Show child attributes
shard_keystring | integerrequired
shards_numberinteger<uint32> | null>= 1

How many shards to create for this key If not specified, will use the default value from config

replication_factorinteger<uint32> | null>= 1

How many replicas to create for each shard If not specified, will use the default value from config

placementArray<integer> | null

Placement of shards for this key List of peer ids, that can be used to place shards for this key If not specified, will be randomly placed among all peers

initial_stateReplicaState | any

Initial state of the shards for this key If not specified, will be Initializing first and then Active Warning: do not change this unless you know what you are doing

drop_sharding_keyDropShardingKeyrequired
Show child attributes
shard_keystring | integerrequired
restart_transferRestartTransferrequired
Show child attributes
shard_idinteger<uint32>>= 0required
from_peer_idinteger<uint64>>= 0required
to_peer_idinteger<uint64>>= 0required
methodShardTransferMethodstream_recordssnapshotwal_deltaresharding_stream_recordsrequired

Methods for transferring a shard from one node to another.

  • stream_records - Stream all shard records in batches until the whole shard is transferred.

  • snapshot - Snapshot the shard, transfer and restore it on the receiver.

  • wal_delta - Attempt to transfer shard difference by WAL delta.

  • resharding_stream_records - Shard transfer for resharding: stream all records in batches until all points are transferred.

start_reshardingStartReshardingrequired
Show child attributes
directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

peer_idinteger<uint64> | null>= 0

Peer to create the new shard on, or to migrate points away from when scaling down. If not specified, the least loaded peer is picked when scaling up, a peer holding the removed shard when scaling down.

shard_keystring | integer | any

Custom shard key to reshard, must already exist. If not specified, shards without a shard key are resharded.

abort_reshardingAbortReshardingrequired
any
Example
{
  "move_shard": {
    "shard_id": 0,
    "to_peer_id": 0,
    "from_peer_id": 0,
    "method": "stream_records"
  }
}

MoveShardOperation

object
move_shardMoveShardrequired
Show child attributes
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
methodShardTransferMethod | any

Method for transferring the shard from one node to another

Example
{
  "move_shard": {
    "shard_id": 0,
    "to_peer_id": 0,
    "from_peer_id": 0,
    "method": "stream_records"
  }
}

MoveShard

object
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
methodShardTransferMethod | any

Method for transferring the shard from one node to another

Example
{
  "shard_id": 0,
  "to_peer_id": 0,
  "from_peer_id": 0,
  "method": "stream_records"
}

ReplicateShardOperation

object
replicate_shardReplicateShardrequired
Show child attributes
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
methodShardTransferMethod | any

Method for transferring the shard from one node to another

Example
{
  "replicate_shard": {
    "shard_id": 0,
    "to_peer_id": 0,
    "from_peer_id": 0,
    "method": "stream_records"
  }
}

ReplicateShard

object
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
methodShardTransferMethod | any

Method for transferring the shard from one node to another

Example
{
  "shard_id": 0,
  "to_peer_id": 0,
  "from_peer_id": 0,
  "method": "stream_records"
}

AbortTransferOperation

object
abort_transferAbortShardTransferrequired
Show child attributes
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
Example
{
  "abort_transfer": {
    "shard_id": 0,
    "to_peer_id": 0,
    "from_peer_id": 0
  }
}

AbortShardTransfer

object
shard_idinteger<uint32>>= 0required
to_peer_idinteger<uint64>>= 0required
from_peer_idinteger<uint64>>= 0required
Example
{
  "shard_id": 0,
  "to_peer_id": 0,
  "from_peer_id": 0
}

DropReplicaOperation

object
drop_replicaReplicarequired
Show child attributes
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
Example
{
  "drop_replica": {
    "shard_id": 0,
    "peer_id": 0
  }
}

Replica

object
shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
Example
{
  "shard_id": 0,
  "peer_id": 0
}

CreateShardingKeyOperation

object
create_sharding_keyCreateShardingKeyrequired
Show child attributes
shard_keystring | integerrequired
shards_numberinteger<uint32> | null>= 1

How many shards to create for this key If not specified, will use the default value from config

replication_factorinteger<uint32> | null>= 1

How many replicas to create for each shard If not specified, will use the default value from config

placementArray<integer> | null

Placement of shards for this key List of peer ids, that can be used to place shards for this key If not specified, will be randomly placed among all peers

initial_stateReplicaState | any

Initial state of the shards for this key If not specified, will be Initializing first and then Active Warning: do not change this unless you know what you are doing

Example
{
  "create_sharding_key": {
    "shard_key": "region_1",
    "shards_number": 1,
    "replication_factor": 1,
    "placement": [
      0
    ],
    "initial_state": "Active"
  }
}

CreateShardingKey

object
shard_keystring | integerrequired
shards_numberinteger<uint32> | null>= 1

How many shards to create for this key If not specified, will use the default value from config

replication_factorinteger<uint32> | null>= 1

How many replicas to create for each shard If not specified, will use the default value from config

placementArray<integer> | null

Placement of shards for this key List of peer ids, that can be used to place shards for this key If not specified, will be randomly placed among all peers

initial_stateReplicaState | any

Initial state of the shards for this key If not specified, will be Initializing first and then Active Warning: do not change this unless you know what you are doing

Example
{
  "shard_key": "region_1",
  "shards_number": 1,
  "replication_factor": 1,
  "placement": [
    0
  ],
  "initial_state": "Active"
}

DropShardingKeyOperation

object
drop_sharding_keyDropShardingKeyrequired
Show child attributes
shard_keystring | integerrequired
Example
{
  "drop_sharding_key": {
    "shard_key": "region_1"
  }
}

DropShardingKey

object
shard_keystring | integerrequired
Example
{
  "shard_key": "region_1"
}

RestartTransferOperation

object
restart_transferRestartTransferrequired
Show child attributes
shard_idinteger<uint32>>= 0required
from_peer_idinteger<uint64>>= 0required
to_peer_idinteger<uint64>>= 0required
methodShardTransferMethodstream_recordssnapshotwal_deltaresharding_stream_recordsrequired

Methods for transferring a shard from one node to another.

  • stream_records - Stream all shard records in batches until the whole shard is transferred.

  • snapshot - Snapshot the shard, transfer and restore it on the receiver.

  • wal_delta - Attempt to transfer shard difference by WAL delta.

  • resharding_stream_records - Shard transfer for resharding: stream all records in batches until all points are transferred.

Example
{
  "restart_transfer": {
    "shard_id": 0,
    "from_peer_id": 0,
    "to_peer_id": 0,
    "method": "stream_records"
  }
}

RestartTransfer

object
shard_idinteger<uint32>>= 0required
from_peer_idinteger<uint64>>= 0required
to_peer_idinteger<uint64>>= 0required
methodShardTransferMethodstream_recordssnapshotwal_deltaresharding_stream_recordsrequired

Methods for transferring a shard from one node to another.

  • stream_records - Stream all shard records in batches until the whole shard is transferred.

  • snapshot - Snapshot the shard, transfer and restore it on the receiver.

  • wal_delta - Attempt to transfer shard difference by WAL delta.

  • resharding_stream_records - Shard transfer for resharding: stream all records in batches until all points are transferred.

Example
{
  "shard_id": 0,
  "from_peer_id": 0,
  "to_peer_id": 0,
  "method": "stream_records"
}

StartReshardingOperation

object
start_reshardingStartReshardingrequired
Show child attributes
directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

peer_idinteger<uint64> | null>= 0

Peer to create the new shard on, or to migrate points away from when scaling down. If not specified, the least loaded peer is picked when scaling up, a peer holding the removed shard when scaling down.

shard_keystring | integer | any

Custom shard key to reshard, must already exist. If not specified, shards without a shard key are resharded.

Example
{
  "start_resharding": {
    "direction": "up",
    "peer_id": 0,
    "shard_key": "region_1"
  }
}

StartResharding

object
directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

peer_idinteger<uint64> | null>= 0

Peer to create the new shard on, or to migrate points away from when scaling down. If not specified, the least loaded peer is picked when scaling up, a peer holding the removed shard when scaling down.

shard_keystring | integer | any

Custom shard key to reshard, must already exist. If not specified, shards without a shard key are resharded.

Example
{
  "direction": "up",
  "peer_id": 0,
  "shard_key": "region_1"
}

AbortReshardingOperation

object
abort_reshardingAbortReshardingrequired
Example
{
  "abort_resharding": {}
}

AbortResharding

object
AbortResharding
Example
{}

ReplicatePointsOperation

object
replicate_pointsanyrequired
Example
{}

ReplicatePoints

object
filterFilter | any
from_shard_keystring | integerrequired
to_shard_keystring | integerrequired
Example
{
  "from_shard_key": "region_1",
  "to_shard_key": "region_1"
}

SnapshotRecover

object
locationstring<uri>required

Examples: - URL http://localhost:8080/collections/my_collection/snapshots/my_snapshot - Local path file:///qdrant/snapshots/test_collection-2022-08-04-10-49-10.snapshot

prioritySnapshotPriority | anynull

Defines which data should be used as a source of truth if there are other replicas in the cluster. If set to Snapshot, the snapshot will be used as a source of truth, and the current state will be overwritten. If set to Replica, the current state will be used as a source of truth, and after recovery it will be synchronized from other replicas.

checksumstring | nullnull

Optional SHA256 checksum to verify snapshot integrity before recovery.

api_keystring | nullnull

Optional API key used when fetching the snapshot from a remote URL.

Example
{
  "location": "https://example.com",
  "priority": null,
  "checksum": null,
  "api_key": null
}

SnapshotPriority

string

Defines source of truth for snapshot recovery:

NoSync means - restore snapshot without any additional synchronization. Snapshot means - prefer snapshot data over the current state. Replica means - prefer existing data over the snapshot.

SnapshotPriorityno_syncsnapshotreplica
Example
"no_sync"

CollectionsAliasesResponse

object
aliasesArray<AliasDescription>required
Show child attributes
alias_namestringrequired
collection_namestringrequired
Example
{
  "aliases": [
    {
      "alias_name": "blogs-title",
      "collection_name": "arivx-title"
    }
  ]
}

AliasDescription

object
alias_namestringrequired
collection_namestringrequired
Example
{
  "alias_name": "blogs-title",
  "collection_name": "arivx-title"
}

WriteOrdering

string

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

WriteOrderingweakmediumstrong
Example
"weak"

ReadConsistency

object

Read consistency parameter

Defines how many replicas should be queried to get the result

  • N - send N random request and return points, which present on all of them

  • majority - send N/2+1 random request and return points, which present on all of them

  • quorum - send requests to all nodes and return points which present on majority of them

  • all - send requests to all nodes and return points which present on all of them

Default value is Factor(1)

Any of
integer<uint>>= 1
  • majority - send N/2+1 random request and return points, which present on all of them

  • quorum - send requests to all nodes and return points which present on majority of nodes

  • all - send requests to all nodes and return points which present on all nodes

ReadConsistencyTypemajorityquorumall
Example
1

ReadConsistencyType

string
  • majority - send N/2+1 random request and return points, which present on all of them

  • quorum - send requests to all nodes and return points which present on majority of nodes

  • all - send requests to all nodes and return points which present on all nodes

ReadConsistencyTypemajorityquorumall
Example
"majority"

UpdateVectors

object
pointsArray<PointVectors>required

Points with named vectors

Show child attributes
idinteger | stringrequired

Type, used for specifying point ID in user interface

vectorArray<number> | Array<Array<number>> | object | Document | Image | InferenceObjectrequired

Full vector data per point separator with single and multiple vector modes

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
update_filterFilter | any
Example
{
  "points": [
    {
      "id": 42,
      "vector": [
        0.875,
        0.140625,
        0.897599995136261
      ]
    }
  ],
  "shard_key": "region_1"
}

PointVectors

object
idinteger | stringrequired

Type, used for specifying point ID in user interface

vectorArray<number> | Array<Array<number>> | object | Document | Image | InferenceObjectrequired

Full vector data per point separator with single and multiple vector modes

Example
{
  "id": 42,
  "vector": [
    0.875,
    0.140625,
    0.897599995136261
  ]
}

DeleteVectors

object
pointsArray<ExtendedPointId> | null

Deletes values from each point in this list

Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
filterFilter | any

Deletes values from points that satisfy this filter condition

vectorArray<string>required

Vector names

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
Example
{
  "points": [
    42
  ],
  "vector": [
    "string"
  ],
  "shard_key": "region_1"
}

PointGroup

object
hitsArray<ScoredPoint>required

Scored points that have the same value of the group_by key

Show child attributes
idinteger | stringrequired

Type, used for specifying point ID in user interface

versioninteger<uint64>>= 0required

Point version

scorenumber<float>required

Points vector distance to the query vector

payloadPayload | any

Payload - values assigned to the point

vectorArray<number> | Array<Array<number>> | object | any

Vector of the point

shard_keystring | integer | any

Shard Key

order_valueinteger | number | any

Order-by value

idstring | integer | integerrequired

Value of the group_by key, shared across all the hits in the group

lookupRecord | any

Record that has been looked up using the group id

Example
{
  "hits": [
    {
      "id": 42,
      "version": 3,
      "score": 0.75,
      "payload": {
        "city": "London",
        "color": "green"
      },
      "vector": [
        0.875,
        0.140625,
        0.897599995136261
      ],
      "shard_key": "region_1",
      "order_value": 42
    }
  ],
  "id": "string",
  "lookup": {
    "id": 42,
    "payload": {
      "city": "London",
      "color": "green"
    },
    "vector": [
      0.875,
      0.140625,
      0.897599995136261
    ],
    "shard_key": "region_1",
    "order_value": 42
  }
}

GroupId

object

Value of the group_by key, shared across all the hits in the group

Any of
string
integer<uint64>>= 0
integer<int64>
Example
"string"

GroupsResult

object
groupsArray<PointGroup>required
Show child attributes
hitsArray<ScoredPoint>required

Scored points that have the same value of the group_by key

Show child attributes
idinteger | stringrequired

Type, used for specifying point ID in user interface

versioninteger<uint64>>= 0required

Point version

scorenumber<float>required

Points vector distance to the query vector

payloadPayload | any

Payload - values assigned to the point

vectorArray<number> | Array<Array<number>> | object | any

Vector of the point

shard_keystring | integer | any

Shard Key

order_valueinteger | number | any

Order-by value

idstring | integer | integerrequired

Value of the group_by key, shared across all the hits in the group

lookupRecord | any

Record that has been looked up using the group id

Example
{
  "groups": [
    {
      "hits": [
        {
          "id": 42,
          "version": 3,
          "score": 0.75,
          "payload": {
            "city": "London",
            "color": "green"
          },
          "vector": [
            0.875,
            0.140625,
            0.897599995136261
          ],
          "shard_key": "region_1",
          "order_value": 42
        }
      ],
      "id": "string",
      "lookup": {
        "id": 42,
        "payload": {
          "city": "London",
          "color": "green"
        },
        "vector": [
          0.875,
          0.140625,
          0.897599995136261
        ],
        "shard_key": "region_1",
        "order_value": 42
      }
    }
  ]
}

UpdateOperations

object
operationsArray<any>required
Example
{
  "operations": []
}

UpdateOperation

object
Any of
any
any
any
any
any
any
any
any

UpsertOperation

object
upsertPointInsertOperationsrequired
Example
{}

DeleteOperation

object
deletePointsSelectorrequired
Example
{}

SetPayloadOperation

object
set_payloadSetPayloadrequired
Example
{}

OverwritePayloadOperation

object
overwrite_payloadSetPayloadrequired
Example
{}

DeletePayloadOperation

object
delete_payloadDeletePayloadrequired
Example
{}

ClearPayloadOperation

object
clear_payloadPointsSelectorrequired
Example
{}

UpdateVectorsOperation

object
update_vectorsUpdateVectorsrequired
Example
{}

DeleteVectorsOperation

object
delete_vectorsDeleteVectorsrequired
Example
{}

ShardSnapshotRecover

object
locationstring | stringrequired
prioritySnapshotPriority | anynull
checksumstring | nullnull

Optional SHA256 checksum to verify snapshot integrity before recovery.

api_keystring | nullnull

Optional API key used when fetching the snapshot from a remote URL.

Example
{
  "location": "https://example.com",
  "priority": null,
  "checksum": null,
  "api_key": null
}

ShardSnapshotLocation

object
Any of
string<uri>
string
Example
"https://example.com"

VersionInfo

object
titlestringrequired
versionstringrequired
commitstring | null
Example
{
  "title": "string",
  "version": "string",
  "commit": "string"
}

CollectionExistence

object

State of existence of a collection, true = exists, false = does not exist

existsbooleanrequired
Example
{
  "exists": true
}

QueryRequest

object
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
prefetchPrefetch | Array<Prefetch> | anynull

Sub-requests to perform first. If present, the query will be performed on the results of the prefetch(es).

queryQueryInterface | any

Query to perform. If missing without prefetches, returns points ordered by their IDs.

usingstring | null

Define which vector name to use for querying. If missing, the default vector is used.

filterFilter | any

Filter conditions - return only those points that satisfy the specified conditions.

paramsSearchParams | any

Search params for when there is no prefetch

score_thresholdnumber<float> | null

Return points with scores better than this threshold.

limitinteger<uint> | null>= 1

Max number of points to return. Default is 10.

offsetinteger<uint> | null>= 0

Offset of the result. Skip this many points. Default is 0

with_vectorboolean | Array<string> | any

Options for specifying which vectors to include into the response. Default is false.

with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | any

Options for specifying which payload to include or not. Default is false.

lookup_fromLookupLocation | anynull

The location to use for IDs lookup, if not specified - use the current collection and the 'using' vector Note: the other collection vectors should have the same vector size as the 'using' vector in the current collection

Example
{
  "shard_key": "region_1",
  "prefetch": null,
  "using": "string",
  "score_threshold": 0,
  "limit": 1,
  "offset": 0,
  "with_vector": true,
  "with_payload": true,
  "lookup_from": null
}

Prefetch

object
prefetchPrefetch | Array<Prefetch> | anynull

Sub-requests to perform first. If present, the query will be performed on the results of the prefetches.

queryQueryInterface | any

Query to perform. If missing without prefetches, returns points ordered by their IDs.

usingstring | null

Define which vector name to use for querying. If missing, the default vector is used.

filterFilter | any

Filter conditions - return only those points that satisfy the specified conditions.

paramsSearchParams | any

Search params for when there is no prefetch

score_thresholdnumber<float> | null

Return points with scores better than this threshold.

limitinteger<uint> | null>= 1

Max number of points to return. Default is 10.

lookup_fromLookupLocation | anynull

The location to use for IDs lookup, if not specified - use the current collection and the 'using' vector Note: the other collection vectors should have the same vector size as the 'using' vector in the current collection

Example
{
  "prefetch": null,
  "using": "string",
  "score_threshold": 0,
  "limit": 1,
  "lookup_from": null
}

QueryInterface

object
Any of
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

any
Example
[
  0
]

VectorInput

object
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

Example
[
  0
]

Query

object
Any of
nearestArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
mmrMmr | any

Perform MMR (Maximal Marginal Relevance) reranking after search, using the same vector in this query to calculate relevance.

recommendRecommendInputrequired
Show child attributes
positiveArray<VectorInput> | null

Look for vectors closest to the vectors from these points

Show child attributes
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

negativeArray<VectorInput> | null

Try to avoid vectors like the vector from these points

Show child attributes
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

strategyRecommendStrategy | any

How to use the provided vectors to find the results

discoverDiscoverInputrequired
Show child attributes
targetArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
contextContextPair | Array<ContextPair> | anyrequired

Search space will be constrained by these pairs of vectors

contextContextPair | Array<ContextPair> | anyrequired
order_bystring | OrderByrequired
fusionFusionrrfdbsfrequired

Fusion algorithm allows to combine results of multiple prefetches.

Available fusion algorithms:

  • rrf - Reciprocal Rank Fusion (with default parameters) * dbsf - Distribution-Based Score Fusion
rrfRrfrequired

Parameters for Reciprocal Rank Fusion

Show child attributes
kinteger<uint> | null>= 1null

K parameter for reciprocal rank fusion

weightsArray<number> | null

Weights for each prefetch source. Higher weight gives more influence on the final ranking. If not specified, all prefetches are weighted equally. The number of weights should match the number of prefetches.

any
sampleSamplerandomrequired
relevance_feedbackRelevanceFeedbackInputrequired
Show child attributes
targetArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
feedbackArray<FeedbackItem>required
Show child attributes
exampleArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
scorenumber<float>required
strategyNaiveFeedbackStrategyrequired
Example
{
  "nearest": [
    0
  ],
  "mmr": {
    "diversity": 0,
    "candidates_limit": 0
  }
}

NearestQuery

object
nearestArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
mmrMmr | any

Perform MMR (Maximal Marginal Relevance) reranking after search, using the same vector in this query to calculate relevance.

Example
{
  "nearest": [
    0
  ],
  "mmr": {
    "diversity": 0,
    "candidates_limit": 0
  }
}

Mmr

object

Maximal Marginal Relevance (MMR) algorithm for re-ranking the points.

diversitynumber<float> | null[0, 1]

Tunable parameter for the MMR algorithm. Determines the balance between diversity and relevance.

A higher value favors diversity (dissimilarity to selected results), while a lower value favors relevance (similarity to the query vector).

Must be in the range [0, 1]. Default value is 0.5.

candidates_limitinteger<uint> | null[0, 16384]

The maximum number of candidates to consider for re-ranking.

If not specified, the limit value is used.

Example
{
  "diversity": 0,
  "candidates_limit": 0
}

RecommendQuery

object
recommendRecommendInputrequired
Show child attributes
positiveArray<VectorInput> | null

Look for vectors closest to the vectors from these points

Show child attributes
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

negativeArray<VectorInput> | null

Try to avoid vectors like the vector from these points

Show child attributes
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

strategyRecommendStrategy | any

How to use the provided vectors to find the results

Example
{
  "recommend": {
    "positive": [
      [
        0
      ]
    ],
    "negative": [
      [
        0
      ]
    ],
    "strategy": "average_vector"
  }
}

RecommendInput

object
positiveArray<VectorInput> | null

Look for vectors closest to the vectors from these points

Show child attributes
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

negativeArray<VectorInput> | null

Try to avoid vectors like the vector from these points

Show child attributes
Any of
Array<number>
indicesArray<integer>required

Indices must be unique

valuesArray<number>required

Values and indices must be the same length

Array<Array<number>>

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
textstringrequired

Text of the document. This field will be used as input for the embedding model.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | Bm25Config | any

Additional options for the model, will be passed to the inference service as-is. See model cards for available options.

imageanyrequired

Image data: base64 encoded image or an URL

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

objectanyrequired

Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input.

modelstringrequired

Name of the model used to generate the vector. List of available models depends on a provider.

optionsobject | null

Parameters for the model Values of the parameters are model-specific

strategyRecommendStrategy | any

How to use the provided vectors to find the results

Example
{
  "positive": [
    [
      0
    ]
  ],
  "negative": [
    [
      0
    ]
  ],
  "strategy": "average_vector"
}

RecommendStrategy

string

How to use positive and negative examples to find the results, default is average_vector:

  • average_vector - Average positive and negative vectors and create a single query with the formula query = avg_pos + avg_pos - avg_neg. Then performs normal search.

  • best_score - Uses custom search objective. Each candidate is compared against all examples, its score is then chosen from the max(max_pos_score, max_neg_score). If the max_neg_score is chosen then it is squared and negated, otherwise it is just the max_pos_score.

  • sum_scores - Uses custom search objective. Compares against all inputs, sums all the scores. Scores against positive vectors are added, against negatives are subtracted.

RecommendStrategyaverage_vectorbest_scoresum_scores
Example
"average_vector"

DiscoverQuery

object
discoverDiscoverInputrequired
Show child attributes
targetArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
contextContextPair | Array<ContextPair> | anyrequired

Search space will be constrained by these pairs of vectors

Example
{
  "discover": {
    "target": [
      0
    ],
    "context": {
      "positive": [
        0
      ],
      "negative": [
        0
      ]
    }
  }
}

DiscoverInput

object
targetArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
contextContextPair | Array<ContextPair> | anyrequired

Search space will be constrained by these pairs of vectors

Example
{
  "target": [
    0
  ],
  "context": {
    "positive": [
      0
    ],
    "negative": [
      0
    ]
  }
}

ContextPair

object
positiveArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
negativeArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
Example
{
  "positive": [
    0
  ],
  "negative": [
    0
  ]
}

ContextQuery

object
contextContextPair | Array<ContextPair> | anyrequired
Example
{
  "context": {
    "positive": [
      0
    ],
    "negative": [
      0
    ]
  }
}

ContextInput

object
Any of
positiveArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
negativeArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
Array<ContextPair>
Show child attributes
positiveArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
negativeArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
any | null
Example
{
  "positive": [
    0
  ],
  "negative": [
    0
  ]
}

OrderByQuery

object
order_bystring | OrderByrequired
Example
{
  "order_by": "string"
}

FusionQuery

object
fusionFusionrrfdbsfrequired

Fusion algorithm allows to combine results of multiple prefetches.

Available fusion algorithms:

  • rrf - Reciprocal Rank Fusion (with default parameters) * dbsf - Distribution-Based Score Fusion
Example
{
  "fusion": "rrf"
}

Fusion

string

Fusion algorithm allows to combine results of multiple prefetches.

Available fusion algorithms:

  • rrf - Reciprocal Rank Fusion (with default parameters) * dbsf - Distribution-Based Score Fusion
Fusionrrfdbsf
Example
"rrf"

RrfQuery

object
rrfRrfrequired

Parameters for Reciprocal Rank Fusion

Show child attributes
kinteger<uint> | null>= 1null

K parameter for reciprocal rank fusion

weightsArray<number> | null

Weights for each prefetch source. Higher weight gives more influence on the final ranking. If not specified, all prefetches are weighted equally. The number of weights should match the number of prefetches.

Example
{
  "rrf": {
    "k": null,
    "weights": [
      0
    ]
  }
}

Rrf

object

Parameters for Reciprocal Rank Fusion

kinteger<uint> | null>= 1null

K parameter for reciprocal rank fusion

weightsArray<number> | null

Weights for each prefetch source. Higher weight gives more influence on the final ranking. If not specified, all prefetches are weighted equally. The number of weights should match the number of prefetches.

Example
{
  "k": null,
  "weights": [
    0
  ]
}

FormulaQuery

object
formulaExpressionrequired
defaultsobject[object Object]
Example
{
  "defaults": {}
}

Expression

object
Any of
number<float>
string
Condition
geo_distanceGeoDistanceParamsrequired
Show child attributes
originGeoPointrequired

Geo point payload schema

Show child attributes
lonnumber<double>required
latnumber<double>required
tostringrequired

Payload field with the destination geo point

datetimestringrequired
datetime_keystringrequired
any
any
any
any
any
any
any
any
any
any
any
any
any
any
any
any
Example
0

GeoDistance

object
geo_distanceGeoDistanceParamsrequired
Show child attributes
originGeoPointrequired

Geo point payload schema

Show child attributes
lonnumber<double>required
latnumber<double>required
tostringrequired

Payload field with the destination geo point

Example
{
  "geo_distance": {
    "origin": {
      "lon": 0,
      "lat": 0
    },
    "to": "string"
  }
}

GeoDistanceParams

object
originGeoPointrequired

Geo point payload schema

Show child attributes
lonnumber<double>required
latnumber<double>required
tostringrequired

Payload field with the destination geo point

Example
{
  "origin": {
    "lon": 0,
    "lat": 0
  },
  "to": "string"
}

DatetimeExpression

object
datetimestringrequired
Example
{
  "datetime": "string"
}

DatetimeKeyExpression

object
datetime_keystringrequired
Example
{
  "datetime_key": "string"
}

MultExpression

object
multArray<Expression>required
Example
{
  "mult": []
}

SumExpression

object
sumArray<Expression>required
Example
{
  "sum": []
}

MaxExpression

object

Largest of the given expressions. Requires at least one operand.

maxArray<Expression>required
Example
{
  "max": []
}

MinExpression

object

Smallest of the given expressions. Requires at least one operand.

minArray<Expression>required
Example
{
  "min": []
}

NegExpression

object
negExpressionrequired
Example
{}

AbsExpression

object
absExpressionrequired
Example
{}

DivExpression

object
divanyrequired
Example
{}

DivParams

object
leftExpressionrequired
rightExpressionrequired
by_zero_defaultnumber<float> | null
Example
{
  "by_zero_default": 0
}

SqrtExpression

object
sqrtExpressionrequired
Example
{}

PowExpression

object
powanyrequired
Example
{}

PowParams

object
baseExpressionrequired
exponentExpressionrequired
Example
{}

ExpExpression

object
expExpressionrequired
Example
{}

Log10Expression

object
log10Expressionrequired
Example
{}

LnExpression

object
lnExpressionrequired
Example
{}

AcoshExpression

object
acoshExpressionrequired
Example
{}

LinDecayExpression

object
lin_decayDecayParamsExpressionrequired
Example
{}

DecayParamsExpression

object
xExpressionrequired
targetExpression | any

The target value to start decaying from. Defaults to 0.

scalenumber<float> | null

The scale factor of the decay, in terms of x. Defaults to 1.0. Must be a non-zero positive number.

midpointnumber<float> | null

The midpoint of the decay. Should be between 0 and 1.Defaults to 0.5. Output will be this value when |x - target| == scale.

Example
{
  "scale": 0,
  "midpoint": 0
}

ExpDecayExpression

object
exp_decayDecayParamsExpressionrequired
Example
{}

GaussDecayExpression

object
gauss_decayDecayParamsExpressionrequired
Example
{}

SampleQuery

object
sampleSamplerandomrequired
Example
{
  "sample": "random"
}

Sample

string
Samplerandom
Example
"random"

RelevanceFeedbackQuery

object
relevance_feedbackRelevanceFeedbackInputrequired
Show child attributes
targetArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
feedbackArray<FeedbackItem>required
Show child attributes
exampleArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
scorenumber<float>required
strategyNaiveFeedbackStrategyrequired
Example
{
  "relevance_feedback": {
    "target": [
      0
    ],
    "feedback": [
      {
        "example": [
          0
        ],
        "score": 0
      }
    ],
    "strategy": {
      "naive": {
        "a": 0,
        "b": 0,
        "c": 0
      }
    }
  }
}

RelevanceFeedbackInput

object
targetArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
feedbackArray<FeedbackItem>required
Show child attributes
exampleArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
scorenumber<float>required
strategyNaiveFeedbackStrategyrequired
Example
{
  "target": [
    0
  ],
  "feedback": [
    {
      "example": [
        0
      ],
      "score": 0
    }
  ],
  "strategy": {
    "naive": {
      "a": 0,
      "b": 0,
      "c": 0
    }
  }
}

FeedbackItem

object
exampleArray<number> | SparseVector | Array<Array<number>> | integer | string | Document | Image | InferenceObjectrequired
scorenumber<float>required
Example
{
  "example": [
    0
  ],
  "score": 0
}

FeedbackStrategy

object
Any of
naiveNaiveFeedbackStrategyParamsrequired
Show child attributes
anumber<float>required
bnumber<float>>= 0required
cnumber<float>required
Example
{
  "naive": {
    "a": 0,
    "b": 0,
    "c": 0
  }
}

NaiveFeedbackStrategy

object
naiveNaiveFeedbackStrategyParamsrequired
Show child attributes
anumber<float>required
bnumber<float>>= 0required
cnumber<float>required
Example
{
  "naive": {
    "a": 0,
    "b": 0,
    "c": 0
  }
}

NaiveFeedbackStrategyParams

object
anumber<float>required
bnumber<float>>= 0required
cnumber<float>required
Example
{
  "a": 0,
  "b": 0,
  "c": 0
}

SearchParams

object

Additional parameters of the search

hnsw_efinteger<uint> | null>= 1

Params relevant to HNSW index Size of the beam in a beam-search. Larger the value - more accurate the result, more time required for search.

exactbooleanfalse

Search without approximation. If set to true, search may run long but with exact results.

quantizationQuantizationSearchParams | any

Quantization params

indexed_onlybooleanfalse

If enabled, the engine will only perform search among indexed or small segments. Using this option prevents slow searches in case of delayed index, but does not guarantee that all uploaded vectors will be included in search results

acornAcornSearchParams | any

ACORN search params

idfany | any

Which population sparse vector IDF statistics are computed over. By default (or with explicit "global") statistics are collection-wide. Only applicable to sparse vectors with the IDF modifier enabled.

Example
{
  "hnsw_ef": 1,
  "exact": false,
  "quantization": {
    "ignore": false,
    "rescore": true,
    "oversampling": 1
  },
  "indexed_only": false,
  "acorn": {
    "enable": false,
    "max_selectivity": 0
  }
}

QuantizationSearchParams

object

Additional parameters of the search

ignorebooleanfalse

If true, quantized vectors are ignored. Default is false.

rescoreboolean | null

If true, use original vectors to re-score top-k results. Might require more time in case if original vectors are stored on disk. If not set, qdrant decides automatically apply rescoring or not.

oversamplingnumber<double> | null>= 1

Oversampling factor for quantization. Default is 1.0.

Defines how many extra vectors should be preselected using quantized index, and then re-scored using original vectors.

For example, if oversampling is 2.4 and limit is 100, then 240 vectors will be preselected using quantized index, and then top-100 will be returned after re-scoring.

Example
{
  "ignore": false,
  "rescore": true,
  "oversampling": 1
}

AcornSearchParams

object

ACORN-related search parameters

enablebooleanfalse

If true, then ACORN may be used for the HNSW search based on filters selectivity. Improves search recall for searches with multiple low-selectivity payload filters, at cost of performance.

max_selectivitynumber<double> | null[0, 1]

Maximum selectivity of filters to enable ACORN.

If estimated filters selectivity is higher than this value, ACORN will not be used. Selectivity is estimated as: estimated number of points satisfying the filters / total number of points.

0.0 for never, 1.0 for always. Default is 0.4.

Example
{
  "enable": false,
  "max_selectivity": 0
}

IdfParams

object

Population over which sparse vector IDF statistics are computed for scoring — the IDF corpus.

  • "global" — collection-wide statistics, same as omitting the parameter. - { "corpus": <filter> } — document count and per-term document frequencies are computed over the points matching the corpus filter only. The corpus is independent of the retrieval filter and is usually broader than it.
Any of

Named IDF scope without a corpus filter.

IdfScopeglobal
any
Example
"global"

IdfScope

string

Named IDF scope without a corpus filter.

IdfScopeglobal
Example
"global"

IdfCorpusParams

object

IDF statistics computed over the points matching a corpus filter.

corpusFilterrequired
Example
{}

LookupLocation

object

Defines a location to use for looking up the vector. Specifies collection and vector field name.

collectionstringrequired

Name of the collection used for lookup

vectorstring | nullnull

Optional name of the vector field within the collection. If not provided, the default vector field will be used.

shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any

Specify in which shards to look for the points, if not specified - look in all shards

Example
{
  "collection": "string",
  "vector": null,
  "shard_key": "region_1"
}

QueryRequestBatch

object
searchesArray<QueryRequest>required
Example
{
  "searches": []
}

QueryResponse

object
pointsArray<ScoredPoint>required
Show child attributes
idinteger | stringrequired

Type, used for specifying point ID in user interface

versioninteger<uint64>>= 0required

Point version

scorenumber<float>required

Points vector distance to the query vector

payloadPayload | any

Payload - values assigned to the point

vectorArray<number> | Array<Array<number>> | object | any

Vector of the point

shard_keystring | integer | any

Shard Key

order_valueinteger | number | any

Order-by value

Example
{
  "points": [
    {
      "id": 42,
      "version": 3,
      "score": 0.75,
      "payload": {
        "city": "London",
        "color": "green"
      },
      "vector": [
        0.875,
        0.140625,
        0.897599995136261
      ],
      "shard_key": "region_1",
      "order_value": 42
    }
  ]
}

QueryGroupsRequest

object
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
prefetchPrefetch | Array<Prefetch> | anynull

Sub-requests to perform first. If present, the query will be performed on the results of the prefetch(es).

queryQueryInterface | any

Query to perform. If missing without prefetches, returns points ordered by their IDs.

usingstring | null

Define which vector name to use for querying. If missing, the default vector is used.

filterFilter | any

Filter conditions - return only those points that satisfy the specified conditions.

paramsSearchParams | any

Search params for when there is no prefetch

score_thresholdnumber<float> | null

Return points with scores better than this threshold.

with_vectorboolean | Array<string> | any

Options for specifying which vectors to include into the response. Default is false.

with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | any

Options for specifying which payload to include or not. Default is false.

lookup_fromLookupLocation | anynull

The location to use for IDs lookup, if not specified - use the current collection and the 'using' vector Note: the other collection vectors should have the same vector size as the 'using' vector in the current collection

group_bystringrequired

Payload field to group by, must be a string or number field. If the field contains more than 1 value, all values will be used for grouping. One point can be in multiple groups.

group_sizeinteger<uint> | null>= 1

Maximum amount of points to return per group. Default is 3.

limitinteger<uint> | null>= 1

Maximum amount of groups to return. Default is 10.

with_lookupstring | WithLookup | any

Look for points in another collection using the group ids

Example
{
  "shard_key": "region_1",
  "prefetch": null,
  "using": "string",
  "score_threshold": 0,
  "with_vector": true,
  "with_payload": true,
  "lookup_from": null,
  "group_by": "string",
  "group_size": 1,
  "limit": 1,
  "with_lookup": "string"
}

WithLookupInterface

object
Any of
string
collectionstringrequired

Name of the collection to use for points lookup

with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | anytrue

Options for specifying which payload to include (or not)

with_vectorsboolean | Array<string> | anynull

Options for specifying which vectors to include (or not)

Example
"string"

WithLookup

object
collectionstringrequired

Name of the collection to use for points lookup

with_payloadboolean | Array<string> | PayloadSelectorInclude | PayloadSelectorExclude | anytrue

Options for specifying which payload to include (or not)

with_vectorsboolean | Array<string> | anynull

Options for specifying which vectors to include (or not)

Example
{
  "collection": "string",
  "with_payload": true,
  "with_vectors": null
}

SearchMatrixRequest

object
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any

Specify in which shards to look for the points, if not specified - look in all shards

filterFilter | any

Look only for points which satisfies this conditions

sampleinteger<uint> | null>= 2

How many points to select and search within. Default is 10.

limitinteger<uint> | null>= 1

How many neighbours per sample to find. Default is 3.

usingstring | null

Define which vector name to use for querying. If missing, the default vector is used.

Example
{
  "shard_key": "region_1",
  "sample": 2,
  "limit": 1,
  "using": "string"
}

SearchMatrixOffsetsResponse

object
offsets_rowArray<integer>required

Row indices of the matrix

offsets_colArray<integer>required

Column indices of the matrix

scoresArray<number>required

Scores associated with matrix coordinates

idsArray<ExtendedPointId>required

Ids of the points in order

Show child attributes

Type, used for specifying point ID in user interface

Any of
integer<uint64>>= 0
string<uuid>
Example
{
  "offsets_row": [
    0
  ],
  "offsets_col": [
    0
  ],
  "scores": [
    0
  ],
  "ids": [
    42
  ]
}

SearchMatrixPairsResponse

object
pairsArray<SearchMatrixPair>required

List of pairs of points with scores

Show child attributes
ainteger | stringrequired

Type, used for specifying point ID in user interface

binteger | stringrequired

Type, used for specifying point ID in user interface

scorenumber<float>required
Example
{
  "pairs": [
    {
      "a": 42,
      "b": 42,
      "score": 0
    }
  ]
}

SearchMatrixPair

object

Pair of points (a, b) with score

ainteger | stringrequired

Type, used for specifying point ID in user interface

binteger | stringrequired

Type, used for specifying point ID in user interface

scorenumber<float>required
Example
{
  "a": 42,
  "b": 42,
  "score": 0
}

FacetRequest

object
shard_keystring | integer | Array<ShardKey> | ShardKeyWithFallback | any
keystringrequired

Payload key to use for faceting.

limitinteger<uint> | null>= 1

Max number of hits to return. Default is 10.

filterFilter | any

Filter conditions - only consider points that satisfy these conditions.

exactboolean | null

Whether to do a more expensive exact count for each of the values in the facet. Default is false.

Example
{
  "shard_key": "region_1",
  "key": "string",
  "limit": 1,
  "exact": true
}

FacetResponse

object
hitsArray<FacetValueHit>required
Show child attributes
valuestring | integer | booleanrequired
countinteger<uint>>= 0required
Example
{
  "hits": [
    {
      "value": "string",
      "count": 0
    }
  ]
}

FacetValueHit

object
valuestring | integer | booleanrequired
countinteger<uint>>= 0required
Example
{
  "value": "string",
  "count": 0
}

FacetValue

object
Any of
string
integer<int64>
boolean
Example
"string"

Usage

object

Usage of the hardware resources, spent to process the request

hardwareHardwareUsage | any
inferenceInferenceUsage | any
Example
{
  "hardware": {
    "cpu": 0,
    "payload_io_read": 0,
    "payload_io_write": 0,
    "payload_index_io_read": 0,
    "payload_index_io_write": 0,
    "vector_io_read": 0,
    "vector_io_write": 0
  },
  "inference": {
    "models": {}
  }
}

InferenceUsage

object
modelsobjectrequired
Example
{
  "models": {}
}

ModelUsage

object
tokensinteger<uint64>>= 0required
Example
{
  "tokens": 0
}

ShardKeysResponse

object
shard_keysArray<ShardKeyDescription> | null

The existing shard keys. Only available when sharding method is custom

Show child attributes
keystring | integerrequired
Example
{
  "shard_keys": [
    {
      "key": "region_1"
    }
  ]
}

ShardKeyDescription

object
keystring | integerrequired
Example
{
  "key": "region_1"
}

OptimizationsResponse

object

Optimizations progress for the collection

summaryOptimizationsSummaryrequired
Show child attributes
queued_optimizationsinteger<uint>>= 0required

Number of pending optimizations in the queue. Each optimization will take one or more unoptimized segments and produce one optimized segment.

queued_segmentsinteger<uint>>= 0required

Number of unoptimized segments in the queue.

queued_pointsinteger<uint>>= 0required

Number of points in unoptimized segments in the queue.

idle_segmentsinteger<uint>>= 0required

Number of segments that don't require optimization.

runningArray<Optimization>required

Currently running optimizations.

queuedArray<PendingOptimization> | null

An estimated queue of pending optimizations. Requires ?with=queued.

Show child attributes
optimizerstringrequired

Name of the optimizer that scheduled this optimization.

segmentsArray<OptimizationSegmentInfo>required

Segments that will be optimized.

Show child attributes
uuidstring<uuid>required

Unique identifier of the segment.

points_countinteger<uint>>= 0required

Number of non-deleted points in the segment.

completedArray<Optimization> | null

Completed optimizations. Requires ?with=completed. Limited by ?completed_limit=N.

idle_segmentsArray<OptimizationSegmentInfo> | null

Segments that don't require optimization. Requires ?with=idle_segments.

Show child attributes
uuidstring<uuid>required

Unique identifier of the segment.

points_countinteger<uint>>= 0required

Number of non-deleted points in the segment.

Example
{
  "summary": {
    "queued_optimizations": 0,
    "queued_segments": 0,
    "queued_points": 0,
    "idle_segments": 0
  },
  "running": [],
  "queued": [
    {
      "optimizer": "string",
      "segments": [
        {
          "uuid": "550e8400-e29b-41d4-a716-446655440000",
          "points_count": 0
        }
      ]
    }
  ],
  "completed": [],
  "idle_segments": [
    {
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "points_count": 0
    }
  ]
}

OptimizationsSummary

object
queued_optimizationsinteger<uint>>= 0required

Number of pending optimizations in the queue. Each optimization will take one or more unoptimized segments and produce one optimized segment.

queued_segmentsinteger<uint>>= 0required

Number of unoptimized segments in the queue.

queued_pointsinteger<uint>>= 0required

Number of points in unoptimized segments in the queue.

idle_segmentsinteger<uint>>= 0required

Number of segments that don't require optimization.

Example
{
  "queued_optimizations": 0,
  "queued_segments": 0,
  "queued_points": 0,
  "idle_segments": 0
}

Optimization

object
uuidstring<uuid>required

Unique identifier of the optimization process.

After the optimization is complete, a new segment will be created with this UUID.

optimizerstringrequired

Name of the optimizer that performed this optimization.

statusstring | object | objectrequired

Represents the current state of the optimizer being tracked

segmentsArray<OptimizationSegmentInfo>required

Segments being optimized.

After the optimization is complete, these segments will be replaced by the new optimized segment.

Show child attributes
uuidstring<uuid>required

Unique identifier of the segment.

points_countinteger<uint>>= 0required

Number of non-deleted points in the segment.

progressProgressTreerequired
Example
{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "optimizer": "string",
  "status": "optimizing",
  "segments": [
    {
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "points_count": 0
    }
  ]
}

OptimizationSegmentInfo

object
uuidstring<uuid>required

Unique identifier of the segment.

points_countinteger<uint>>= 0required

Number of non-deleted points in the segment.

Example
{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "points_count": 0
}

ProgressTree

object
namestringrequired

Name of the operation.

started_atstring<date-time> | null

When the operation started.

finished_atstring<date-time> | null

When the operation finished.

duration_secnumber<double> | null

For finished operations, how long they took, in seconds.

doneinteger<uint64> | null>= 0

Number of completed units of work, if applicable.

totalinteger<uint64> | null>= 0

Total number of units of work, if applicable and known.

childrenArray<ProgressTree>

Child operations.

Example
{
  "name": "string",
  "started_at": "2024-01-15T09:30:00Z",
  "finished_at": "2024-01-15T09:30:00Z",
  "duration_sec": 0,
  "done": 0,
  "total": 0,
  "children": []
}

PendingOptimization

object
optimizerstringrequired

Name of the optimizer that scheduled this optimization.

segmentsArray<OptimizationSegmentInfo>required

Segments that will be optimized.

Show child attributes
uuidstring<uuid>required

Unique identifier of the segment.

points_countinteger<uint>>= 0required

Number of non-deleted points in the segment.

Example
{
  "optimizer": "string",
  "segments": [
    {
      "uuid": "550e8400-e29b-41d4-a716-446655440000",
      "points_count": 0
    }
  ]
}

DistributedTelemetryData

object
collectionsobjectrequired
clusterDistributedClusterTelemetry | any
Example
{
  "collections": {},
  "cluster": {
    "enabled": true,
    "number_of_peers": 0,
    "peers": {}
  }
}

DistributedCollectionTelemetry

object
idstringrequired

Collection name

shardsArray<DistributedShardTelemetry> | null

Shards topology

Show child attributes
idinteger<uint32>>= 0required

Shard ID

keystring | integer | any

Optional shard key

replicasArray<DistributedReplicaTelemetry>required

Replica information

Show child attributes
peer_idinteger<uint64>>= 0required

Peer ID hosting this replica

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

statusShardStatus | any

Shard status

total_optimized_pointsinteger<uint> | null>= 0

Total optimized points

vectors_size_bytesinteger<uint> | null>= 0

Estimated vectors size in bytes

payloads_size_bytesinteger<uint> | null>= 0

Estimated payloads size in bytes

num_pointsinteger<uint> | null>= 0

Approximate number of points

num_vectorsinteger<uint> | null>= 0

Approximate number of vectors

num_vectors_by_nameobject | null

Approximate number of vectors by name

shard_cleaning_statusstring | object | object | any

Shard cleaning task status. After a resharding, a cleanup task is performed to remove outdated points from this shard.

partial_snapshotPartialSnapshotTelemetry | any

Partial snapshot telemetry

reshardingsArray<ReshardingInfo> | null

Ongoing resharding operations

Show child attributes
directionReshardingDirectionupdownrequired

Resharding direction, scale up or down in number of shards

  • up - Scale up, add a new shard

  • down - Scale down, remove a shard

shard_idinteger<uint32>>= 0required
peer_idinteger<uint64>>= 0required
shard_keystring | integer | any
shard_transfersArray<ShardTransferInfo> | null

Ongoing shard transfers

Show child attributes
shard_idinteger<uint32>>= 0required
to_shard_idinteger<uint32> | null>= 0

Target shard ID if different than source shard ID

Used exclusively with ReshardingStreamRecords transfer method.

frominteger<uint64>>= 0required

Source peer id

tointeger<uint64>>= 0required

Destination peer id

syncbooleanrequired

If true transfer is a synchronization of a replicas If false transfer is a moving of a shard from one peer to another

methodShardTransferMethod | any
commentstring | null

A human-readable report of the transfer progress. Available only on the source peer, and on the target peer during snapshot recovery.

Example
{
  "id": "string",
  "shards": [
    {
      "id": 0,
      "key": "region_1",
      "replicas": [
        {
          "peer_id": 0,
          "state": "Active",
          "status": "green",
          "total_optimized_points": 0,
          "vectors_size_bytes": 0,
          "payloads_size_bytes": 0,
          "num_points": 0,
          "num_vectors": 0,
          "num_vectors_by_name": {},
          "shard_cleaning_status": "started",
          "partial_snapshot": {
            "ongoing_create_snapshot_requests": 0,
            "is_recovering": true,
            "recovery_timestamp": 0
          }
        }
      ]
    }
  ],
  "reshardings": [
    {
      "direction": "up",
      "shard_id": 0,
      "peer_id": 0,
      "shard_key": "region_1"
    }
  ],
  "shard_transfers": [
    {
      "shard_id": 0,
      "to_shard_id": 0,
      "from": 0,
      "to": 0,
      "sync": true,
      "method": "stream_records",
      "comment": "string"
    }
  ]
}

DistributedShardTelemetry

object
idinteger<uint32>>= 0required

Shard ID

keystring | integer | any

Optional shard key

replicasArray<DistributedReplicaTelemetry>required

Replica information

Show child attributes
peer_idinteger<uint64>>= 0required

Peer ID hosting this replica

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

statusShardStatus | any

Shard status

total_optimized_pointsinteger<uint> | null>= 0

Total optimized points

vectors_size_bytesinteger<uint> | null>= 0

Estimated vectors size in bytes

payloads_size_bytesinteger<uint> | null>= 0

Estimated payloads size in bytes

num_pointsinteger<uint> | null>= 0

Approximate number of points

num_vectorsinteger<uint> | null>= 0

Approximate number of vectors

num_vectors_by_nameobject | null

Approximate number of vectors by name

shard_cleaning_statusstring | object | object | any

Shard cleaning task status. After a resharding, a cleanup task is performed to remove outdated points from this shard.

partial_snapshotPartialSnapshotTelemetry | any

Partial snapshot telemetry

Example
{
  "id": 0,
  "key": "region_1",
  "replicas": [
    {
      "peer_id": 0,
      "state": "Active",
      "status": "green",
      "total_optimized_points": 0,
      "vectors_size_bytes": 0,
      "payloads_size_bytes": 0,
      "num_points": 0,
      "num_vectors": 0,
      "num_vectors_by_name": {},
      "shard_cleaning_status": "started",
      "partial_snapshot": {
        "ongoing_create_snapshot_requests": 0,
        "is_recovering": true,
        "recovery_timestamp": 0
      }
    }
  ]
}

DistributedReplicaTelemetry

object
peer_idinteger<uint64>>= 0required

Peer ID hosting this replica

stateReplicaStateActiveDeadPartialInitializingListenerPartialSnapshotRecoveryReshardingReshardingScaleDownActiveReadManualRecoveryrequired

State of the single shard within a replica set.

statusShardStatus | any

Shard status

total_optimized_pointsinteger<uint> | null>= 0

Total optimized points

vectors_size_bytesinteger<uint> | null>= 0

Estimated vectors size in bytes

payloads_size_bytesinteger<uint> | null>= 0

Estimated payloads size in bytes

num_pointsinteger<uint> | null>= 0

Approximate number of points

num_vectorsinteger<uint> | null>= 0

Approximate number of vectors

num_vectors_by_nameobject | null

Approximate number of vectors by name

shard_cleaning_statusstring | object | object | any

Shard cleaning task status. After a resharding, a cleanup task is performed to remove outdated points from this shard.

partial_snapshotPartialSnapshotTelemetry | any

Partial snapshot telemetry

Example
{
  "peer_id": 0,
  "state": "Active",
  "status": "green",
  "total_optimized_points": 0,
  "vectors_size_bytes": 0,
  "payloads_size_bytes": 0,
  "num_points": 0,
  "num_vectors": 0,
  "num_vectors_by_name": {},
  "shard_cleaning_status": "started",
  "partial_snapshot": {
    "ongoing_create_snapshot_requests": 0,
    "is_recovering": true,
    "recovery_timestamp": 0
  }
}

DistributedClusterTelemetry

object
enabledbooleanrequired
number_of_peersinteger<uint64> | null>= 0
peersobjectrequired
Example
{
  "enabled": true,
  "number_of_peers": 0,
  "peers": {}
}

DistributedPeerInfo

object
uristringrequired

URI of the peer

responsivebooleanrequired

Whether this peer responded for this request

detailsDistributedPeerDetails | any

If responsive, these details should be available

Example
{
  "uri": "string",
  "responsive": true,
  "details": {
    "version": "string",
    "role": "Follower",
    "is_voter": true,
    "term": 0,
    "commit": 0,
    "num_pending_operations": 0,
    "consensus_thread_status": {
      "consensus_thread_status": "working",
      "last_update": "2024-01-15T09:30:00Z"
    }
  }
}

DistributedPeerDetails

object
versionstringrequired

Qdrant version

roleStateRole | any

Consensus role for the peer

is_voterbooleanrequired

Whether it can participate in leader elections

terminteger<uint64>>= 0required

Election term

commitinteger<uint64>>= 0required

Latest accepted commit

num_pending_operationsinteger<uint64>>= 0required

Number of operations pending for being applied

consensus_thread_statusobject | object | objectrequired

Information about current consensus thread status

Example
{
  "version": "string",
  "role": "Follower",
  "is_voter": true,
  "term": 0,
  "commit": 0,
  "num_pending_operations": 0,
  "consensus_thread_status": {
    "consensus_thread_status": "working",
    "last_update": "2024-01-15T09:30:00Z"
  }
}

VectorNameConfig

object

Configuration for creating a new named vector.

Contains only the immutable properties that define a vector space. Storage type, index, and quantization are determined automatically based on the segment type and can be configured separately later.

Example JSON for a dense vector: json { "dense": { "size": 768, "distance": "Cosine" } }

Example JSON for a sparse vector: json { "sparse": { "modifier": "Idf" } }

Any of
denseDenseVectorConfigrequired

Configuration for creating a new dense named vector.

Only includes properties that define the vector space and cannot be changed after creation. Storage type, index type, and quantization are inferred.

Show child attributes
sizeinteger<uint>[1, 65536]required

Dimensionality of the vectors

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

multivector_configMultiVectorConfig | any

Configuration for multi-vector points (e.g., ColBERT)

datatypeVectorStorageDatatype | any

Element storage type (Float32, Float16, Uint8, Turbo4)

sparseSparseVectorConfigrequired

Configuration for creating a new sparse named vector.

Only includes properties that define the vector space and cannot be changed after creation.

Show child attributes
modifierModifier | any

Value modifier for sparse vectors (e.g., IDF)

datatypeVectorStorageDatatype | any

Datatype used to store weights in the index

Example
{
  "dense": {
    "size": 1,
    "distance": "Cosine",
    "multivector_config": {
      "comparator": "max_sim"
    },
    "datatype": "float32"
  }
}

DenseVectorNameConfig

object

Wrapper for dense vector creation config.

denseDenseVectorConfigrequired

Configuration for creating a new dense named vector.

Only includes properties that define the vector space and cannot be changed after creation. Storage type, index type, and quantization are inferred.

Show child attributes
sizeinteger<uint>[1, 65536]required

Dimensionality of the vectors

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

multivector_configMultiVectorConfig | any

Configuration for multi-vector points (e.g., ColBERT)

datatypeVectorStorageDatatype | any

Element storage type (Float32, Float16, Uint8, Turbo4)

Example
{
  "dense": {
    "size": 1,
    "distance": "Cosine",
    "multivector_config": {
      "comparator": "max_sim"
    },
    "datatype": "float32"
  }
}

DenseVectorConfig

object

Configuration for creating a new dense named vector.

Only includes properties that define the vector space and cannot be changed after creation. Storage type, index type, and quantization are inferred.

sizeinteger<uint>[1, 65536]required

Dimensionality of the vectors

distanceDistanceCosineEuclidDotManhattanrequired

Type of internal tags, build from payload Distance function types used to compare vectors

multivector_configMultiVectorConfig | any

Configuration for multi-vector points (e.g., ColBERT)

datatypeVectorStorageDatatype | any

Element storage type (Float32, Float16, Uint8, Turbo4)

Example
{
  "size": 1,
  "distance": "Cosine",
  "multivector_config": {
    "comparator": "max_sim"
  },
  "datatype": "float32"
}

SparseVectorNameConfig

object

Wrapper for sparse vector creation config.

sparseSparseVectorConfigrequired

Configuration for creating a new sparse named vector.

Only includes properties that define the vector space and cannot be changed after creation.

Show child attributes
modifierModifier | any

Value modifier for sparse vectors (e.g., IDF)

datatypeVectorStorageDatatype | any

Datatype used to store weights in the index

Example
{
  "sparse": {
    "modifier": "none",
    "datatype": "float32"
  }
}

SparseVectorConfig

object

Configuration for creating a new sparse named vector.

Only includes properties that define the vector space and cannot be changed after creation.

modifierModifier | any

Value modifier for sparse vectors (e.g., IDF)

datatypeVectorStorageDatatype | any

Datatype used to store weights in the index

Example
{
  "modifier": "none",
  "datatype": "float32"
}

QuotaStatus

object

Quota configuration in effect, and how close each peer is to it.

The configuration is cluster-wide; the utilization is not. usage is the node that served the request, and peers is what every peer that answered reports about itself — memory and disk are node-local, so one peer being under its limit says nothing about the others.

configQuotaConfigrequired

Cluster-wide limits on node resources.

An unset limit means the corresponding resource is not capped. Limits are only enforced while enabled is true.

Show child attributes
enabledbooleanfalse

Whether the limits below are enforced.

max_resident_memory_percentinteger<uint8> | null[1, 100]

Reject memory-consuming updates once process resident memory reaches this percentage of total system memory (or of the cgroup limit, if one applies).

max_disk_usage_percentinteger<uint8> | null[1, 100]

Reject disk-consuming updates once the filesystem hosting the storage directory is filled to this percentage of its capacity.

release_margin_percentinteger<uint8> | null[0, 100]

How many percentage points below its limit a resource has to fall before this node starts accepting work again.

Without a margin, a resource resting on its limit crosses it in both directions on the noise between two readings, putting the node in and out of service each time — and restarting a shard recovery with it. Raise it where usage is volatile; 0 disables the margin and releases as soon as usage is back under the limit.

Unset leaves the built-in default in force, so a config written today does not pin a number that a later release may want to revise.

usageQuotaUsagerequired

Utilization of the quota-managed resources on this node alone — memory and disk are node-local, so a peer under its limit says nothing about the rest of the cluster.

A field is null when the platform does not expose the underlying stat.

Show child attributes
resident_memory_percentinteger<uint8> | null>= 0

Resident memory of this node's process, as a percentage of the memory available to it (cgroup limit if one applies, else total system memory).

disk_usage_percentinteger<uint8> | null>= 0

Used space of this node's storage filesystem, as a percentage of its capacity.

peersobject | null

Utilization reported by each peer, keyed by peer ID, including the one that served the request.

Only peers that answered are listed: a peer missing from the map could not be reached, which is itself worth seeing. Absent entirely outside distributed mode, where there are no peers to ask.

Example
{
  "config": {
    "enabled": false,
    "max_resident_memory_percent": 1,
    "max_disk_usage_percent": 1,
    "release_margin_percent": 0
  },
  "usage": {
    "resident_memory_percent": 0,
    "disk_usage_percent": 0
  },
  "peers": {}
}

QuotaUsage

object

Utilization of the quota-managed resources on this node alone — memory and disk are node-local, so a peer under its limit says nothing about the rest of the cluster.

A field is null when the platform does not expose the underlying stat.

resident_memory_percentinteger<uint8> | null>= 0

Resident memory of this node's process, as a percentage of the memory available to it (cgroup limit if one applies, else total system memory).

disk_usage_percentinteger<uint8> | null>= 0

Used space of this node's storage filesystem, as a percentage of its capacity.

Example
{
  "resident_memory_percent": 0,
  "disk_usage_percent": 0
}

PeerQuotaUsage

object

What one peer reports about the quota it is enforcing.

exceededbooleanrequired

Whether this peer is at or over one of the enforced limits, and so is currently refusing updates. Always false while the quota is disabled.

resident_memory_percentinteger<uint8> | null>= 0

Resident memory of this node's process, as a percentage of the memory available to it (cgroup limit if one applies, else total system memory).

disk_usage_percentinteger<uint8> | null>= 0

Used space of this node's storage filesystem, as a percentage of its capacity.

Example
{
  "exceeded": true,
  "resident_memory_percent": 0,
  "disk_usage_percent": 0
}