# Protocol Documentation ## Table of Contents - [collections.proto](#collections-proto) - [AliasOperations](#qdrant-AliasOperations) - [ChangeAliases](#qdrant-ChangeAliases) - [CollectionConfig](#qdrant-CollectionConfig) - [CollectionDescription](#qdrant-CollectionDescription) - [CollectionInfo](#qdrant-CollectionInfo) - [CollectionInfo.PayloadSchemaEntry](#qdrant-CollectionInfo-PayloadSchemaEntry) - [CollectionOperationResponse](#qdrant-CollectionOperationResponse) - [CollectionParams](#qdrant-CollectionParams) - [CollectionParamsDiff](#qdrant-CollectionParamsDiff) - [CreateAlias](#qdrant-CreateAlias) - [CreateCollection](#qdrant-CreateCollection) - [DeleteAlias](#qdrant-DeleteAlias) - [DeleteCollection](#qdrant-DeleteCollection) - [GetCollectionInfoRequest](#qdrant-GetCollectionInfoRequest) - [GetCollectionInfoResponse](#qdrant-GetCollectionInfoResponse) - [HnswConfigDiff](#qdrant-HnswConfigDiff) - [ListCollectionsRequest](#qdrant-ListCollectionsRequest) - [ListCollectionsResponse](#qdrant-ListCollectionsResponse) - [OptimizerStatus](#qdrant-OptimizerStatus) - [OptimizersConfigDiff](#qdrant-OptimizersConfigDiff) - [PayloadIndexParams](#qdrant-PayloadIndexParams) - [PayloadSchemaInfo](#qdrant-PayloadSchemaInfo) - [RenameAlias](#qdrant-RenameAlias) - [TextIndexParams](#qdrant-TextIndexParams) - [UpdateCollection](#qdrant-UpdateCollection) - [VectorParams](#qdrant-VectorParams) - [VectorParamsMap](#qdrant-VectorParamsMap) - [VectorParamsMap.MapEntry](#qdrant-VectorParamsMap-MapEntry) - [VectorsConfig](#qdrant-VectorsConfig) - [WalConfigDiff](#qdrant-WalConfigDiff) - [CollectionStatus](#qdrant-CollectionStatus) - [Distance](#qdrant-Distance) - [PayloadSchemaType](#qdrant-PayloadSchemaType) - [TokenizerType](#qdrant-TokenizerType) - [collections_service.proto](#collections_service-proto) - [Collections](#qdrant-Collections) - [json_with_int.proto](#json_with_int-proto) - [ListValue](#qdrant-ListValue) - [Struct](#qdrant-Struct) - [Struct.FieldsEntry](#qdrant-Struct-FieldsEntry) - [Value](#qdrant-Value) - [NullValue](#qdrant-NullValue) - [points.proto](#points-proto) - [BatchResult](#qdrant-BatchResult) - [ClearPayloadPoints](#qdrant-ClearPayloadPoints) - [Condition](#qdrant-Condition) - [CountPoints](#qdrant-CountPoints) - [CountResponse](#qdrant-CountResponse) - [CountResult](#qdrant-CountResult) - [CreateFieldIndexCollection](#qdrant-CreateFieldIndexCollection) - [DeleteFieldIndexCollection](#qdrant-DeleteFieldIndexCollection) - [DeletePayloadPoints](#qdrant-DeletePayloadPoints) - [DeletePoints](#qdrant-DeletePoints) - [FieldCondition](#qdrant-FieldCondition) - [Filter](#qdrant-Filter) - [GeoBoundingBox](#qdrant-GeoBoundingBox) - [GeoPoint](#qdrant-GeoPoint) - [GeoRadius](#qdrant-GeoRadius) - [GetPoints](#qdrant-GetPoints) - [GetResponse](#qdrant-GetResponse) - [HasIdCondition](#qdrant-HasIdCondition) - [IsEmptyCondition](#qdrant-IsEmptyCondition) - [LookupLocation](#qdrant-LookupLocation) - [Match](#qdrant-Match) - [NamedVectors](#qdrant-NamedVectors) - [NamedVectors.VectorsEntry](#qdrant-NamedVectors-VectorsEntry) - [PayloadExcludeSelector](#qdrant-PayloadExcludeSelector) - [PayloadIncludeSelector](#qdrant-PayloadIncludeSelector) - [PointId](#qdrant-PointId) - [PointStruct](#qdrant-PointStruct) - [PointStruct.PayloadEntry](#qdrant-PointStruct-PayloadEntry) - [PointsIdsList](#qdrant-PointsIdsList) - [PointsOperationResponse](#qdrant-PointsOperationResponse) - [PointsSelector](#qdrant-PointsSelector) - [Range](#qdrant-Range) - [RecommendBatchPoints](#qdrant-RecommendBatchPoints) - [RecommendBatchResponse](#qdrant-RecommendBatchResponse) - [RecommendPoints](#qdrant-RecommendPoints) - [RecommendResponse](#qdrant-RecommendResponse) - [RetrievedPoint](#qdrant-RetrievedPoint) - [RetrievedPoint.PayloadEntry](#qdrant-RetrievedPoint-PayloadEntry) - [ScoredPoint](#qdrant-ScoredPoint) - [ScoredPoint.PayloadEntry](#qdrant-ScoredPoint-PayloadEntry) - [ScrollPoints](#qdrant-ScrollPoints) - [ScrollResponse](#qdrant-ScrollResponse) - [SearchBatchPoints](#qdrant-SearchBatchPoints) - [SearchBatchResponse](#qdrant-SearchBatchResponse) - [SearchParams](#qdrant-SearchParams) - [SearchPoints](#qdrant-SearchPoints) - [SearchResponse](#qdrant-SearchResponse) - [SetPayloadPoints](#qdrant-SetPayloadPoints) - [SetPayloadPoints.PayloadEntry](#qdrant-SetPayloadPoints-PayloadEntry) - [UpdateResult](#qdrant-UpdateResult) - [UpsertPoints](#qdrant-UpsertPoints) - [ValuesCount](#qdrant-ValuesCount) - [Vector](#qdrant-Vector) - [Vectors](#qdrant-Vectors) - [VectorsSelector](#qdrant-VectorsSelector) - [WithPayloadSelector](#qdrant-WithPayloadSelector) - [WithVectorsSelector](#qdrant-WithVectorsSelector) - [FieldType](#qdrant-FieldType) - [UpdateStatus](#qdrant-UpdateStatus) - [points_service.proto](#points_service-proto) - [Points](#qdrant-Points) - [qdrant.proto](#qdrant-proto) - [HealthCheckReply](#qdrant-HealthCheckReply) - [HealthCheckRequest](#qdrant-HealthCheckRequest) - [Qdrant](#qdrant-Qdrant) - [snapshots_service.proto](#snapshots_service-proto) - [CreateFullSnapshotRequest](#qdrant-CreateFullSnapshotRequest) - [CreateSnapshotRequest](#qdrant-CreateSnapshotRequest) - [CreateSnapshotResponse](#qdrant-CreateSnapshotResponse) - [ListFullSnapshotsRequest](#qdrant-ListFullSnapshotsRequest) - [ListSnapshotsRequest](#qdrant-ListSnapshotsRequest) - [ListSnapshotsResponse](#qdrant-ListSnapshotsResponse) - [SnapshotDescription](#qdrant-SnapshotDescription) - [Snapshots](#qdrant-Snapshots) - [Scalar Value Types](#scalar-value-types)
## collections.proto ### AliasOperations | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | create_alias | [CreateAlias](#qdrant-CreateAlias) | | | | rename_alias | [RenameAlias](#qdrant-RenameAlias) | | | | delete_alias | [DeleteAlias](#qdrant-DeleteAlias) | | | ### ChangeAliases | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | actions | [AliasOperations](#qdrant-AliasOperations) | repeated | List of actions | | timeout | [uint64](#uint64) | optional | Wait timeout for operation commit in seconds, if not specified - default value will be supplied | ### CollectionConfig | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | params | [CollectionParams](#qdrant-CollectionParams) | | Collection parameters | | hnsw_config | [HnswConfigDiff](#qdrant-HnswConfigDiff) | | Configuration of vector index | | optimizer_config | [OptimizersConfigDiff](#qdrant-OptimizersConfigDiff) | | Configuration of the optimizers | | wal_config | [WalConfigDiff](#qdrant-WalConfigDiff) | | Configuration of the Write-Ahead-Log | ### CollectionDescription | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | Name of the collection | ### CollectionInfo | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | status | [CollectionStatus](#qdrant-CollectionStatus) | | operating condition of the collection | | optimizer_status | [OptimizerStatus](#qdrant-OptimizerStatus) | | status of collection optimizers | | vectors_count | [uint64](#uint64) | | number of vectors in the collection | | segments_count | [uint64](#uint64) | | Number of independent segments | | config | [CollectionConfig](#qdrant-CollectionConfig) | | Configuration | | payload_schema | [CollectionInfo.PayloadSchemaEntry](#qdrant-CollectionInfo-PayloadSchemaEntry) | repeated | Collection data types | | points_count | [uint64](#uint64) | | number of points in the collection | | indexed_vectors_count | [uint64](#uint64) | optional | number of indexed vectors in the collection. | ### CollectionInfo.PayloadSchemaEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [PayloadSchemaInfo](#qdrant-PayloadSchemaInfo) | | | ### CollectionOperationResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [bool](#bool) | | if operation made changes | | time | [double](#double) | | Time spent to process | ### CollectionParams | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | shard_number | [uint32](#uint32) | | Number of shards in collection | | on_disk_payload | [bool](#bool) | | If true - point's payload will not be stored in memory | | vectors_config | [VectorsConfig](#qdrant-VectorsConfig) | optional | Configuration for vectors | | replication_factor | [uint32](#uint32) | optional | Number of replicas of each shard that network tries to maintain | | write_consistency_factor | [uint32](#uint32) | optional | How many replicas should apply the operation for us to consider it successful | ### CollectionParamsDiff | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | replication_factor | [uint32](#uint32) | optional | Number of replicas of each shard that network tries to maintain | | write_consistency_factor | [uint32](#uint32) | optional | How many replicas should apply the operation for us to consider it successful | ### CreateAlias | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | | alias_name | [string](#string) | | New name of the alias | ### CreateCollection | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | | hnsw_config | [HnswConfigDiff](#qdrant-HnswConfigDiff) | optional | Configuration of vector index | | wal_config | [WalConfigDiff](#qdrant-WalConfigDiff) | optional | Configuration of the Write-Ahead-Log | | optimizers_config | [OptimizersConfigDiff](#qdrant-OptimizersConfigDiff) | optional | Configuration of the optimizers | | shard_number | [uint32](#uint32) | optional | Number of shards in the collection, default = 1 | | on_disk_payload | [bool](#bool) | optional | If true - point's payload will not be stored in memory | | timeout | [uint64](#uint64) | optional | Wait timeout for operation commit in seconds, if not specified - default value will be supplied | | vectors_config | [VectorsConfig](#qdrant-VectorsConfig) | optional | Configuration for vectors | | replication_factor | [uint32](#uint32) | optional | Number of replicas of each shard that network tries to maintain, default = 1 | | write_consistency_factor | [uint32](#uint32) | optional | How many replicas should apply the operation for us to consider it successful, default = 1 | ### DeleteAlias | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | alias_name | [string](#string) | | Name of the alias | ### DeleteCollection | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | | timeout | [uint64](#uint64) | optional | Wait timeout for operation commit in seconds, if not specified - default value will be supplied | ### GetCollectionInfoRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | ### GetCollectionInfoResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [CollectionInfo](#qdrant-CollectionInfo) | | | | time | [double](#double) | | Time spent to process | ### HnswConfigDiff | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | m | [uint64](#uint64) | optional | Number of edges per node in the index graph. Larger the value - more accurate the search, more space required. | | ef_construct | [uint64](#uint64) | optional | Number of neighbours to consider during the index building. Larger the value - more accurate the search, more time required to build index. | | full_scan_threshold | [uint64](#uint64) | optional | Minimal size (in KiloBytes) of vectors for additional payload-based indexing. If payload chunk is smaller than `full_scan_threshold` additional indexing won't be used - in this case full-scan search should be preferred by query planner and additional indexing is not required. Note: 1Kb = 1 vector of size 256 | | max_indexing_threads | [uint64](#uint64) | optional | Number of parallel threads used for background index building. If 0 - auto selection. | | on_disk | [bool](#bool) | optional | Store HNSW index on disk. If set to false, index will be stored in RAM. | | payload_m | [uint64](#uint64) | optional | Number of additional payload-aware links per node in the index graph. If not set - regular M parameter will be used. | ### ListCollectionsRequest ### ListCollectionsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collections | [CollectionDescription](#qdrant-CollectionDescription) | repeated | | | time | [double](#double) | | Time spent to process | ### OptimizerStatus | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | ok | [bool](#bool) | | | | error | [string](#string) | | | ### OptimizersConfigDiff | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | deleted_threshold | [double](#double) | optional | The minimal fraction of deleted vectors in a segment, required to perform segment optimization | | vacuum_min_vector_number | [uint64](#uint64) | optional | The minimal number of vectors in a segment, required to perform segment optimization | | default_segment_number | [uint64](#uint64) | optional | 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. | | max_segment_size | [uint64](#uint64) | optional | Do not create segments larger 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_threshold | [uint64](#uint64) | optional | Maximum size (in KiloBytes) of vectors to store in-memory per segment. Segments larger than this threshold will be stored as read-only memmaped file. To enable memmap storage, lower the threshold Note: 1Kb = 1 vector of size 256 | | indexing_threshold | [uint64](#uint64) | optional | Maximum size (in KiloBytes) of vectors allowed for plain index. Default value based on https://github.com/google-research/google-research/blob/master/scann/docs/algorithms.md Note: 1Kb = 1 vector of size 256 | | flush_interval_sec | [uint64](#uint64) | optional | Interval between forced flushes. | | max_optimization_threads | [uint64](#uint64) | optional | Max number of threads, which can be used for optimization. If 0 - `NUM_CPU - 1` will be used | ### PayloadIndexParams | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | text_index_params | [TextIndexParams](#qdrant-TextIndexParams) | | Parameters for text index | ### PayloadSchemaInfo | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data_type | [PayloadSchemaType](#qdrant-PayloadSchemaType) | | Field data type | | params | [PayloadIndexParams](#qdrant-PayloadIndexParams) | optional | Field index parameters | | points | [uint64](#uint64) | optional | Number of points indexed within this field indexed | ### RenameAlias | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | old_alias_name | [string](#string) | | Name of the alias to rename | | new_alias_name | [string](#string) | | Name of the alias | ### TextIndexParams | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | tokenizer | [TokenizerType](#qdrant-TokenizerType) | | Tokenizer type | | lowercase | [bool](#bool) | optional | If true - all tokens will be lowercased | | min_token_len | [uint64](#uint64) | optional | Minimal token length | | max_token_len | [uint64](#uint64) | optional | Maximal token length | ### UpdateCollection | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | | optimizers_config | [OptimizersConfigDiff](#qdrant-OptimizersConfigDiff) | optional | New configuration parameters for the collection | | timeout | [uint64](#uint64) | optional | Wait timeout for operation commit in seconds, if not specified - default value will be supplied | | params | [CollectionParamsDiff](#qdrant-CollectionParamsDiff) | optional | New configuration parameters for the collection | ### VectorParams | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | size | [uint64](#uint64) | | Size of the vectors | | distance | [Distance](#qdrant-Distance) | | Distance function used for comparing vectors | ### VectorParamsMap | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | map | [VectorParamsMap.MapEntry](#qdrant-VectorParamsMap-MapEntry) | repeated | | ### VectorParamsMap.MapEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [VectorParams](#qdrant-VectorParams) | | | ### VectorsConfig | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | params | [VectorParams](#qdrant-VectorParams) | | | | params_map | [VectorParamsMap](#qdrant-VectorParamsMap) | | | ### WalConfigDiff | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | wal_capacity_mb | [uint64](#uint64) | optional | Size of a single WAL block file | | wal_segments_ahead | [uint64](#uint64) | optional | Number of segments to create in advance | ### CollectionStatus | Name | Number | Description | | ---- | ------ | ----------- | | UnknownCollectionStatus | 0 | | | Green | 1 | All segments are ready | | Yellow | 2 | Optimization in process | | Red | 3 | Something went wrong | ### Distance | Name | Number | Description | | ---- | ------ | ----------- | | UnknownDistance | 0 | | | Cosine | 1 | | | Euclid | 2 | | | Dot | 3 | | ### PayloadSchemaType | Name | Number | Description | | ---- | ------ | ----------- | | UnknownType | 0 | | | Keyword | 1 | | | Integer | 2 | | | Float | 3 | | | Geo | 4 | | | Text | 5 | | ### TokenizerType | Name | Number | Description | | ---- | ------ | ----------- | | Unknown | 0 | | | Prefix | 1 | | | Whitespace | 2 | | | Word | 3 | | ## collections_service.proto ### Collections | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | Get | [GetCollectionInfoRequest](#qdrant-GetCollectionInfoRequest) | [GetCollectionInfoResponse](#qdrant-GetCollectionInfoResponse) | Get detailed information about specified existing collection | | List | [ListCollectionsRequest](#qdrant-ListCollectionsRequest) | [ListCollectionsResponse](#qdrant-ListCollectionsResponse) | Get list name of all existing collections | | Create | [CreateCollection](#qdrant-CreateCollection) | [CollectionOperationResponse](#qdrant-CollectionOperationResponse) | Create new collection with given parameters | | Update | [UpdateCollection](#qdrant-UpdateCollection) | [CollectionOperationResponse](#qdrant-CollectionOperationResponse) | Update parameters of the existing collection | | Delete | [DeleteCollection](#qdrant-DeleteCollection) | [CollectionOperationResponse](#qdrant-CollectionOperationResponse) | Drop collection and all associated data | | UpdateAliases | [ChangeAliases](#qdrant-ChangeAliases) | [CollectionOperationResponse](#qdrant-CollectionOperationResponse) | Update Aliases of the existing collection | ## json_with_int.proto ### ListValue `ListValue` is a wrapper around a repeated field of values. The JSON representation for `ListValue` is JSON array. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | values | [Value](#qdrant-Value) | repeated | Repeated field of dynamically typed values. | ### Struct `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. In some languages, `Struct` might be supported by a native representation. For example, in scripting languages like JS a struct is represented as an object. The details of that representation are described together with the proto support for the language. The JSON representation for `Struct` is JSON object. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | fields | [Struct.FieldsEntry](#qdrant-Struct-FieldsEntry) | repeated | Unordered map of dynamically typed values. | ### Struct.FieldsEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Value](#qdrant-Value) | | | ### Value `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of that variants, absence of any variant indicates an error. The JSON representation for `Value` is JSON value. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | null_value | [NullValue](#qdrant-NullValue) | | Represents a null value. | | double_value | [double](#double) | | Represents a double value. | | integer_value | [int64](#int64) | | Represents an integer value | | string_value | [string](#string) | | Represents a string value. | | bool_value | [bool](#bool) | | Represents a boolean value. | | struct_value | [Struct](#qdrant-Struct) | | Represents a structured value. | | list_value | [ListValue](#qdrant-ListValue) | | Represents a repeated `Value`. | ### NullValue `NullValue` is a singleton enumeration to represent the null value for the `Value` type union. The JSON representation for `NullValue` is JSON `null`. | Name | Number | Description | | ---- | ------ | ----------- | | NULL_VALUE | 0 | Null value. | ## points.proto ### BatchResult | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [ScoredPoint](#qdrant-ScoredPoint) | repeated | | ### ClearPayloadPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | points | [PointsSelector](#qdrant-PointsSelector) | | Affected points | ### Condition | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | field | [FieldCondition](#qdrant-FieldCondition) | | | | is_empty | [IsEmptyCondition](#qdrant-IsEmptyCondition) | | | | has_id | [HasIdCondition](#qdrant-HasIdCondition) | | | | filter | [Filter](#qdrant-Filter) | | | ### CountPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | filter | [Filter](#qdrant-Filter) | | Filter conditions - return only those points that satisfy the specified conditions | | exact | [bool](#bool) | optional | If `true` - return exact count, if `false` - return approximate count | ### CountResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [CountResult](#qdrant-CountResult) | | | | time | [double](#double) | | Time spent to process | ### CountResult | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | count | [uint64](#uint64) | | | ### CreateFieldIndexCollection | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | field_name | [string](#string) | | Field name to index | | field_type | [FieldType](#qdrant-FieldType) | optional | Field type. | | field_index_params | [PayloadIndexParams](#qdrant-PayloadIndexParams) | optional | Payload index params. | ### DeleteFieldIndexCollection | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | field_name | [string](#string) | | Field name to delete | ### DeletePayloadPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | keys | [string](#string) | repeated | List of keys to delete | | points | [PointId](#qdrant-PointId) | repeated | Affected points, deprecated | | points_selector | [PointsSelector](#qdrant-PointsSelector) | optional | Affected points | ### DeletePoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | points | [PointsSelector](#qdrant-PointsSelector) | | Affected points | ### FieldCondition | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | match | [Match](#qdrant-Match) | | Check if point has field with a given value | | range | [Range](#qdrant-Range) | | Check if points value lies in a given range | | geo_bounding_box | [GeoBoundingBox](#qdrant-GeoBoundingBox) | | Check if points geo location lies in a given area | | geo_radius | [GeoRadius](#qdrant-GeoRadius) | | Check if geo point is within a given radius | | values_count | [ValuesCount](#qdrant-ValuesCount) | | Check number of values for a specific field | ### Filter | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | should | [Condition](#qdrant-Condition) | repeated | At least one of those conditions should match | | must | [Condition](#qdrant-Condition) | repeated | All conditions must match | | must_not | [Condition](#qdrant-Condition) | repeated | All conditions must NOT match | ### GeoBoundingBox | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | top_left | [GeoPoint](#qdrant-GeoPoint) | | north-west corner | | bottom_right | [GeoPoint](#qdrant-GeoPoint) | | south-east corner | ### GeoPoint | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | lon | [double](#double) | | | | lat | [double](#double) | | | ### GeoRadius | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | center | [GeoPoint](#qdrant-GeoPoint) | | Center of the circle | | radius | [float](#float) | | In meters | ### GetPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | ids | [PointId](#qdrant-PointId) | repeated | List of points to retrieve | | with_payload | [WithPayloadSelector](#qdrant-WithPayloadSelector) | | Options for specifying which payload to include or not | | with_vectors | [WithVectorsSelector](#qdrant-WithVectorsSelector) | optional | Options for specifying which vectors to include into response | ### GetResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [RetrievedPoint](#qdrant-RetrievedPoint) | repeated | | | time | [double](#double) | | Time spent to process | ### HasIdCondition | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | has_id | [PointId](#qdrant-PointId) | repeated | | ### IsEmptyCondition | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | ### LookupLocation | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | | | vector_name | [string](#string) | optional | Which vector to use for search, if not specified - use default vector | ### Match | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | keyword | [string](#string) | | Match string keyword | | integer | [int64](#int64) | | Match integer | | boolean | [bool](#bool) | | Match boolean | | text | [string](#string) | | Match text | ### NamedVectors | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | vectors | [NamedVectors.VectorsEntry](#qdrant-NamedVectors-VectorsEntry) | repeated | | ### NamedVectors.VectorsEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Vector](#qdrant-Vector) | | | ### PayloadExcludeSelector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | fields | [string](#string) | repeated | List of payload keys to exclude from the result | ### PayloadIncludeSelector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | fields | [string](#string) | repeated | List of payload keys to include into result | ### PointId | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | num | [uint64](#uint64) | | Numerical ID of the point | | uuid | [string](#string) | | UUID | ### PointStruct | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [PointId](#qdrant-PointId) | | | | payload | [PointStruct.PayloadEntry](#qdrant-PointStruct-PayloadEntry) | repeated | | | vectors | [Vectors](#qdrant-Vectors) | optional | | ### PointStruct.PayloadEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Value](#qdrant-Value) | | | ### PointsIdsList | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | ids | [PointId](#qdrant-PointId) | repeated | | ### PointsOperationResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [UpdateResult](#qdrant-UpdateResult) | | | | time | [double](#double) | | Time spent to process | ### PointsSelector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | points | [PointsIdsList](#qdrant-PointsIdsList) | | | | filter | [Filter](#qdrant-Filter) | | | ### Range | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | lt | [double](#double) | optional | | | gt | [double](#double) | optional | | | gte | [double](#double) | optional | | | lte | [double](#double) | optional | | ### RecommendBatchPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | | recommend_points | [RecommendPoints](#qdrant-RecommendPoints) | repeated | | ### RecommendBatchResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [BatchResult](#qdrant-BatchResult) | repeated | | | time | [double](#double) | | Time spent to process | ### RecommendPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | positive | [PointId](#qdrant-PointId) | repeated | Look for vectors closest to those | | negative | [PointId](#qdrant-PointId) | repeated | Try to avoid vectors like this | | filter | [Filter](#qdrant-Filter) | | Filter conditions - return only those points that satisfy the specified conditions | | limit | [uint64](#uint64) | | Max number of result | | with_payload | [WithPayloadSelector](#qdrant-WithPayloadSelector) | | Options for specifying which payload to include or not | | params | [SearchParams](#qdrant-SearchParams) | | Search config | | score_threshold | [float](#float) | optional | If provided - cut off results with worse scores | | offset | [uint64](#uint64) | optional | Offset of the result | | using | [string](#string) | optional | Define which vector to use for recommendation, if not specified - default vector | | with_vectors | [WithVectorsSelector](#qdrant-WithVectorsSelector) | optional | Options for specifying which vectors to include into response | | lookup_from | [LookupLocation](#qdrant-LookupLocation) | optional | Name of the collection to use for points lookup, if not specified - use current collection | ### RecommendResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [ScoredPoint](#qdrant-ScoredPoint) | repeated | | | time | [double](#double) | | Time spent to process | ### RetrievedPoint | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [PointId](#qdrant-PointId) | | | | payload | [RetrievedPoint.PayloadEntry](#qdrant-RetrievedPoint-PayloadEntry) | repeated | | | vectors | [Vectors](#qdrant-Vectors) | optional | | ### RetrievedPoint.PayloadEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Value](#qdrant-Value) | | | ### ScoredPoint | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [PointId](#qdrant-PointId) | | Point id | | payload | [ScoredPoint.PayloadEntry](#qdrant-ScoredPoint-PayloadEntry) | repeated | Payload | | score | [float](#float) | | Similarity score | | version | [uint64](#uint64) | | Last update operation applied to this point | | vectors | [Vectors](#qdrant-Vectors) | optional | Vectors to search | ### ScoredPoint.PayloadEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Value](#qdrant-Value) | | | ### ScrollPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | | | filter | [Filter](#qdrant-Filter) | | Filter conditions - return only those points that satisfy the specified conditions | | offset | [PointId](#qdrant-PointId) | optional | Start with this ID | | limit | [uint32](#uint32) | optional | Max number of result | | with_payload | [WithPayloadSelector](#qdrant-WithPayloadSelector) | | Options for specifying which payload to include or not | | with_vectors | [WithVectorsSelector](#qdrant-WithVectorsSelector) | optional | Options for specifying which vectors to include into response | ### ScrollResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | next_page_offset | [PointId](#qdrant-PointId) | optional | Use this offset for the next query | | result | [RetrievedPoint](#qdrant-RetrievedPoint) | repeated | | | time | [double](#double) | | Time spent to process | ### SearchBatchPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | | search_points | [SearchPoints](#qdrant-SearchPoints) | repeated | | ### SearchBatchResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [BatchResult](#qdrant-BatchResult) | repeated | | | time | [double](#double) | | Time spent to process | ### SearchParams | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | hnsw_ef | [uint64](#uint64) | optional | 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. | | exact | [bool](#bool) | optional | Search without approximation. If set to true, search may run long but with exact results. | ### SearchPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | vector | [float](#float) | repeated | vector | | filter | [Filter](#qdrant-Filter) | | Filter conditions - return only those points that satisfy the specified conditions | | limit | [uint64](#uint64) | | Max number of result | | with_payload | [WithPayloadSelector](#qdrant-WithPayloadSelector) | | Options for specifying which payload to include or not | | params | [SearchParams](#qdrant-SearchParams) | | Search config | | score_threshold | [float](#float) | optional | If provided - cut off results with worse scores | | offset | [uint64](#uint64) | optional | Offset of the result | | vector_name | [string](#string) | optional | Which vector to use for search, if not specified - use default vector | | with_vectors | [WithVectorsSelector](#qdrant-WithVectorsSelector) | optional | Options for specifying which vectors to include into response | ### SearchResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [ScoredPoint](#qdrant-ScoredPoint) | repeated | | | time | [double](#double) | | Time spent to process | ### SetPayloadPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | payload | [SetPayloadPoints.PayloadEntry](#qdrant-SetPayloadPoints-PayloadEntry) | repeated | New payload values | | points | [PointId](#qdrant-PointId) | repeated | List of point to modify, deprecated | | points_selector | [PointsSelector](#qdrant-PointsSelector) | optional | Affected points | ### SetPayloadPoints.PayloadEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Value](#qdrant-Value) | | | ### UpdateResult | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | operation_id | [uint64](#uint64) | | Number of operation | | status | [UpdateStatus](#qdrant-UpdateStatus) | | Operation status | ### UpsertPoints | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | name of the collection | | wait | [bool](#bool) | optional | Wait until the changes have been applied? | | points | [PointStruct](#qdrant-PointStruct) | repeated | | ### ValuesCount | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | lt | [uint64](#uint64) | optional | | | gt | [uint64](#uint64) | optional | | | gte | [uint64](#uint64) | optional | | | lte | [uint64](#uint64) | optional | | ### Vector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | data | [float](#float) | repeated | | ### Vectors | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | vector | [Vector](#qdrant-Vector) | | | | vectors | [NamedVectors](#qdrant-NamedVectors) | | | ### VectorsSelector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | names | [string](#string) | repeated | List of vectors to include into result | ### WithPayloadSelector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | enable | [bool](#bool) | | If `true` - return all payload, if `false` - none | | include | [PayloadIncludeSelector](#qdrant-PayloadIncludeSelector) | | | | exclude | [PayloadExcludeSelector](#qdrant-PayloadExcludeSelector) | | | ### WithVectorsSelector | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | enable | [bool](#bool) | | If `true` - return all vectors, if `false` - none | | include | [VectorsSelector](#qdrant-VectorsSelector) | | List of payload keys to include into result | ### FieldType | Name | Number | Description | | ---- | ------ | ----------- | | FieldTypeKeyword | 0 | | | FieldTypeInteger | 1 | | | FieldTypeFloat | 2 | | | FieldTypeGeo | 3 | | | FieldTypeText | 4 | | ### UpdateStatus | Name | Number | Description | | ---- | ------ | ----------- | | UnknownUpdateStatus | 0 | | | Acknowledged | 1 | Update is received, but not processed yet | | Completed | 2 | Update is applied and ready for search | ## points_service.proto ### Points | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | Upsert | [UpsertPoints](#qdrant-UpsertPoints) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Perform insert + updates on points. If point with given ID already exists - it will be overwritten. | | Delete | [DeletePoints](#qdrant-DeletePoints) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Delete points | | Get | [GetPoints](#qdrant-GetPoints) | [GetResponse](#qdrant-GetResponse) | Retrieve points | | SetPayload | [SetPayloadPoints](#qdrant-SetPayloadPoints) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Set payload for points | | OverwritePayload | [SetPayloadPoints](#qdrant-SetPayloadPoints) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Overwrite payload for points | | DeletePayload | [DeletePayloadPoints](#qdrant-DeletePayloadPoints) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Delete specified key payload for points | | ClearPayload | [ClearPayloadPoints](#qdrant-ClearPayloadPoints) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Remove all payload for specified points | | CreateFieldIndex | [CreateFieldIndexCollection](#qdrant-CreateFieldIndexCollection) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Create index for field in collection | | DeleteFieldIndex | [DeleteFieldIndexCollection](#qdrant-DeleteFieldIndexCollection) | [PointsOperationResponse](#qdrant-PointsOperationResponse) | Delete field index for collection | | Search | [SearchPoints](#qdrant-SearchPoints) | [SearchResponse](#qdrant-SearchResponse) | Retrieve closest points based on vector similarity and given filtering conditions | | SearchBatch | [SearchBatchPoints](#qdrant-SearchBatchPoints) | [SearchBatchResponse](#qdrant-SearchBatchResponse) | Retrieve closest points based on vector similarity and given filtering conditions | | Scroll | [ScrollPoints](#qdrant-ScrollPoints) | [ScrollResponse](#qdrant-ScrollResponse) | Iterate over all or filtered points points | | Recommend | [RecommendPoints](#qdrant-RecommendPoints) | [RecommendResponse](#qdrant-RecommendResponse) | Look for the points which are closer to stored positive examples and at the same time further to negative examples. | | RecommendBatch | [RecommendBatchPoints](#qdrant-RecommendBatchPoints) | [RecommendBatchResponse](#qdrant-RecommendBatchResponse) | Look for the points which are closer to stored positive examples and at the same time further to negative examples. | | Count | [CountPoints](#qdrant-CountPoints) | [CountResponse](#qdrant-CountResponse) | Count points in collection with given filtering conditions | ## qdrant.proto ### HealthCheckReply | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | title | [string](#string) | | | | version | [string](#string) | | | ### HealthCheckRequest ### Qdrant | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | HealthCheck | [HealthCheckRequest](#qdrant-HealthCheckRequest) | [HealthCheckReply](#qdrant-HealthCheckReply) | | ## snapshots_service.proto ### CreateFullSnapshotRequest ### CreateSnapshotRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | ### CreateSnapshotResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | snapshot_description | [SnapshotDescription](#qdrant-SnapshotDescription) | | | | time | [double](#double) | | Time spent to process | ### ListFullSnapshotsRequest ### ListSnapshotsRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | collection_name | [string](#string) | | Name of the collection | ### ListSnapshotsResponse | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | snapshot_descriptions | [SnapshotDescription](#qdrant-SnapshotDescription) | repeated | | | time | [double](#double) | | Time spent to process | ### SnapshotDescription | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | Name of the snapshot | | creation_time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Creation time of the snapshot | | size | [int64](#int64) | | Size of the snapshot in bytes | ### Snapshots | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | Create | [CreateSnapshotRequest](#qdrant-CreateSnapshotRequest) | [CreateSnapshotResponse](#qdrant-CreateSnapshotResponse) | Create collection snapshot | | List | [ListSnapshotsRequest](#qdrant-ListSnapshotsRequest) | [ListSnapshotsResponse](#qdrant-ListSnapshotsResponse) | List collection snapshots | | CreateFull | [CreateFullSnapshotRequest](#qdrant-CreateFullSnapshotRequest) | [CreateSnapshotResponse](#qdrant-CreateSnapshotResponse) | Create full storage snapshot | | ListFull | [ListFullSnapshotsRequest](#qdrant-ListFullSnapshotsRequest) | [ListSnapshotsResponse](#qdrant-ListSnapshotsResponse) | List full storage snapshots | ## Scalar Value Types | .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby | | ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- | | double | | double | double | float | float64 | double | float | Float | | float | | float | float | float | float32 | float | float | Float | | int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum | | uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) | | uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) | | sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum | | fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) | | fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum | | sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) | | sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum | | bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass | | string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) | | bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |