openapi: 3.0.1 info: title: Qdrant Aliases Points 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: Points description: Float-point vectors with payload. paths: /collections/{collection_name}/points/{id}: get: tags: - Points summary: Get point description: Retrieve full information of single point by id operationId: get_point parameters: - name: collection_name in: path description: Name of the collection to retrieve from required: true schema: type: string - name: id in: path description: Id of the point required: true schema: $ref: '#/components/schemas/ExtendedPointId' - name: consistency in: query description: Define read consistency guarantees for the operation required: false schema: $ref: '#/components/schemas/ReadConsistency' 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/Record' /collections/{collection_name}/points: post: tags: - Points summary: Get points description: Retrieve multiple points by specified IDs operationId: get_points requestBody: description: List of points to retrieve content: application/json: schema: $ref: '#/components/schemas/PointRequest' parameters: - name: collection_name in: path description: Name of the collection to retrieve from required: true schema: type: string - name: consistency in: query description: Define read consistency guarantees for the operation required: false schema: $ref: '#/components/schemas/ReadConsistency' - name: timeout in: query description: If set, overrides global timeout for this request. Unit is seconds. required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: array items: $ref: '#/components/schemas/Record' put: tags: - Points summary: Upsert points description: Perform insert + updates on points. If point with given ID already exists - it will be overwritten. operationId: upsert_points requestBody: description: Operation to perform on points content: application/json: schema: $ref: '#/components/schemas/PointInsertOperations' parameters: - name: collection_name in: path description: Name of the collection to update from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/delete: post: tags: - Points summary: Delete points description: Delete points operationId: delete_points requestBody: description: Operation to perform on points content: application/json: schema: $ref: '#/components/schemas/PointsSelector' parameters: - name: collection_name in: path description: Name of the collection to delete from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/vectors: put: tags: - Points summary: Update vectors description: Update specified named vectors on points, keep unspecified vectors intact. operationId: update_vectors requestBody: description: Update named vectors on points content: application/json: schema: $ref: '#/components/schemas/UpdateVectors' parameters: - name: collection_name in: path description: Name of the collection to update from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/vectors/delete: post: tags: - Points summary: Delete vectors description: Delete named vectors from the given points. operationId: delete_vectors requestBody: description: Delete named vectors from points content: application/json: schema: $ref: '#/components/schemas/DeleteVectors' parameters: - name: collection_name in: path description: Name of the collection to delete from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/payload: post: tags: - Points summary: Set payload description: Set payload values for points operationId: set_payload requestBody: description: Set payload on points content: application/json: schema: $ref: '#/components/schemas/SetPayload' parameters: - name: collection_name in: path description: Name of the collection to set from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' put: tags: - Points summary: Overwrite payload description: Replace full payload of points with new one operationId: overwrite_payload requestBody: description: Payload and points selector content: application/json: schema: $ref: '#/components/schemas/SetPayload' parameters: - name: collection_name in: path description: Name of the collection to set from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/payload/delete: post: tags: - Points summary: Delete payload description: Delete specified key payload for points operationId: delete_payload requestBody: description: delete payload on points content: application/json: schema: $ref: '#/components/schemas/DeletePayload' parameters: - name: collection_name in: path description: Name of the collection to delete from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/payload/clear: post: tags: - Points summary: Clear payload description: Remove all payload for specified points operationId: clear_payload requestBody: description: clear payload on points content: application/json: schema: $ref: '#/components/schemas/PointsSelector' parameters: - name: collection_name in: path description: Name of the collection to clear payload from required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/UpdateResult' /collections/{collection_name}/points/batch: post: tags: - Points summary: Batch update points description: Apply a series of update operations for points, vectors and payloads operationId: batch_update requestBody: description: update operations content: application/json: schema: $ref: '#/components/schemas/UpdateOperations' parameters: - name: collection_name in: path description: Name of the collection to apply operations on required: true schema: type: string - name: wait in: query description: If true, wait for changes to actually happen required: false schema: type: boolean - name: ordering in: query description: define ordering guarantees for the operation required: false schema: $ref: '#/components/schemas/WriteOrdering' - name: timeout in: query description: Timeout for the operation required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - nullable: true time: type: number format: float description: Time spent to process this request example: 0.002 status: type: string example: ok result: type: array items: $ref: '#/components/schemas/UpdateResult' /collections/{collection_name}/points/scroll: post: tags: - Points summary: Scroll points description: Scroll request - paginate over all points which matches given filtering condition operationId: scroll_points requestBody: description: Pagination and filter parameters content: application/json: schema: $ref: '#/components/schemas/ScrollRequest' parameters: - name: collection_name in: path description: Name of the collection to retrieve from required: true schema: type: string - name: consistency in: query description: Define read consistency guarantees for the operation required: false schema: $ref: '#/components/schemas/ReadConsistency' - name: timeout in: query description: If set, overrides global timeout for this request. Unit is seconds. required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/ScrollResult' /collections/{collection_name}/points/count: post: tags: - Points summary: Count points description: Count points which matches given filtering condition operationId: count_points requestBody: description: Request counts of points which matches given filtering condition content: application/json: schema: $ref: '#/components/schemas/CountRequest' parameters: - name: collection_name in: path description: Name of the collection to count in required: true schema: type: string - name: consistency in: query description: Define read consistency guarantees for the operation required: false schema: $ref: '#/components/schemas/ReadConsistency' - name: timeout in: query description: If set, overrides global timeout for this request. Unit is seconds. required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/CountResult' /collections/{collection_name}/facet: post: tags: - Points summary: Facet a payload key with a given filter. description: Count points that satisfy the given filter for each unique value of a payload key. operationId: facet requestBody: description: Request counts of points for each unique value of a payload key content: application/json: schema: $ref: '#/components/schemas/FacetRequest' parameters: - name: collection_name in: path description: Name of the collection to facet in required: true schema: type: string - name: consistency in: query description: Define read consistency guarantees for the operation required: false schema: $ref: '#/components/schemas/ReadConsistency' - name: timeout in: query description: If set, overrides global timeout for this request. Unit is seconds. required: false schema: type: integer minimum: 1 responses: default: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' 4XX: description: error content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '200': description: successful operation content: application/json: schema: type: object properties: usage: default: null anyOf: - $ref: '#/components/schemas/Usage' - 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/FacetResponse' components: schemas: Vector: description: Vector Data Vectors can be described directly with values Or specified with source "objects" for inference anyOf: - type: array items: type: number format: float - $ref: '#/components/schemas/SparseVector' - type: array items: type: array items: type: number format: float - $ref: '#/components/schemas/Document' - $ref: '#/components/schemas/Image' - $ref: '#/components/schemas/InferenceObject' WithVector: description: Options for specifying which vector to include anyOf: - description: If `true` - return all vector, If `false` - do not return vector type: boolean - description: Specify which vector to return type: array items: type: string 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 BatchVectorStruct: anyOf: - type: array items: type: array items: type: number format: float - type: array items: type: array items: type: array items: type: number format: float - type: object additionalProperties: type: array items: $ref: '#/components/schemas/Vector' - type: array items: $ref: '#/components/schemas/Document' - type: array items: $ref: '#/components/schemas/Image' - type: array items: $ref: '#/components/schemas/InferenceObject' GeoLineString: description: Ordered sequence of GeoPoints representing the line type: object required: - points properties: points: type: array items: $ref: '#/components/schemas/GeoPoint' OverwritePayloadOperation: type: object required: - overwrite_payload properties: overwrite_payload: $ref: '#/components/schemas/SetPayload' 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 Payload: type: object additionalProperties: true example: city: London color: green 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' PointIdsList: type: object required: - points properties: points: type: array items: $ref: '#/components/schemas/ExtendedPointId' shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true VectorOutput: description: Vector Data stored in Point anyOf: - type: array items: type: number format: float - $ref: '#/components/schemas/SparseVector' - type: array items: type: array items: type: number format: float WriteOrdering: description: 'Defines write ordering guarantees for collection operations * `weak` - write operations may be reordered, works faster, default * `medium` - write operations go through dynamically selected leader, may be inconsistent for a short period of time in case of leader change * `strong` - Write operations go through the permanent leader, consistent, but may be unavailable if leader is down' type: string enum: - weak - medium - strong ShardKey: anyOf: - type: string example: region_1 - type: integer format: uint64 minimum: 0 example: 12 SparseVector: description: Sparse vector structure type: object required: - indices - values properties: indices: description: Indices must be unique type: array items: type: integer format: uint32 minimum: 0 values: description: Values and indices must be the same length type: array items: type: number format: float HasVectorCondition: description: Filter points which have specific vector assigned type: object required: - has_vector properties: has_vector: type: string OrderByInterface: anyOf: - type: string - $ref: '#/components/schemas/OrderBy' StartFrom: anyOf: - type: integer format: int64 - type: number format: double - type: string format: date-time VectorStructOutput: description: Vector data stored in Point anyOf: - type: array items: type: number format: float example: - 0.875 - 0.140625 - 0.897599995136261 - type: array items: type: array items: type: number format: float example: - - 0.875 - 0.140625 - 0.11020000278949738 - - 0.7580000162124634 - 0.28126001358032227 - 0.9687100052833557 - - 0.6209999918937683 - 0.42187801003456116 - 0.9375 - type: object additionalProperties: $ref: '#/components/schemas/VectorOutput' example: image-embeddings: - 0.8730000257492065 - 0.140625 - 0.897599995136261 MatchAny: description: Exact match on any of the given values type: object required: - any properties: any: $ref: '#/components/schemas/AnyVariants' FacetResponse: type: object required: - hits properties: hits: type: array items: $ref: '#/components/schemas/FacetValueHit' MatchPhrase: description: Full-text phrase match of the string. type: object required: - phrase properties: phrase: type: string WithPayloadInterface: description: Options for specifying which payload to include or not anyOf: - description: If `true` - return all payload, If `false` - do not return payload type: boolean - description: Specify which fields to return type: array items: type: string - $ref: '#/components/schemas/PayloadSelector' InferenceObject: description: 'WARN: Work-in-progress, unimplemented Custom object for embedding. Requires inference infrastructure, unimplemented.' type: object required: - model - object properties: object: description: Arbitrary data, used as input for the embedding model. Used if the model requires more than one input or a custom input. model: description: Name of the model used to generate the vector. List of available models depends on a provider. type: string minLength: 1 example: jinaai/jina-embeddings-v2-base-en options: description: Parameters for the model Values of the parameters are model-specific type: object additionalProperties: true nullable: true ClearPayloadOperation: type: object required: - clear_payload properties: clear_payload: $ref: '#/components/schemas/PointsSelector' UpdateVectorsOperation: type: object required: - update_vectors properties: update_vectors: $ref: '#/components/schemas/UpdateVectors' PointsList: type: object required: - points properties: points: type: array items: $ref: '#/components/schemas/PointStruct' shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true update_filter: description: 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. anyOf: - $ref: '#/components/schemas/Filter' - nullable: true update_mode: description: 'Mode of the upsert operation: insert_only, upsert (default), update_only' anyOf: - $ref: '#/components/schemas/UpdateMode' - nullable: true Batch: type: object required: - ids - vectors properties: ids: type: array items: $ref: '#/components/schemas/ExtendedPointId' vectors: $ref: '#/components/schemas/BatchVectorStruct' payloads: type: array items: anyOf: - $ref: '#/components/schemas/Payload' - nullable: true nullable: true ScrollRequest: description: Scroll request - paginate over all points which matches given condition type: object properties: shard_key: description: Specify in which shards to look for the points, if not specified - look in all shards anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true offset: description: Start ID to read points from. anyOf: - $ref: '#/components/schemas/ExtendedPointId' - nullable: true limit: description: 'Page size. Default: 10' type: integer format: uint minimum: 1 nullable: true filter: description: Look only for points which satisfies this conditions. If not provided - all points. anyOf: - $ref: '#/components/schemas/Filter' - nullable: true with_payload: description: Select which payload to return with the response. Default is true. anyOf: - $ref: '#/components/schemas/WithPayloadInterface' - nullable: true with_vector: $ref: '#/components/schemas/WithVector' order_by: description: Order the records by a payload field. anyOf: - $ref: '#/components/schemas/OrderByInterface' - nullable: true ReadConsistencyType: description: '* `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' type: string enum: - majority - quorum - all 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 PointRequest: type: object required: - ids properties: shard_key: description: Specify in which shards to look for the points, if not specified - look in all shards anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true ids: description: Look for points with ids type: array items: $ref: '#/components/schemas/ExtendedPointId' with_payload: description: Select which payload to return with the response. Default is true. anyOf: - $ref: '#/components/schemas/WithPayloadInterface' - nullable: true with_vector: $ref: '#/components/schemas/WithVector' UpdateOperation: anyOf: - $ref: '#/components/schemas/UpsertOperation' - $ref: '#/components/schemas/DeleteOperation' - $ref: '#/components/schemas/SetPayloadOperation' - $ref: '#/components/schemas/OverwritePayloadOperation' - $ref: '#/components/schemas/DeletePayloadOperation' - $ref: '#/components/schemas/ClearPayloadOperation' - $ref: '#/components/schemas/UpdateVectorsOperation' - $ref: '#/components/schemas/DeleteVectorsOperation' 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' ReadConsistency: description: '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)`' anyOf: - type: integer format: uint minimum: 0 - $ref: '#/components/schemas/ReadConsistencyType' StopwordsSet: type: object properties: languages: description: Set of languages to use for stopwords. Multiple pre-defined lists of stopwords can be combined. type: array items: $ref: '#/components/schemas/Language' uniqueItems: true nullable: true custom: description: Custom stopwords set. Will be merged with the languages set. type: array items: type: string uniqueItems: true nullable: true VectorStruct: description: Full vector data per point separator with single and multiple vector modes anyOf: - type: array items: type: number format: float example: - 0.875 - 0.140625 - 0.897599995136261 - type: array items: type: array items: type: number format: float example: - - 0.875 - 0.140625 - 0.11020000278949738 - - 0.7580000162124634 - 0.28126001358032227 - 0.9687100052833557 - - 0.6209999918937683 - 0.42187801003456116 - 0.9375 - type: object additionalProperties: $ref: '#/components/schemas/Vector' example: image-embeddings: - 0.8730000257492065 - 0.140625 - 0.897599995136261 - $ref: '#/components/schemas/Document' - $ref: '#/components/schemas/Image' - $ref: '#/components/schemas/InferenceObject' PayloadSelectorExclude: type: object required: - exclude properties: exclude: description: Exclude this fields from returning payload type: array items: type: string additionalProperties: false Image: description: 'WARN: Work-in-progress, unimplemented Image object for embedding. Requires inference infrastructure, unimplemented.' type: object required: - image - model properties: image: description: 'Image data: base64 encoded image or an URL' example: https://example.com/image.jpg model: description: Name of the model used to generate the vector. List of available models depends on a provider. type: string minLength: 1 example: Qdrant/clip-ViT-B-32-vision options: description: Parameters for the model Values of the parameters are model-specific type: object additionalProperties: true 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 PointStruct: type: object required: - id - vector properties: id: $ref: '#/components/schemas/ExtendedPointId' vector: $ref: '#/components/schemas/VectorStruct' payload: description: Payload values (optional) anyOf: - $ref: '#/components/schemas/Payload' - nullable: true PayloadField: description: Payload field type: object required: - key properties: key: description: Payload field name type: string 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 ModelUsage: type: object required: - tokens properties: tokens: type: integer format: uint64 minimum: 0 DeletePayloadOperation: type: object required: - delete_payload properties: delete_payload: $ref: '#/components/schemas/DeletePayload' StemmingAlgorithm: description: Different stemming algorithms with their configs. anyOf: - $ref: '#/components/schemas/SnowballParams' 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' 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 DeleteVectorsOperation: type: object required: - delete_vectors properties: delete_vectors: $ref: '#/components/schemas/DeleteVectors' TokenizerType: type: string enum: - prefix - whitespace - word - multilingual PointVectors: type: object required: - id - vector properties: id: $ref: '#/components/schemas/ExtendedPointId' vector: $ref: '#/components/schemas/VectorStruct' FacetValueHit: type: object required: - count - value properties: value: $ref: '#/components/schemas/FacetValue' count: type: integer format: uint minimum: 0 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 PayloadSelectorInclude: type: object required: - include properties: include: description: Only include this payload keys type: array items: type: string additionalProperties: false 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 ShardKeySelector: anyOf: - $ref: '#/components/schemas/ShardKey' - type: array items: $ref: '#/components/schemas/ShardKey' - $ref: '#/components/schemas/ShardKeyWithFallback' UpdateOperations: type: object required: - operations properties: operations: type: array items: $ref: '#/components/schemas/UpdateOperation' Record: description: Point data type: object required: - id properties: id: $ref: '#/components/schemas/ExtendedPointId' payload: description: Payload - values assigned to the point anyOf: - $ref: '#/components/schemas/Payload' - nullable: true vector: description: Vector of the point anyOf: - $ref: '#/components/schemas/VectorStructOutput' - nullable: true shard_key: description: Shard Key anyOf: - $ref: '#/components/schemas/ShardKey' - nullable: true order_value: anyOf: - $ref: '#/components/schemas/OrderValue' - 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 OrderBy: type: object required: - key properties: key: description: Payload key to order by type: string direction: description: 'Direction of ordering: `asc` or `desc`. Default is ascending.' anyOf: - $ref: '#/components/schemas/Direction' - nullable: true start_from: description: Which payload value to start scrolling from. Default is the lowest value for `asc` and the highest for `desc` anyOf: - $ref: '#/components/schemas/StartFrom' - nullable: true ValueVariants: anyOf: - type: string - type: integer format: int64 - type: boolean UpdateStatus: description: '`Acknowledged` - Request is saved to WAL and will be process in a queue. `Completed` - Request is completed, changes are actual. `WaitTimeout` - Request is waiting for timeout.' type: string enum: - acknowledged - completed - wait_timeout DeletePayload: description: This data structure is used in API interface and applied across multiple shards type: object required: - keys properties: keys: description: List of payload keys to remove from payload type: array items: type: string points: description: Deletes values from each point in this list type: array items: $ref: '#/components/schemas/ExtendedPointId' nullable: true filter: description: Deletes values from points that satisfy this filter condition anyOf: - $ref: '#/components/schemas/Filter' - nullable: true shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true ShardKeyWithFallback: type: object required: - fallback - target properties: target: $ref: '#/components/schemas/ShardKey' fallback: $ref: '#/components/schemas/ShardKey' ScrollResult: description: Result of the points read request type: object required: - points properties: points: description: List of retrieved points type: array items: $ref: '#/components/schemas/Record' example: - 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: description: Offset which should be used to retrieve a next page result anyOf: - $ref: '#/components/schemas/ExtendedPointId' - nullable: true UpdateResult: type: object required: - status properties: operation_id: description: Sequential number of the operation type: integer format: uint64 minimum: 0 nullable: true status: $ref: '#/components/schemas/UpdateStatus' GeoPoint: description: Geo point payload schema type: object required: - lat - lon properties: lon: type: number format: double lat: type: number format: double CountResult: type: object required: - count properties: count: description: Number of points which satisfy the conditions type: integer format: uint minimum: 0 Bm25Config: description: Configuration of the local bm25 models. type: object properties: k: description: Controls term frequency saturation. Higher values mean term frequency has more impact. Default is 1.2 default: 1.2 type: number format: double b: description: 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. default: 0.75 type: number format: double avg_len: description: Expected average document length in the collection. Default is 256. default: 256 type: number format: double tokenizer: $ref: '#/components/schemas/TokenizerType' language: description: '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 this to `"language": "none"`. If not specified, English is assumed.' type: string nullable: true lowercase: description: Lowercase the text before tokenization. Default is `true`. type: boolean nullable: true ascii_folding: description: If true, normalize tokens by folding accented characters to ASCII (e.g., "ação" -> "acao"). Default is `false`. type: boolean nullable: true stopwords: description: 'Configuration of the stopwords filter. Supports list of pre-defined languages and custom stopwords. Default: initialized for specified `language` or English if not specified.' anyOf: - $ref: '#/components/schemas/StopwordsInterface' - nullable: true stemmer: description: 'Configuration of the stemmer. Processes tokens to their root form. Default: initialized Snowball stemmer for specified `language` or English if not specified.' anyOf: - $ref: '#/components/schemas/StemmingAlgorithm' - nullable: true min_token_len: description: Minimum token length to keep. If token is shorter than this, it will be discarded. Default is `None`, which means no minimum length. type: integer format: uint minimum: 0 nullable: true max_token_len: description: Maximum token length to keep. If token is longer than this, it will be discarded. Default is `None`, which means no maximum length. type: integer format: uint minimum: 0 nullable: true UpdateMode: description: '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' type: string enum: - upsert - insert_only - update_only FilterSelector: type: object required: - filter properties: filter: $ref: '#/components/schemas/Filter' shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - 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' DocumentOptions: description: 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. anyOf: - type: object additionalProperties: true - $ref: '#/components/schemas/Bm25Config' SnowballParams: type: object required: - language - type properties: type: $ref: '#/components/schemas/Snowball' language: $ref: '#/components/schemas/SnowballLanguage' UpdateVectors: type: object required: - points properties: points: description: Points with named vectors type: array items: $ref: '#/components/schemas/PointVectors' minItems: 1 shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true update_filter: anyOf: - $ref: '#/components/schemas/Filter' - nullable: true RangeInterface: anyOf: - $ref: '#/components/schemas/Range' - $ref: '#/components/schemas/DatetimeRange' DeleteOperation: type: object required: - delete properties: delete: $ref: '#/components/schemas/PointsSelector' CountRequest: description: 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. type: object properties: shard_key: description: Specify in which shards to look for the points, if not specified - look in all shards anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true filter: description: Look only for points which satisfies this conditions anyOf: - $ref: '#/components/schemas/Filter' - nullable: true exact: description: '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' default: true type: boolean SetPayloadOperation: type: object required: - set_payload properties: set_payload: $ref: '#/components/schemas/SetPayload' FacetValue: anyOf: - type: string - type: integer format: int64 - type: boolean PayloadSelector: description: Specifies how to treat payload selector anyOf: - $ref: '#/components/schemas/PayloadSelectorInclude' - $ref: '#/components/schemas/PayloadSelectorExclude' PointsBatch: type: object required: - batch properties: batch: $ref: '#/components/schemas/Batch' shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true update_filter: description: 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. anyOf: - $ref: '#/components/schemas/Filter' - nullable: true update_mode: description: 'Mode of the upsert operation: insert_only, upsert (default), update_only' anyOf: - $ref: '#/components/schemas/UpdateMode' - nullable: true OrderValue: anyOf: - type: integer format: int64 example: 42 - type: number format: double example: 42.5 FacetRequest: type: object required: - key properties: shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true key: description: Payload key to use for faceting. type: string limit: description: Max number of hits to return. Default is 10. type: integer format: uint minimum: 1 nullable: true filter: description: Filter conditions - only consider points that satisfy these conditions. anyOf: - $ref: '#/components/schemas/Filter' - nullable: true exact: description: Whether to do a more expensive exact count for each of the values in the facet. Default is false. type: boolean nullable: true Snowball: type: string enum: - snowball AnyVariants: anyOf: - type: array items: type: string uniqueItems: true - type: array items: type: integer format: int64 uniqueItems: true UpsertOperation: type: object required: - upsert properties: upsert: $ref: '#/components/schemas/PointInsertOperations' Document: description: 'WARN: Work-in-progress, unimplemented Text document for embedding. Requires inference infrastructure, unimplemented.' type: object required: - model - text properties: text: description: Text of the document. This field will be used as input for the embedding model. type: string example: This is a document text model: description: Name of the model used to generate the vector. List of available models depends on a provider. type: string minLength: 1 example: jinaai/jina-embeddings-v2-base-en options: description: Additional options for the model, will be passed to the inference service as-is. See model cards for available options. anyOf: - $ref: '#/components/schemas/DocumentOptions' - nullable: true SnowballLanguage: description: Languages supported by snowball stemmer. type: string enum: - arabic - armenian - danish - dutch - english - finnish - french - german - greek - hungarian - italian - norwegian - portuguese - romanian - russian - spanish - swedish - tamil - turkish Direction: type: string enum: - asc - desc PointInsertOperations: anyOf: - $ref: '#/components/schemas/PointsBatch' - $ref: '#/components/schemas/PointsList' StopwordsInterface: anyOf: - $ref: '#/components/schemas/Language' - $ref: '#/components/schemas/StopwordsSet' DeleteVectors: type: object required: - vector properties: points: description: Deletes values from each point in this list type: array items: $ref: '#/components/schemas/ExtendedPointId' nullable: true filter: description: Deletes values from points that satisfy this filter condition anyOf: - $ref: '#/components/schemas/Filter' - nullable: true vector: description: Vector names type: array items: type: string minItems: 1 uniqueItems: true shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true PointsSelector: anyOf: - $ref: '#/components/schemas/PointIdsList' - $ref: '#/components/schemas/FilterSelector' 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' NestedCondition: type: object required: - nested properties: nested: $ref: '#/components/schemas/Nested' SetPayload: description: This data structure is used in API interface and applied across multiple shards type: object required: - payload properties: payload: $ref: '#/components/schemas/Payload' points: description: Assigns payload to each point in this list type: array items: $ref: '#/components/schemas/ExtendedPointId' nullable: true filter: description: Assigns payload to each point that satisfy this filter condition anyOf: - $ref: '#/components/schemas/Filter' - nullable: true shard_key: anyOf: - $ref: '#/components/schemas/ShardKeySelector' - nullable: true key: description: Assigns payload to each point that satisfy this path of property type: string 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' Language: type: string enum: - arabic - azerbaijani - basque - bengali - catalan - chinese - danish - dutch - english - finnish - french - german - greek - hebrew - hinglish - hungarian - indonesian - italian - japanese - kazakh - nepali - norwegian - portuguese - romanian - russian - slovene - spanish - swedish - tajik - turkish 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/