---
title: "Scroll points"
method: POST
path: "/collections/{collection_name}/points/scroll"
tags: ["points"]
---

# Scroll points

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

Scroll request - paginate over all points which matches given filtering condition

## Path parameters

- `collection_name` string, required

## Query parameters

- `consistency` union — 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)`
  - integer
  - 'majority' | 'quorum' | 'all' — * `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
- `timeout` integer

## Request body

- ScrollRequest — Scroll request - paginate over all points which matches given condition
  - `shard_key` union — Specify in which shards to look for the points, if not specified - look in all shards
    - union
      - union
        - string
        - integer
      - ShardKey[]
        - union
          - string
          - integer
    - unknown
  - `offset` union — Start ID to read points from.
    - union — Type, used for specifying point ID in user interface
      - integer
      - string, uuid
    - unknown
  - `limit` integer, nullable — Page size. Default: 10
  - `filter` union — Look only for points which satisfies this conditions. If not provided - all points.
    - Filter
      - `should` union — At least one of those conditions should match
        - union
          - FieldCondition — All possible payload filtering conditions
            - `key` string, required — Payload key
            - `match` union — Check if point has field with a given value
              - …
            - `range` union — Check if points value lies in a given range
              - …
            - `geo_bounding_box` union — Check if points geo location lies in a given area
              - …
            - `geo_radius` union — Check if geo point is within a given radius
              - …
            - `geo_polygon` union — Check if geo point is within a given polygon
              - …
            - `values_count` union — Check number of values of the field
              - …
          - IsEmptyCondition — Select points with empty payload for a specified field
            - `is_empty` PayloadField, required — Payload field
              - …
          - IsNullCondition — Select points with null payload for a specified field
            - `is_null` PayloadField, required — Payload field
              - …
          - HasIdCondition — ID-based filtering condition
            - `has_id` ExtendedPointId[], required
              - …
          - NestedCondition
            - `nested` Nested, required — Select points with payload for a specified nested field
              - …
          - Filter — recursive
        - Condition[]
          - union
            - FieldCondition — All possible payload filtering conditions
              - …
            - IsEmptyCondition — Select points with empty payload for a specified field
              - …
            - IsNullCondition — Select points with null payload for a specified field
              - …
            - HasIdCondition — ID-based filtering condition
              - …
            - NestedCondition
              - …
            - Filter — recursive
        - unknown
      - `min_should` union — At least minimum amount of given conditions should match
        - MinShould
          - `conditions` Condition[], required
            - union
              - …
          - `min_count` integer, required
        - unknown
      - `must` union — All conditions must match
        - union
          - FieldCondition — All possible payload filtering conditions
            - `key` string, required — Payload key
            - `match` union — Check if point has field with a given value
              - …
            - `range` union — Check if points value lies in a given range
              - …
            - `geo_bounding_box` union — Check if points geo location lies in a given area
              - …
            - `geo_radius` union — Check if geo point is within a given radius
              - …
            - `geo_polygon` union — Check if geo point is within a given polygon
              - …
            - `values_count` union — Check number of values of the field
              - …
          - IsEmptyCondition — Select points with empty payload for a specified field
            - `is_empty` PayloadField, required — Payload field
              - …
          - IsNullCondition — Select points with null payload for a specified field
            - `is_null` PayloadField, required — Payload field
              - …
          - HasIdCondition — ID-based filtering condition
            - `has_id` ExtendedPointId[], required
              - …
          - NestedCondition
            - `nested` Nested, required — Select points with payload for a specified nested field
              - …
          - Filter — recursive
        - Condition[]
          - union
            - FieldCondition — All possible payload filtering conditions
              - …
            - IsEmptyCondition — Select points with empty payload for a specified field
              - …
            - IsNullCondition — Select points with null payload for a specified field
              - …
            - HasIdCondition — ID-based filtering condition
              - …
            - NestedCondition
              - …
            - Filter — recursive
        - unknown
      - `must_not` union — All conditions must NOT match
        - union
          - FieldCondition — All possible payload filtering conditions
            - `key` string, required — Payload key
            - `match` union — Check if point has field with a given value
              - …
            - `range` union — Check if points value lies in a given range
              - …
            - `geo_bounding_box` union — Check if points geo location lies in a given area
              - …
            - `geo_radius` union — Check if geo point is within a given radius
              - …
            - `geo_polygon` union — Check if geo point is within a given polygon
              - …
            - `values_count` union — Check number of values of the field
              - …
          - IsEmptyCondition — Select points with empty payload for a specified field
            - `is_empty` PayloadField, required — Payload field
              - …
          - IsNullCondition — Select points with null payload for a specified field
            - `is_null` PayloadField, required — Payload field
              - …
          - HasIdCondition — ID-based filtering condition
            - `has_id` ExtendedPointId[], required
              - …
          - NestedCondition
            - `nested` Nested, required — Select points with payload for a specified nested field
              - …
          - Filter — recursive
        - Condition[]
          - union
            - FieldCondition — All possible payload filtering conditions
              - …
            - IsEmptyCondition — Select points with empty payload for a specified field
              - …
            - IsNullCondition — Select points with null payload for a specified field
              - …
            - HasIdCondition — ID-based filtering condition
              - …
            - NestedCondition
              - …
            - Filter — recursive
        - unknown
    - unknown
  - `with_payload` union — Select which payload to return with the response. Default is true.
    - union — Options for specifying which payload to include or not
      - boolean — If `true` - return all payload, If `false` - do not return payload
      - string[] — Specify which fields to return
      - union — Specifies how to treat payload selector
        - PayloadSelectorInclude
          - `include` string[], required — Only include this payload keys
        - PayloadSelectorExclude
          - `exclude` string[], required — Exclude this fields from returning payload
    - unknown
  - `with_vector` union — Options for specifying which vector to include
    - boolean — If `true` - return all vector, If `false` - do not return vector
    - string[] — Specify which vector to return
  - `order_by` union — Order the records by a payload field.
    - union
      - string
      - OrderBy
        - `key` string, required — Payload key to order by
        - `direction` union — Direction of ordering: `asc` or `desc`. Default is ascending.
          - 'asc' | 'desc'
          - unknown
        - `start_from` union — Which payload value to start scrolling from. Default is the lowest value for `asc` and the highest for `desc`
          - union
            - integer
            - number, double
            - string, date-time
          - unknown
    - unknown

## Response `200`

successful operation

- object
  - `time` number, float — Time spent to process this request
  - `status` string
  - `result` ScrollResult — Result of the points read request
    - `points` Record[], required — List of retrieved points
      - `id` union, required — Type, used for specifying point ID in user interface
        - integer
        - string, uuid
      - `payload` union — Payload - values assigned to the point
        - Payload
        - unknown
      - `vector` union — Vector of the point
        - union — Full vector data per point separator with single and multiple vector modes
          - number[]
          - array[]
            - number[]
          - object
          - Document — WARN: Work-in-progress, unimplemented Text document for embedding. Requires inference infrastructure, unimplemented.
            - `text` string, required — Text of the document This field will be used as input for the embedding model
            - `model` string, nullable — Name of the model used to generate the vector List of available models depends on a provider
        - unknown
      - `shard_key` union — Shard Key
        - union
          - string
          - integer
        - unknown
      - `order_value` union
        - union
          - integer
          - number, double
        - unknown
    - `next_page_offset` union — Offset which should be used to retrieve a next page result
      - union — Type, used for specifying point ID in user interface
        - integer
        - string, uuid
      - unknown

## Other responses

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

## Changes

- **2024-09-09** `99f8ca65a207` — 2 info
  - added `#/components/schemas/Document` to the `result/points/items/vector/anyOf[#/components/schemas/VectorStruct]/` response property `anyOf` list for the response status `200`
  - added `#/components/schemas/Document` to the `result/points/items/vector/anyOf[#/components/schemas/VectorStruct]/anyOf[subschema #3]/additionalProperties/` response property `anyOf` list for the response status `200`
- **2024-08-13** `d530ad1be7de` — 10 breaking, 21 info
  - removed `subschema #1, subschema #2` from the `filter/anyOf[#/components/schemas/Filter]/min_should/anyOf[#/components/schemas/MinShould]/conditions/items/anyOf[#/components/schemas/HasIdCondition]/has_id/items/` request property `anyOf` list
  - removed `subschema #1, subschema #2` from the `filter/anyOf[#/components/schemas/Filter]/must/anyOf[#/components/schemas/Condition]/anyOf[#/components/schemas/HasIdCondition]/has_id/items/` request property `anyOf` list
  - removed `subschema #1, subschema #2` from the `filter/anyOf[#/components/schemas/Filter]/must/anyOf[subschema #2]/items/anyOf[#/components/schemas/HasIdCondition]/has_id/items/` request property `anyOf` list
  - removed `subschema #1, subschema #2` from the `filter/anyOf[#/components/schemas/Filter]/must_not/anyOf[#/components/schemas/Condition]/anyOf[#/components/schemas/HasIdCondition]/has_id/items/` request property `anyOf` list
  - …27 more
- …earlier changes not shown

[Full history](https://skmtc.dev/qdrant/apis/qdrant-api/changes/collections/:collection_name/points/scroll/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/99f8ca65a207/schema)
