> ## Documentation Index
> Fetch the complete documentation index at: https://actianvectorai-docs-low-effort-fixes.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Scroll points

> Paginate through all points in a collection. The response includes a `next_page_offset` cursor that you pass as `offset` in subsequent requests to retrieve the next page. Useful for exporting data, iterating large datasets, or processing points in batches.



## OpenAPI

````yaml post /collections/{collection_name}/points/scroll
openapi: 3.0.3
info:
  title: Actian VectorAI DB - Search API
  description: Vector similarity search operations for Actian VectorAI DB.
  version: 1.0.0
  contact:
    name: Actian Corporation
    url: https://www.actian.com
servers:
  - url: http://localhost:6575
    description: Local development server (REST API)
  - url: https://api.vectorai.actian.com
    description: Production server
security:
  - bearerAuth: []
tags:
  - name: Search
    description: Vector similarity search operations
  - name: Scroll
    description: Pagination and iteration
  - name: Count
    description: Counting operations
paths:
  /collections/{collection_name}/points/scroll:
    post:
      tags:
        - Scroll
      summary: Scroll points
      description: >-
        Paginate through all points in a collection. The response includes a
        `next_page_offset` cursor that you pass as `offset` in subsequent
        requests to retrieve the next page. Useful for exporting data, iterating
        large datasets, or processing points in batches.
      operationId: scroll_points
      parameters:
        - name: collection_name
          in: path
          required: true
          schema:
            type: string
          description: The name of the collection to scroll through.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                limit:
                  type: integer
                  default: 100
                  example: 10
                  description: >-
                    Maximum number of points to return per page. Must be greater
                    than 0. For example, `20` returns 20 points per page.
                    Defaults to 100.
                offset:
                  oneOf:
                    - type: integer
                    - type: string
                  nullable: true
                  example: 3
                  description: >-
                    Cursor from a previous scroll response. Pass the
                    `next_page_offset` value to fetch the next page. Omit or set
                    to null for the first page.
                filter:
                  type: object
                  description: Optional filter conditions to narrow the scrolled results.
                with_payload:
                  type: boolean
                  default: true
                  example: true
                  description: Whether to include payload metadata in the response.
                with_vector:
                  type: boolean
                  default: false
                  example: false
                  description: Whether to include vector data in the response.
            examples:
              first_page:
                summary: First page
                value:
                  limit: 10
                  with_payload: true
                  with_vector: false
              next_page:
                summary: Next page
                value:
                  limit: 10
                  offset: 3
                  with_payload: true
                  with_vector: false
              with_filter:
                summary: Filtered scroll
                value:
                  limit: 10
                  filter:
                    must:
                      - key: group
                        match:
                          value: g0
                  with_payload: true
                  with_vector: false
      responses:
        '200':
          description: Scroll results
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    type: object
                    properties:
                      hardware:
                        type: object
                        nullable: true
                        description: >-
                          Hardware resource counters for the operation,
                          including CPU, payload I/O, payload index I/O, and
                          vector I/O metrics.
                  time:
                    type: number
                    format: double
                    example: 0.000129652
                    description: Time spent to process this request, in seconds.
                  status:
                    type: string
                    example: ok
                    description: Operation status.
                  result:
                    type: object
                    properties:
                      points:
                        type: array
                        description: Array of point objects in this page.
                        items:
                          type: object
                          properties:
                            id:
                              type: integer
                              example: 1
                              description: The point's unique identifier.
                            payload:
                              type: object
                              nullable: true
                              example:
                                category: A
                                value: 10
                              description: >-
                                Payload metadata, or null if `with_payload` is
                                false.
                            vector:
                              type: array
                              nullable: true
                              items:
                                type: number
                              example: null
                              description: Vector data, or null if `with_vector` is false.
                      next_page_offset:
                        oneOf:
                          - type: integer
                          - type: string
                        nullable: true
                        example: 4
                        description: >-
                          Cursor for the next page. Pass this as `offset` in the
                          next request. Null when there are no more pages.
              example:
                usage:
                  hardware: null
                time: 0.000129652
                status: ok
                result:
                  next_page_offset: 4
                  points:
                    - id: 1
                      payload:
                        category: A
                        value: 10
                      vector: null
                    - id: 2
                      payload:
                        category: B
                        value: 20
                      vector: null
                    - id: 3
                      payload:
                        category: C
                        value: 30
                      vector: null
        4XX:
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
        - lang: Python
          label: Manual scroll
          source: |
            from actian_vectorai_client import VectorAIClient

            with VectorAIClient("localhost:6574") as client:
                # Manual cursor-based scroll
                offset = None
                page = 0
                total_scrolled = 0
                
                while True:
                    batch, next_offset = client.points.scroll(
                        "my_collection",
                        limit=10,
                        offset=offset
                    )
                    page += 1
                    total_scrolled += len(batch)
                    
                    print(f"Page {page}: {len(batch)} points")
                    
                    if next_offset is None or len(batch) == 0:
                        break
                    offset = next_offset
                
                print(f"Total scrolled: {total_scrolled}")
        - lang: Python
          label: Scroll all (convenience)
          source: |
            from actian_vectorai_client import VectorAIClient

            with VectorAIClient("localhost:6574") as client:
                # Automatically paginate through all points
                all_points = client.points.scroll_all(
                    "my_collection",
                    batch_size=15
                )
                print(f"Retrieved {len(all_points)} points total")
        - lang: Python
          label: Filtered scroll
          source: >
            from actian_vectorai_client import VectorAIClient, Field,
            FilterBuilder


            with VectorAIClient("localhost:6574") as client:
                # Scroll with filter
                payload_filter = FilterBuilder().must(Field("group").eq("g0")).build()
                filtered, _ = client.points.scroll(
                    "my_collection",
                    filter=payload_filter,
                    limit=100
                )
                print(f"Found {len(filtered)} points in group g0")
        - lang: JavaScript
          label: Scroll points
          source: |
            import { VectorAIClient } from '@actian/vectorai-client';

            const client = new VectorAIClient('localhost:6574');

            let offset = undefined;
            let page = 0;
            while (true) {
                const result = await client.points.scroll('my_collection', {
                    limit: 10,
                    offset,
                    withPayload: true,
                });
                page++;
                console.log(`Page ${page}: ${result.points.length} points`);
                if (!result.nextPageOffset) break;
                offset = result.nextPageOffset;
            }

            client.close();
        - lang: cURL
          label: Scroll
          source: >
            curl -X POST
            "http://localhost:6575/collections/my_collection/points/scroll" \
              -H "Content-Type: application/json" \
              -H 'Authorization: Bearer <admin-jwt-or-access-token>' \
              -d '{
                "limit": 10,
                "with_payload": true,
                "with_vector": false
              }'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        status:
          type: object
          properties:
            error:
              type: string
        time:
          type: number
          format: double
          description: Time spent to process this request, in seconds.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Admin JWT or access token for authenticating requests to VectorAI DB.

````