Skip to main content
Points are the core data structure in Qdrant. Each point consists of an ID, a vector (or multiple vectors), and an optional payload.

API Endpoint

This endpoint performs an upsert operation: if a point with the given ID already exists, it will be overwritten. Otherwise, a new point will be created.

Point Structure

Each point has the following structure:
integer | string
required
Unique identifier for the point. Can be an integer or UUID string.
array | object
required
Vector data. Can be a simple array for single vectors or an object with named vectors.
object
Optional JSON object with additional data associated with the point.

Insert a Single Point

Insert Multiple Points (Batch)

Batch insertion is more efficient for inserting multiple points at once.

Insert Points with Named Vectors

For collections with multiple named vectors, specify each vector separately.

Insert Points Using Batch Format

The batch format is more efficient for inserting many points with the same structure.

Query Parameters

boolean
default:"true"
If true, wait for changes to actually happen. If false, return immediately after the request is accepted.
string
Define ordering guarantees for the operation:
  • weak - No ordering guarantees
  • medium - Operations are ordered within a single node
  • strong - Operations are ordered across all nodes
integer
Timeout for the operation in seconds.

Using the Wait Parameter

The request will return only after the points are fully indexed and available for search.
Setting wait=false provides lower latency but points may not be immediately available for search.

Response Format

object
Result of the upsert operation.
integer
Sequential number of the operation.
string
Operation status: completed or acknowledged.
string
Overall response status, typically “ok”.
number
Time taken to execute the operation in seconds.
Response Example

Update Modes

Control how points are inserted or updated:
string
default:"upsert"
  • upsert - Insert new points and update existing ones (default)
  • insert_only - Only insert new points, skip existing ones
  • update_only - Only update existing points, skip new ones
Vector dimensions must match the collection configuration. Mismatched dimensions will result in an error.

Best Practices

  1. Batch Size: Insert points in batches of 100-1000 for optimal performance
  2. Wait Parameter: Use wait=false for bulk uploads to improve throughput
  3. Payload Size: Keep payloads reasonably sized (< 1MB per point) for best performance
  4. IDs: Use sequential integers or UUIDs; avoid very long string IDs