openapi: 3.0.1 info: title: Qdrant Aliases Distributed API description: "API description for Qdrant vector search engine.\n\nThis document describes CRUD and search operations on collections of points (vectors with payload).\n\nQdrant supports any combinations of `should`, `min_should`, `must` and `must_not` conditions, which makes it possible to use in applications when object could not be described solely by vector. It could be location features, availability flags, and other custom properties businesses should take into account.\n## Examples\nThis examples cover the most basic use-cases - collection creation and basic vector search.\n### Create collection\nFirst - let's create a collection with dot-production metric.\n```\ncurl -X PUT 'http://localhost:6333/collections/test_collection' \\\n -H 'Content-Type: application/json' \\\n --data-raw '{\n \"vectors\": {\n \"size\": 4,\n \"distance\": \"Dot\"\n }\n }'\n\n```\nExpected response:\n```\n{\n \"result\": true,\n \"status\": \"ok\",\n \"time\": 0.031095451\n}\n```\nWe can ensure that collection was created:\n```\ncurl 'http://localhost:6333/collections/test_collection'\n```\nExpected response:\n```\n{\n \"result\": {\n \"status\": \"green\",\n \"segments_count\": 5,\n \"disk_data_size\": 0,\n \"ram_data_size\": 0,\n \"config\": {\n \"params\": {\n \"vectors\": {\n \"size\": 4,\n \"distance\": \"Dot\"\n }\n },\n \"hnsw_config\": {\n \"m\": 16,\n \"ef_construct\": 100,\n \"full_scan_threshold\": 10000\n },\n \"optimizer_config\": {\n \"deleted_threshold\": 0.2,\n \"vacuum_min_vector_number\": 1000,\n \"default_segment_number\": 2,\n \"max_segment_size\": null,\n \"memmap_threshold\": null,\n \"indexing_threshold\": 20000,\n \"flush_interval_sec\": 5,\n \"max_optimization_threads\": null\n },\n \"wal_config\": {\n \"wal_capacity_mb\": 32,\n \"wal_segments_ahead\": 0\n }\n }\n },\n \"status\": \"ok\",\n \"time\": 2.1199e-05\n}\n```\n\n### Add points\nLet's now add vectors with some payload:\n```\ncurl -L -X PUT 'http://localhost:6333/collections/test_collection/points?wait=true' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n \"points\": [\n {\"id\": 1, \"vector\": [0.05, 0.61, 0.76, 0.74], \"payload\": {\"city\": \"Berlin\"}},\n {\"id\": 2, \"vector\": [0.19, 0.81, 0.75, 0.11], \"payload\": {\"city\": [\"Berlin\", \"London\"] }},\n {\"id\": 3, \"vector\": [0.36, 0.55, 0.47, 0.94], \"payload\": {\"city\": [\"Berlin\", \"Moscow\"] }},\n {\"id\": 4, \"vector\": [0.18, 0.01, 0.85, 0.80], \"payload\": {\"city\": [\"London\", \"Moscow\"] }},\n {\"id\": 5, \"vector\": [0.24, 0.18, 0.22, 0.44], \"payload\": {\"count\": [0]}},\n {\"id\": 6, \"vector\": [0.35, 0.08, 0.11, 0.44]}\n ]\n}'\n```\nExpected response:\n```\n{\n \"result\": {\n \"operation_id\": 0,\n \"status\": \"completed\"\n },\n \"status\": \"ok\",\n \"time\": 0.000206061\n}\n```\n### Search with filtering\nLet's start with a basic request:\n```\ncurl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n \"vector\": [0.2,0.1,0.9,0.7],\n \"top\": 3\n}'\n```\nExpected response:\n```\n{\n \"result\": [\n { \"id\": 4, \"score\": 1.362, \"payload\": null, \"version\": 0 },\n { \"id\": 1, \"score\": 1.273, \"payload\": null, \"version\": 0 },\n { \"id\": 3, \"score\": 1.208, \"payload\": null, \"version\": 0 }\n ],\n \"status\": \"ok\",\n \"time\": 0.000055785\n}\n```\nBut result is different if we add a filter:\n```\ncurl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n \"filter\": {\n \"should\": [\n {\n \"key\": \"city\",\n \"match\": {\n \"value\": \"London\"\n }\n }\n ]\n },\n \"vector\": [0.2, 0.1, 0.9, 0.7],\n \"top\": 3\n}'\n```\nExpected response:\n```\n{\n \"result\": [\n { \"id\": 4, \"score\": 1.362, \"payload\": null, \"version\": 0 },\n { \"id\": 2, \"score\": 0.871, \"payload\": null, \"version\": 0 }\n ],\n \"status\": \"ok\",\n \"time\": 0.000093972\n}\n```\n" contact: email: andrey@vasnetsov.com license: name: Apache 2.0 url: http://www.apache.org/licenses/LICENSE-2.0.html version: master servers: - url: '{protocol}://{hostname}:{port}' variables: protocol: enum: - http - https default: http hostname: default: localhost port: default: '6333' security: - api-key: [] - bearerAuth: [] - {} tags: - name: Distributed description: Service distributed setup. paths: /collections/{collection_name}/shards: put: tags: - Distributed summary: Create shard key operationId: create_shard_key requestBody: description: Shard key configuration content: application/json: schema: $ref: '#/components/schemas/CreateShardingKey' parameters: - name: collection_name in: path description: Name of the collection to create shards for required: true schema: type: string - name: timeout in: query description: 'Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error. ' schema: type: integer responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: boolean get: tags: - Distributed summary: List shard keys operationId: list_shard_keys parameters: - name: collection_name in: path description: Name of the collection to list shard keys for required: true schema: type: string responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: $ref: '#/components/schemas/ShardKeysResponse' /collections/{collection_name}/shards/delete: post: tags: - Distributed summary: Delete shard key operationId: delete_shard_key requestBody: description: Select shard key to delete content: application/json: schema: $ref: '#/components/schemas/DropShardingKey' parameters: - name: collection_name in: path description: Name of the collection to create shards for required: true schema: type: string - name: timeout in: query description: 'Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error. ' schema: type: integer responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: boolean /cluster: get: tags: - Distributed summary: Get cluster status info description: Get information about the current state and composition of the cluster operationId: cluster_status responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: $ref: '#/components/schemas/ClusterStatus' /cluster/telemetry: get: tags: - Distributed summary: Collect cluster telemetry data description: Get telemetry data, from the point of view of the cluster. This includes peers info, collections info, shard transfers, and resharding status operationId: cluster_telemetry parameters: - name: details_level in: query description: The level of detail to include in the response required: false schema: type: integer - name: timeout in: query description: Timeout for this request required: false schema: type: integer minimum: 1 default: 60 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: $ref: '#/components/schemas/DistributedTelemetryData' /cluster/recover: post: tags: - Distributed summary: Tries to recover current peer Raft state. operationId: recover_current_peer responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: boolean /cluster/peer/{peer_id}: delete: tags: - Distributed summary: Remove peer from the cluster description: Tries to remove peer from the cluster. Will return an error if peer has shards on it. operationId: remove_peer parameters: - name: peer_id in: path description: Id of the peer required: true schema: type: integer - name: timeout in: query description: 'Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error. ' schema: type: integer - name: force in: query description: If true - removes peer even if it has shards/replicas on it. schema: type: boolean default: false responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: boolean /collections/{collection_name}/cluster: get: tags: - Distributed summary: Collection cluster info description: Get cluster information for a collection operationId: collection_cluster_info parameters: - name: collection_name in: path description: Name of the collection to retrieve the cluster info for required: true schema: type: string responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: $ref: '#/components/schemas/CollectionClusterInfo' post: tags: - Distributed summary: Update collection cluster setup operationId: update_collection_cluster requestBody: description: Collection cluster update operations content: application/json: schema: $ref: '#/components/schemas/ClusterOperations' parameters: - name: collection_name in: path description: Name of the collection on which to to apply the cluster update operation required: true schema: type: string - name: timeout in: query description: 'Wait for operation commit timeout in seconds. If timeout is reached - request will return with service error. ' schema: type: integer responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: boolean components: schemas: DropShardingKey: type: object required: - shard_key properties: shard_key: $ref: '#/components/schemas/ShardKey' DistributedClusterTelemetry: type: object required: - enabled - peers properties: enabled: type: boolean number_of_peers: type: integer format: uint64 minimum: 0 nullable: true peers: type: object additionalProperties: $ref: '#/components/schemas/DistributedPeerInfo' ReshardingInfo: type: object required: - direction - peer_id - shard_id properties: direction: $ref: '#/components/schemas/ReshardingDirection' shard_id: type: integer format: uint32 minimum: 0 peer_id: type: integer format: uint64 minimum: 0 shard_key: anyOf: - $ref: '#/components/schemas/ShardKey' - nullable: true IsNullCondition: description: Select points with null payload for a specified field type: object required: - is_null properties: is_null: $ref: '#/components/schemas/PayloadField' FieldCondition: description: All possible payload filtering conditions type: object required: - key properties: key: description: Payload key type: string match: description: Check if point has field with a given value anyOf: - $ref: '#/components/schemas/Match' - nullable: true range: description: Check if points value lies in a given range anyOf: - $ref: '#/components/schemas/RangeInterface' - nullable: true geo_bounding_box: description: Check if points geolocation lies in a given area anyOf: - $ref: '#/components/schemas/GeoBoundingBox' - nullable: true geo_radius: description: Check if geo point is within a given radius anyOf: - $ref: '#/components/schemas/GeoRadius' - nullable: true geo_polygon: description: Check if geo point is within a given polygon anyOf: - $ref: '#/components/schemas/GeoPolygon' - nullable: true values_count: description: Check number of values of the field anyOf: - $ref: '#/components/schemas/ValuesCount' - nullable: true is_empty: description: 'Check that the field is empty, alternative syntax for `is_empty: "field_name"`' type: boolean nullable: true is_null: description: 'Check that the field is null, alternative syntax for `is_null: "field_name"`' type: boolean nullable: true HasIdCondition: description: ID-based filtering condition type: object required: - has_id properties: has_id: type: array items: $ref: '#/components/schemas/ExtendedPointId' uniqueItems: true ShardCleanStatusFailedTelemetry: type: object required: - reason properties: reason: type: string GeoLineString: description: Ordered sequence of GeoPoints representing the line type: object required: - points properties: points: type: array items: $ref: '#/components/schemas/GeoPoint' AbortReshardingOperation: type: object required: - abort_resharding properties: abort_resharding: $ref: '#/components/schemas/AbortResharding' IsEmptyCondition: description: Select points with empty payload for a specified field type: object required: - is_empty properties: is_empty: $ref: '#/components/schemas/PayloadField' Usage: description: Usage of the hardware resources, spent to process the request type: object properties: hardware: anyOf: - $ref: '#/components/schemas/HardwareUsage' - nullable: true inference: anyOf: - $ref: '#/components/schemas/InferenceUsage' - nullable: true Filter: type: object properties: should: description: At least one of those conditions should match anyOf: - $ref: '#/components/schemas/Condition' - type: array items: $ref: '#/components/schemas/Condition' - nullable: true min_should: description: At least minimum amount of given conditions should match anyOf: - $ref: '#/components/schemas/MinShould' - nullable: true must: description: All conditions must match anyOf: - $ref: '#/components/schemas/Condition' - type: array items: $ref: '#/components/schemas/Condition' - nullable: true must_not: description: All conditions must NOT match anyOf: - $ref: '#/components/schemas/Condition' - type: array items: $ref: '#/components/schemas/Condition' - nullable: true additionalProperties: false ExtendedPointId: description: Type, used for specifying point ID in user interface anyOf: - type: integer format: uint64 minimum: 0 example: 42 - type: string format: uuid example: 550e8400-e29b-41d4-a716-446655440000 InferenceUsage: type: object required: - models properties: models: type: object additionalProperties: $ref: '#/components/schemas/ModelUsage' MoveShard: type: object required: - from_peer_id - shard_id - to_peer_id properties: shard_id: type: integer format: uint32 minimum: 0 to_peer_id: type: integer format: uint64 minimum: 0 from_peer_id: type: integer format: uint64 minimum: 0 method: description: Method for transferring the shard from one node to another anyOf: - $ref: '#/components/schemas/ShardTransferMethod' - nullable: true ShardTransferInfo: type: object required: - from - shard_id - sync - to properties: shard_id: type: integer format: uint32 minimum: 0 to_shard_id: description: 'Target shard ID if different than source shard ID Used exclusively with `ReshardingStreamRecords` transfer method.' type: integer format: uint32 minimum: 0 nullable: true from: description: Source peer id type: integer format: uint64 minimum: 0 to: description: Destination peer id type: integer format: uint64 minimum: 0 sync: description: If `true` transfer is a synchronization of a replicas If `false` transfer is a moving of a shard from one peer to another type: boolean method: anyOf: - $ref: '#/components/schemas/ShardTransferMethod' - nullable: true comment: description: A human-readable report of the transfer progress. Available only on the source peer. type: string nullable: true LocalShardInfo: type: object required: - points_count - shard_id - state properties: shard_id: description: Local shard id type: integer format: uint32 minimum: 0 shard_key: description: User-defined sharding key anyOf: - $ref: '#/components/schemas/ShardKey' - nullable: true points_count: description: Number of points in the shard type: integer format: uint minimum: 0 state: $ref: '#/components/schemas/ReplicaState' ShardKey: anyOf: - type: string example: region_1 - type: integer format: uint64 minimum: 0 example: 12 ReshardingDirection: description: 'Resharding direction, scale up or down in number of shards - `up` - Scale up, add a new shard - `down` - Scale down, remove a shard' type: string enum: - up - down HasVectorCondition: description: Filter points which have specific vector assigned type: object required: - has_vector properties: has_vector: type: string ConsensusThreadStatus: description: Information about current consensus thread status oneOf: - type: object required: - consensus_thread_status - last_update properties: consensus_thread_status: type: string enum: - working last_update: type: string format: date-time - type: object required: - consensus_thread_status properties: consensus_thread_status: type: string enum: - stopped - type: object required: - consensus_thread_status - err properties: consensus_thread_status: type: string enum: - stopped_with_err err: type: string ShardCleanStatusTelemetry: oneOf: - type: string enum: - started - done - cancelled - type: object required: - progress properties: progress: $ref: '#/components/schemas/ShardCleanStatusProgressTelemetry' additionalProperties: false - type: object required: - failed properties: failed: $ref: '#/components/schemas/ShardCleanStatusFailedTelemetry' additionalProperties: false DropReplicaOperation: type: object required: - drop_replica properties: drop_replica: $ref: '#/components/schemas/Replica' MatchAny: description: Exact match on any of the given values type: object required: - any properties: any: $ref: '#/components/schemas/AnyVariants' StartResharding: type: object required: - direction properties: direction: $ref: '#/components/schemas/ReshardingDirection' peer_id: type: integer format: uint64 minimum: 0 nullable: true shard_key: anyOf: - $ref: '#/components/schemas/ShardKey' - nullable: true MatchPhrase: description: Full-text phrase match of the string. type: object required: - phrase properties: phrase: type: string PeerInfo: description: Information of a peer in the cluster type: object required: - uri properties: uri: type: string RaftInfo: description: Summary information about the current raft state type: object required: - commit - is_voter - pending_operations - term properties: term: description: 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. type: integer format: uint64 minimum: 0 commit: description: The index of the latest committed (finalized) operation that this peer is aware of. type: integer format: uint64 minimum: 0 pending_operations: description: Number of consensus operations pending to be applied on this peer type: integer format: uint minimum: 0 leader: description: Leader of the current term type: integer format: uint64 minimum: 0 nullable: true role: description: Role of this peer in the current term anyOf: - $ref: '#/components/schemas/StateRole' - nullable: true is_voter: description: Is this peer a voter or a learner type: boolean StateRole: description: Role of the peer in the consensus type: string enum: - Follower - Candidate - Leader - PreCandidate RestartTransferOperation: type: object required: - restart_transfer properties: restart_transfer: $ref: '#/components/schemas/RestartTransfer' ShardTransferMethod: description: '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.' type: string enum: - stream_records - snapshot - wal_delta - resharding_stream_records Range: description: Range filter request type: object properties: lt: description: point.key < range.lt type: number format: double nullable: true gt: description: point.key > range.gt type: number format: double nullable: true gte: description: point.key >= range.gte type: number format: double nullable: true lte: description: point.key <= range.lte type: number format: double nullable: true Condition: anyOf: - $ref: '#/components/schemas/FieldCondition' - $ref: '#/components/schemas/IsEmptyCondition' - $ref: '#/components/schemas/IsNullCondition' - $ref: '#/components/schemas/HasIdCondition' - $ref: '#/components/schemas/HasVectorCondition' - $ref: '#/components/schemas/NestedCondition' - $ref: '#/components/schemas/Filter' ShardCleanStatusProgressTelemetry: type: object required: - deleted_points properties: deleted_points: type: integer format: uint minimum: 0 PartialSnapshotTelemetry: type: object required: - is_recovering - ongoing_create_snapshot_requests - recovery_timestamp properties: ongoing_create_snapshot_requests: type: integer format: uint minimum: 0 is_recovering: type: boolean recovery_timestamp: type: integer format: uint64 minimum: 0 DropShardingKeyOperation: type: object required: - drop_sharding_key properties: drop_sharding_key: $ref: '#/components/schemas/DropShardingKey' DistributedReplicaTelemetry: type: object required: - peer_id - state properties: peer_id: description: Peer ID hosting this replica type: integer format: uint64 minimum: 0 state: $ref: '#/components/schemas/ReplicaState' status: description: Shard status anyOf: - $ref: '#/components/schemas/ShardStatus' - nullable: true total_optimized_points: description: Total optimized points type: integer format: uint minimum: 0 nullable: true vectors_size_bytes: description: Estimated vectors size in bytes type: integer format: uint minimum: 0 nullable: true payloads_size_bytes: description: Estimated payloads size in bytes type: integer format: uint minimum: 0 nullable: true num_points: description: Approximate number of points type: integer format: uint minimum: 0 nullable: true num_vectors: description: Approximate number of vectors type: integer format: uint minimum: 0 nullable: true num_vectors_by_name: description: Approximate number of vectors by name type: object additionalProperties: type: integer format: uint minimum: 0 nullable: true shard_cleaning_status: description: Shard cleaning task status. After a resharding, a cleanup task is performed to remove outdated points from this shard. anyOf: - $ref: '#/components/schemas/ShardCleanStatusTelemetry' - nullable: true partial_snapshot: description: Partial snapshot telemetry anyOf: - $ref: '#/components/schemas/PartialSnapshotTelemetry' - nullable: true MinShould: type: object required: - conditions - min_count properties: conditions: type: array items: $ref: '#/components/schemas/Condition' min_count: type: integer format: uint minimum: 0 MatchTextAny: description: Full-text match of at least one token of the string. type: object required: - text_any properties: text_any: type: string PayloadField: description: Payload field type: object required: - key properties: key: description: Payload field name type: string ModelUsage: type: object required: - tokens properties: tokens: type: integer format: uint64 minimum: 0 GeoRadius: description: 'Geo filter request Matches coordinates inside the circle of `radius` and center with coordinates `center`' type: object required: - center - radius properties: center: $ref: '#/components/schemas/GeoPoint' radius: description: Radius of the area in meters type: number format: double RestartTransfer: type: object required: - from_peer_id - method - shard_id - to_peer_id properties: shard_id: type: integer format: uint32 minimum: 0 from_peer_id: type: integer format: uint64 minimum: 0 to_peer_id: type: integer format: uint64 minimum: 0 method: $ref: '#/components/schemas/ShardTransferMethod' ShardStatus: description: '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' type: string enum: - green - yellow - grey - red ReplicateShard: type: object required: - from_peer_id - shard_id - to_peer_id properties: shard_id: type: integer format: uint32 minimum: 0 to_peer_id: type: integer format: uint64 minimum: 0 from_peer_id: type: integer format: uint64 minimum: 0 method: description: Method for transferring the shard from one node to another anyOf: - $ref: '#/components/schemas/ShardTransferMethod' - nullable: true MoveShardOperation: type: object required: - move_shard properties: move_shard: $ref: '#/components/schemas/MoveShard' AbortTransferOperation: type: object required: - abort_transfer properties: abort_transfer: $ref: '#/components/schemas/AbortShardTransfer' DistributedCollectionTelemetry: type: object required: - id properties: id: description: Collection name type: string shards: description: Shards topology type: array items: $ref: '#/components/schemas/DistributedShardTelemetry' nullable: true reshardings: description: Ongoing resharding operations type: array items: $ref: '#/components/schemas/ReshardingInfo' nullable: true shard_transfers: description: Ongoing shard transfers type: array items: $ref: '#/components/schemas/ShardTransferInfo' nullable: true HardwareUsage: description: Usage of the hardware resources, spent to process the request type: object required: - cpu - payload_index_io_read - payload_index_io_write - payload_io_read - payload_io_write - vector_io_read - vector_io_write properties: cpu: type: integer format: uint minimum: 0 payload_io_read: type: integer format: uint minimum: 0 payload_io_write: type: integer format: uint minimum: 0 payload_index_io_read: type: integer format: uint minimum: 0 payload_index_io_write: type: integer format: uint minimum: 0 vector_io_read: type: integer format: uint minimum: 0 vector_io_write: type: integer format: uint minimum: 0 MatchValue: description: Exact match of the given value type: object required: - value properties: value: $ref: '#/components/schemas/ValueVariants' Nested: description: Select points with payload for a specified nested field type: object required: - filter - key properties: key: type: string filter: $ref: '#/components/schemas/Filter' RemoteShardInfo: type: object required: - peer_id - shard_id - state properties: shard_id: description: Remote shard id type: integer format: uint32 minimum: 0 shard_key: description: User-defined sharding key anyOf: - $ref: '#/components/schemas/ShardKey' - nullable: true peer_id: description: Remote peer id type: integer format: uint64 minimum: 0 state: $ref: '#/components/schemas/ReplicaState' ClusterOperations: anyOf: - $ref: '#/components/schemas/MoveShardOperation' - $ref: '#/components/schemas/ReplicateShardOperation' - $ref: '#/components/schemas/AbortTransferOperation' - $ref: '#/components/schemas/DropReplicaOperation' - $ref: '#/components/schemas/CreateShardingKeyOperation' - $ref: '#/components/schemas/DropShardingKeyOperation' - $ref: '#/components/schemas/RestartTransferOperation' - $ref: '#/components/schemas/StartReshardingOperation' - $ref: '#/components/schemas/AbortReshardingOperation' - $ref: '#/components/schemas/ReplicatePointsOperation' CreateShardingKey: type: object required: - shard_key properties: shard_key: $ref: '#/components/schemas/ShardKey' shards_number: description: How many shards to create for this key If not specified, will use the default value from config type: integer format: uint32 minimum: 1 nullable: true replication_factor: description: How many replicas to create for each shard If not specified, will use the default value from config type: integer format: uint32 minimum: 1 nullable: true placement: description: 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 type: array items: type: integer format: uint64 minimum: 0 nullable: true initial_state: description: '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' anyOf: - $ref: '#/components/schemas/ReplicaState' - nullable: true ClusterStatus: description: Information about current cluster status and structure oneOf: - type: object required: - status properties: status: type: string enum: - disabled - description: Description of enabled cluster type: object required: - consensus_thread_status - message_send_failures - peer_id - peers - raft_info - status properties: status: type: string enum: - enabled peer_id: description: ID of this peer type: integer format: uint64 minimum: 0 peers: description: Peers composition of the cluster with main information type: object additionalProperties: $ref: '#/components/schemas/PeerInfo' raft_info: $ref: '#/components/schemas/RaftInfo' consensus_thread_status: $ref: '#/components/schemas/ConsensusThreadStatus' message_send_failures: description: 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. type: object additionalProperties: $ref: '#/components/schemas/MessageSendErrors' DistributedPeerDetails: type: object required: - commit - consensus_thread_status - is_voter - num_pending_operations - term - version properties: version: description: Qdrant version type: string role: description: Consensus role for the peer anyOf: - $ref: '#/components/schemas/StateRole' - nullable: true is_voter: description: Whether it can participate in leader elections type: boolean term: description: Election term type: integer format: uint64 minimum: 0 commit: description: Latest accepted commit type: integer format: uint64 minimum: 0 num_pending_operations: description: Number of operations pending for being applied type: integer format: uint64 minimum: 0 consensus_thread_status: $ref: '#/components/schemas/ConsensusThreadStatus' DatetimeRange: description: Range filter request type: object properties: lt: description: point.key < range.lt type: string format: date-time nullable: true gt: description: point.key > range.gt type: string format: date-time nullable: true gte: description: point.key >= range.gte type: string format: date-time nullable: true lte: description: point.key <= range.lte type: string format: date-time nullable: true Replica: type: object required: - peer_id - shard_id properties: shard_id: type: integer format: uint32 minimum: 0 peer_id: type: integer format: uint64 minimum: 0 ErrorResponse: type: object properties: time: type: number format: float description: Time spent to process this request status: type: object properties: error: type: string description: Description of the occurred error. result: type: object nullable: true GeoPolygon: description: 'Geo filter request Matches coordinates inside the polygon, defined by `exterior` and `interiors`' type: object required: - exterior properties: exterior: $ref: '#/components/schemas/GeoLineString' interiors: description: 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. type: array items: $ref: '#/components/schemas/GeoLineString' nullable: true ValuesCount: description: Values count filter request type: object properties: lt: description: point.key.length() < values_count.lt type: integer format: uint minimum: 0 nullable: true gt: description: point.key.length() > values_count.gt type: integer format: uint minimum: 0 nullable: true gte: description: point.key.length() >= values_count.gte type: integer format: uint minimum: 0 nullable: true lte: description: point.key.length() <= values_count.lte type: integer format: uint minimum: 0 nullable: true ValueVariants: anyOf: - type: string - type: integer format: int64 - type: boolean StartReshardingOperation: type: object required: - start_resharding properties: start_resharding: $ref: '#/components/schemas/StartResharding' GeoPoint: description: Geo point payload schema type: object required: - lat - lon properties: lon: type: number format: double lat: type: number format: double ReplicaState: description: State of the single shard within a replica set. type: string enum: - Active - Dead - Partial - Initializing - Listener - PartialSnapshot - Recovery - Resharding - ReshardingScaleDown - ActiveRead - ManualRecovery DistributedTelemetryData: type: object required: - collections properties: collections: type: object additionalProperties: $ref: '#/components/schemas/DistributedCollectionTelemetry' cluster: anyOf: - $ref: '#/components/schemas/DistributedClusterTelemetry' - nullable: true GeoBoundingBox: description: 'Geo filter request Matches coordinates inside the rectangle, described by coordinates of lop-left and bottom-right edges' type: object required: - bottom_right - top_left properties: top_left: $ref: '#/components/schemas/GeoPoint' bottom_right: $ref: '#/components/schemas/GeoPoint' AbortResharding: type: object RangeInterface: anyOf: - $ref: '#/components/schemas/Range' - $ref: '#/components/schemas/DatetimeRange' CreateShardingKeyOperation: type: object required: - create_sharding_key properties: create_sharding_key: $ref: '#/components/schemas/CreateShardingKey' AbortShardTransfer: type: object required: - from_peer_id - shard_id - to_peer_id properties: shard_id: type: integer format: uint32 minimum: 0 to_peer_id: type: integer format: uint64 minimum: 0 from_peer_id: type: integer format: uint64 minimum: 0 ReplicatePoints: type: object required: - from_shard_key - to_shard_key properties: filter: anyOf: - $ref: '#/components/schemas/Filter' - nullable: true from_shard_key: $ref: '#/components/schemas/ShardKey' to_shard_key: $ref: '#/components/schemas/ShardKey' AnyVariants: anyOf: - type: array items: type: string uniqueItems: true - type: array items: type: integer format: int64 uniqueItems: true ShardKeyDescription: type: object required: - key properties: key: $ref: '#/components/schemas/ShardKey' DistributedShardTelemetry: type: object required: - id - replicas properties: id: description: Shard ID type: integer format: uint32 minimum: 0 key: description: Optional shard key anyOf: - $ref: '#/components/schemas/ShardKey' - nullable: true replicas: description: Replica information type: array items: $ref: '#/components/schemas/DistributedReplicaTelemetry' ReplicatePointsOperation: type: object required: - replicate_points properties: replicate_points: $ref: '#/components/schemas/ReplicatePoints' ReplicateShardOperation: type: object required: - replicate_shard properties: replicate_shard: $ref: '#/components/schemas/ReplicateShard' MatchText: description: Full-text match of the strings. type: object required: - text properties: text: type: string Match: description: Match filter request anyOf: - $ref: '#/components/schemas/MatchValue' - $ref: '#/components/schemas/MatchText' - $ref: '#/components/schemas/MatchTextAny' - $ref: '#/components/schemas/MatchPhrase' - $ref: '#/components/schemas/MatchAny' - $ref: '#/components/schemas/MatchExcept' CollectionClusterInfo: description: Current clustering distribution for the collection type: object required: - local_shards - peer_id - remote_shards - shard_count - shard_transfers properties: peer_id: description: ID of this peer type: integer format: uint64 minimum: 0 shard_count: description: Total number of shards type: integer format: uint minimum: 0 local_shards: description: Local shards type: array items: $ref: '#/components/schemas/LocalShardInfo' remote_shards: description: Remote shards type: array items: $ref: '#/components/schemas/RemoteShardInfo' shard_transfers: description: Shard transfers type: array items: $ref: '#/components/schemas/ShardTransferInfo' resharding_operations: description: Resharding operations type: array items: $ref: '#/components/schemas/ReshardingInfo' nullable: true NestedCondition: type: object required: - nested properties: nested: $ref: '#/components/schemas/Nested' DistributedPeerInfo: type: object required: - responsive - uri properties: uri: description: URI of the peer type: string responsive: description: Whether this peer responded for this request type: boolean details: description: If responsive, these details should be available anyOf: - $ref: '#/components/schemas/DistributedPeerDetails' - nullable: true MatchExcept: description: Should have at least one value not matching the any given values type: object required: - except properties: except: $ref: '#/components/schemas/AnyVariants' ShardKeysResponse: type: object properties: shard_keys: description: The existing shard keys. Only available when sharding method is `custom` type: array items: $ref: '#/components/schemas/ShardKeyDescription' nullable: true MessageSendErrors: description: Message send failures for a particular peer type: object required: - count properties: count: type: integer format: uint minimum: 0 latest_error: type: string nullable: true latest_error_timestamp: description: Timestamp of the latest error type: string format: date-time nullable: true securitySchemes: api-key: type: apiKey in: header name: api-key description: Authorization key, either read-write or read-only bearerAuth: type: http scheme: bearer externalDocs: description: Find out more about Qdrant applications and demo url: https://qdrant.tech/documentation/