Skip to main content
Points are the core data structure in Qdrant, consisting of a vector, optional payload, and unique ID. Use these endpoints to insert, retrieve, update, and delete points.

Upsert Points

Insert or update points in a collection. If a point with the given ID already exists, it will be overwritten.
curl -X PUT 'http://localhost:6333/collections/{collection_name}/points' \
  -H 'Content-Type: application/json' \
  -d '{
    "points": [
      {
        "id": 1,
        "vector": [0.19, 0.81, 0.75, 0.11],
        "payload": {"city": "Berlin", "price": 1.99}
      },
      {
        "id": 2,
        "vector": [0.36, 0.55, 0.47, 0.94],
        "payload": {"city": "London", "price": 2.99}
      }
    ]
  }'
Path Parameters
collection_name
string
required
Name of the collection to update
Query Parameters
wait
boolean
If true, wait for changes to actually happen. Default is true.
ordering
string
Define ordering guarantees: weak, medium, or strong
timeout
integer
Timeout for the operation in seconds
Request Body
points
array
required
List of points to upsert
id
integer | string
required
Unique identifier for the point. Can be an integer or UUID string.
vector
array | object
required
Vector data. Can be a single vector array, multi-vector array, or named vectors object.
payload
object
Optional payload data associated with the point
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status: acknowledged or completed

Get Point

Retrieve full information about a single point by its ID.
curl -X GET 'http://localhost:6333/collections/{collection_name}/points/{id}'
Path Parameters
collection_name
string
required
Name of the collection to retrieve from
id
integer | string
required
ID of the point to retrieve
Query Parameters
consistency
string
Read consistency level: majority, quorum, or all
Response
result
object
id
integer | string
Point ID
vector
array | object
Vector data
payload
object
Payload data

Get Multiple Points

Retrieve multiple points by their IDs.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points' \
  -H 'Content-Type: application/json' \
  -d '{
    "ids": [1, 2, 3]
  }'
Path Parameters
collection_name
string
required
Name of the collection to retrieve from
Query Parameters
consistency
string
Read consistency level
timeout
integer
Request timeout in seconds
Request Body
ids
array
required
Array of point IDs to retrieve
with_payload
boolean | array | object
Whether to return payload. Can be true, false, array of field names, or include/exclude object.
with_vector
boolean | array
Whether to return vectors. Can be true, false, or array of vector names.
Response
result
array
Array of point objects with id, vector, and payload

Delete Points

Delete points from a collection by ID or filter.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/delete' \
  -H 'Content-Type: application/json' \
  -d '{
    "points": [1, 2, 3]
  }'
Or delete by filter:
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/delete' \
  -H 'Content-Type: application/json' \
  -d '{
    "filter": {
      "must": [
        {"key": "city", "match": {"value": "London"}}
      ]
    }
  }'
Path Parameters
collection_name
string
required
Name of the collection to delete from
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
points
array
Array of point IDs to delete
filter
object
Filter conditions to select points for deletion
must
array
All conditions must match
should
array
At least one condition must match
must_not
array
All conditions must NOT match
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status

Scroll Points

Paginate through all points matching given filtering conditions.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/scroll' \
  -H 'Content-Type: application/json' \
  -d '{
    "limit": 10,
    "with_payload": true,
    "with_vector": false
  }'
Path Parameters
collection_name
string
required
Name of the collection to retrieve from
Query Parameters
consistency
string
Read consistency level
timeout
integer
Request timeout in seconds
Request Body
offset
integer | string
Start from this point ID. Omit to start from the beginning.
limit
integer
Maximum number of points to return. Default is 10.
filter
object
Filter conditions to select points
with_payload
boolean | array | object
Whether to return payload
with_vector
boolean | array
Whether to return vectors
order_by
string
Payload field to order results by
Response
result
object
points
array
Array of point objects
next_page_offset
integer | string
Offset for the next page, or null if this is the last page

Set Payload

Set or update payload values for specific points.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/payload' \
  -H 'Content-Type: application/json' \
  -d '{
    "payload": {
      "property1": "value1",
      "property2": "value2"
    },
    "points": [1, 2, 3]
  }'
Path Parameters
collection_name
string
required
Name of the collection
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
payload
object
required
Payload values to set
points
array
Array of point IDs to update
filter
object
Filter to select points for update
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status

Overwrite Payload

Replace the entire payload of points with a new one.
curl -X PUT 'http://localhost:6333/collections/{collection_name}/points/payload' \
  -H 'Content-Type: application/json' \
  -d '{
    "payload": {
      "new_field": "new_value"
    },
    "points": [1, 2, 3]
  }'
Parameters are identical to Set Payload, but this operation replaces the entire payload rather than merging.

Delete Payload

Delete specific payload keys from points.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/payload/delete' \
  -H 'Content-Type: application/json' \
  -d '{
    "keys": ["property1", "property2"],
    "points": [1, 2, 3]
  }'
Path Parameters
collection_name
string
required
Name of the collection
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
keys
array
required
Array of payload keys to delete
points
array
Array of point IDs to update
filter
object
Filter to select points for update
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status

Clear Payload

Remove all payload from specified points.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/payload/clear' \
  -H 'Content-Type: application/json' \
  -d '{
    "points": [1, 2, 3]
  }'
Path Parameters
collection_name
string
required
Name of the collection
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
points
array
Array of point IDs to clear
filter
object
Filter to select points for clearing
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status

Update Vectors

Update specific named vectors on points while keeping other vectors intact.
curl -X PUT 'http://localhost:6333/collections/{collection_name}/points/vectors' \
  -H 'Content-Type: application/json' \
  -d '{
    "points": [
      {
        "id": 1,
        "vector": {
          "image": [0.1, 0.2, 0.3, 0.4]
        }
      }
    ]
  }'
Path Parameters
collection_name
string
required
Name of the collection
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
points
array
required
Array of points with vectors to update
id
integer | string
required
Point ID
vector
object
required
Named vectors to update
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status

Delete Vectors

Delete specific named vectors from points.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/vectors/delete' \
  -H 'Content-Type: application/json' \
  -d '{
    "vector": ["image", "audio"],
    "points": [1, 2, 3]
  }'
Path Parameters
collection_name
string
required
Name of the collection
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
vector
array
required
Array of vector names to delete
points
array
Array of point IDs
filter
object
Filter to select points
Response
result
object
operation_id
integer
Operation identifier
status
string
Update status

Batch Update

Apply multiple update operations for points, vectors, and payloads in a single request.
curl -X POST 'http://localhost:6333/collections/{collection_name}/points/batch' \
  -H 'Content-Type: application/json' \
  -d '{
    "operations": [
      {
        "upsert": {
          "points": [
            {"id": 1, "vector": [0.1, 0.2], "payload": {"city": "Berlin"}}
          ]
        }
      },
      {
        "delete": {
          "points": [2, 3]
        }
      }
    ]
  }'
Path Parameters
collection_name
string
required
Name of the collection
Query Parameters
wait
boolean
If true, wait for changes to actually happen
ordering
string
Define ordering guarantees for the operation
timeout
integer
Timeout for the operation in seconds
Request Body
operations
array
required
Array of operations to execute. Each operation can be: upsert, delete, set_payload, overwrite_payload, delete_payload, clear_payload, update_vectors, or delete_vectors.
Response
result
array
Array of update results for each operation