---
title: "Batch update points"
method: POST
path: "/collections/{collection_name}/points/batch"
tags: ["Points"]
---

# Batch update points

`POST /collections/{collection_name}/points/batch`

Apply a series of update operations for points, vectors and payloads

## Path parameters

- `collection_name` string, required

## Query parameters

- `wait` boolean
- `ordering` 'weak' | 'medium' | 'strong' — 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

## Request body

- UpdateOperations
  - `operations` UpdateOperation[], required
    - union
      - UpsertOperation
        - `upsert` union, required
          - PointsBatch
            - `batch` Batch, required
              - …
            - `shard_key` union
              - …
            - `update_filter` union — If specified, only points that match this filter will be updated, others will be inserted
              - …
          - PointsList
            - `points` PointStruct[], required
              - …
            - `shard_key` union
              - …
            - `update_filter` union — If specified, only points that match this filter will be updated, others will be inserted
              - …
      - DeleteOperation
        - `delete` union, required
          - PointIdsList
            - `points` ExtendedPointId[], required
              - …
            - `shard_key` union
              - …
          - FilterSelector
            - `filter` Filter, required
              - …
            - `shard_key` union
              - …
      - SetPayloadOperation
        - `set_payload` SetPayload, required — This data structure is used in API interface and applied across multiple shards
          - `payload` Payload, required
          - `points` ExtendedPointId[], nullable — Assigns payload to each point in this list
            - union — Type, used for specifying point ID in user interface
              - …
          - `filter` union — Assigns payload to each point that satisfy this filter condition
            - Filter
              - …
            - unknown
          - `shard_key` union
            - union
              - …
            - unknown
          - `key` string, nullable — Assigns payload to each point that satisfy this path of property
      - OverwritePayloadOperation
        - `overwrite_payload` SetPayload, required — This data structure is used in API interface and applied across multiple shards
          - `payload` Payload, required
          - `points` ExtendedPointId[], nullable — Assigns payload to each point in this list
            - union — Type, used for specifying point ID in user interface
              - …
          - `filter` union — Assigns payload to each point that satisfy this filter condition
            - Filter
              - …
            - unknown
          - `shard_key` union
            - union
              - …
            - unknown
          - `key` string, nullable — Assigns payload to each point that satisfy this path of property
      - DeletePayloadOperation
        - `delete_payload` DeletePayload, required — This data structure is used in API interface and applied across multiple shards
          - `keys` string[], required — List of payload keys to remove from payload
          - `points` ExtendedPointId[], nullable — Deletes values from each point in this list
            - union — Type, used for specifying point ID in user interface
              - …
          - `filter` union — Deletes values from points that satisfy this filter condition
            - Filter
              - …
            - unknown
          - `shard_key` union
            - union
              - …
            - unknown
      - ClearPayloadOperation
        - `clear_payload` union, required
          - PointIdsList
            - `points` ExtendedPointId[], required
              - …
            - `shard_key` union
              - …
          - FilterSelector
            - `filter` Filter, required
              - …
            - `shard_key` union
              - …
      - UpdateVectorsOperation
        - `update_vectors` UpdateVectors, required
          - `points` PointVectors[], required — Points with named vectors
            - `id` union, required — Type, used for specifying point ID in user interface
              - …
            - `vector` union, required — Full vector data per point separator with single and multiple vector modes
              - …
          - `shard_key` union
            - union
              - …
            - unknown
          - `update_filter` union
            - Filter
              - …
            - unknown
      - DeleteVectorsOperation
        - `delete_vectors` DeleteVectors, required
          - `points` ExtendedPointId[], nullable — Deletes values from each point in this list
            - union — Type, used for specifying point ID in user interface
              - …
          - `filter` union — Deletes values from points that satisfy this filter condition
            - Filter
              - …
            - unknown
          - `vector` string[], required — Vector names
          - `shard_key` union
            - union
              - …
            - unknown

## Response `200`

successful operation

- object
  - `usage` union
    - Usage — Usage of the hardware resources, spent to process the request
      - `hardware` union
        - HardwareUsage — Usage of the hardware resources, spent to process the request
          - `cpu` integer, required
          - `payload_io_read` integer, required
          - `payload_io_write` integer, required
          - `payload_index_io_read` integer, required
          - `payload_index_io_write` integer, required
          - `vector_io_read` integer, required
          - `vector_io_write` integer, required
        - unknown
      - `inference` union
        - InferenceUsage
          - `models` object, required
        - unknown
    - unknown
  - `time` number, float — Time spent to process this request
  - `status` string
  - `result` UpdateResult[]
    - `operation_id` integer, nullable — Sequential number of the operation
    - `status` 'acknowledged' | 'completed', required — `Acknowledged` - Request is saved to WAL and will be process in a queue. `Completed` - Request is completed, changes are actual.

## Other responses

- `default` — error
- `4XX` — error

## Changes

- **2025-11-17** `d09f337ca2f3` — 9 breaking, 63 info
  - removed `subschema #3, subschema #4, subschema #5, subschema #6` from the `operations/items/anyOf[#/components/schemas/UpsertOperation]/upsert/anyOf[#/components/schemas/PointsBatch]/batch/vectors` request property `anyOf` list
  - the request property `operations/items/anyOf[#/components/schemas/UpdateVectorsOperation]/update_vectors/points/items/vector/anyOf[#/components/schemas/Document]/options` became not nullable
  - the request property `operations/items/anyOf[#/components/schemas/UpdateVectorsOperation]/update_vectors/points/items/vector/anyOf[subschema #3]/additionalProperties/anyOf[#/components/schemas/Document]/options` became not nullable
  - the request property `operations/items/anyOf[#/components/schemas/UpsertOperation]/upsert/anyOf[#/components/schemas/PointsList]/points/items/vector/anyOf[#/components/schemas/Document]/options` became not nullable
  - …68 more
- …earlier changes not shown

[Full history](https://skmtc.dev/qdrant/apis/qdrant-api/changes/collections/:collection_name/points/batch/post.md)

---

[API](https://skmtc.dev/qdrant/apis/qdrant-api.md) · [All operations](https://skmtc.dev/qdrant/apis/qdrant-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/qdrant/qdrant-api/revisions/d09f337ca2f3/schema)
