Qdrant Points API

Float-point vectors with payload.

OpenAPI Specification

qdrant-points-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Qdrant Aliases Points API
  description: "API description for Qdrant vector search engine.\n\nThis document describes CRUD and search operations on collections of points (vectors with payload).\n\nQdrant supports any combinations of `should`, `min_should`, `must` and `must_not` conditions, which makes it possible to use in applications when object could not be described solely by vector. It could be location features, availability flags, and other custom properties businesses should take into account.\n## Examples\nThis examples cover the most basic use-cases - collection creation and basic vector search.\n### Create collection\nFirst - let's create a collection with dot-production metric.\n```\ncurl -X PUT 'http://localhost:6333/collections/test_collection' \\\n  -H 'Content-Type: application/json' \\\n  --data-raw '{\n    \"vectors\": {\n      \"size\": 4,\n      \"distance\": \"Dot\"\n    }\n  }'\n\n```\nExpected response:\n```\n{\n    \"result\": true,\n    \"status\": \"ok\",\n    \"time\": 0.031095451\n}\n```\nWe can ensure that collection was created:\n```\ncurl 'http://localhost:6333/collections/test_collection'\n```\nExpected response:\n```\n{\n  \"result\": {\n    \"status\": \"green\",\n    \"segments_count\": 5,\n    \"disk_data_size\": 0,\n    \"ram_data_size\": 0,\n    \"config\": {\n      \"params\": {\n        \"vectors\": {\n          \"size\": 4,\n          \"distance\": \"Dot\"\n        }\n      },\n      \"hnsw_config\": {\n        \"m\": 16,\n        \"ef_construct\": 100,\n        \"full_scan_threshold\": 10000\n      },\n      \"optimizer_config\": {\n        \"deleted_threshold\": 0.2,\n        \"vacuum_min_vector_number\": 1000,\n        \"default_segment_number\": 2,\n        \"max_segment_size\": null,\n        \"memmap_threshold\": null,\n        \"indexing_threshold\": 20000,\n        \"flush_interval_sec\": 5,\n        \"max_optimization_threads\": null\n      },\n      \"wal_config\": {\n        \"wal_capacity_mb\": 32,\n        \"wal_segments_ahead\": 0\n      }\n    }\n  },\n  \"status\": \"ok\",\n  \"time\": 2.1199e-05\n}\n```\n\n### Add points\nLet's now add vectors with some payload:\n```\ncurl -L -X PUT 'http://localhost:6333/collections/test_collection/points?wait=true' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n  \"points\": [\n    {\"id\": 1, \"vector\": [0.05, 0.61, 0.76, 0.74], \"payload\": {\"city\": \"Berlin\"}},\n    {\"id\": 2, \"vector\": [0.19, 0.81, 0.75, 0.11], \"payload\": {\"city\": [\"Berlin\", \"London\"] }},\n    {\"id\": 3, \"vector\": [0.36, 0.55, 0.47, 0.94], \"payload\": {\"city\": [\"Berlin\", \"Moscow\"] }},\n    {\"id\": 4, \"vector\": [0.18, 0.01, 0.85, 0.80], \"payload\": {\"city\": [\"London\", \"Moscow\"] }},\n    {\"id\": 5, \"vector\": [0.24, 0.18, 0.22, 0.44], \"payload\": {\"count\": [0]}},\n    {\"id\": 6, \"vector\": [0.35, 0.08, 0.11, 0.44]}\n  ]\n}'\n```\nExpected response:\n```\n{\n    \"result\": {\n        \"operation_id\": 0,\n        \"status\": \"completed\"\n    },\n    \"status\": \"ok\",\n    \"time\": 0.000206061\n}\n```\n### Search with filtering\nLet's start with a basic request:\n```\ncurl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n    \"vector\": [0.2,0.1,0.9,0.7],\n    \"top\": 3\n}'\n```\nExpected response:\n```\n{\n    \"result\": [\n        { \"id\": 4, \"score\": 1.362, \"payload\": null, \"version\": 0 },\n        { \"id\": 1, \"score\": 1.273, \"payload\": null, \"version\": 0 },\n        { \"id\": 3, \"score\": 1.208, \"payload\": null, \"version\": 0 }\n    ],\n    \"status\": \"ok\",\n    \"time\": 0.000055785\n}\n```\nBut result is different if we add a filter:\n```\ncurl -L -X POST 'http://localhost:6333/collections/test_collection/points/search' \\ -H 'Content-Type: application/json' \\ --data-raw '{\n    \"filter\": {\n        \"should\": [\n            {\n                \"key\": \"city\",\n                \"match\": {\n                    \"value\": \"London\"\n                }\n            }\n        ]\n    },\n    \"vector\": [0.2, 0.1, 0.9, 0.7],\n    \"top\": 3\n}'\n```\nExpected response:\n```\n{\n    \"result\": [\n        { \"id\": 4, \"score\": 1.362, \"payload\": null, \"version\": 0 },\n        { \"id\": 2, \"score\": 0.871, \"payload\": null, \"version\": 0 }\n    ],\n    \"status\": \"ok\",\n    \"time\": 0.000093972\n}\n```\n"
  contact:
    email: andrey@vasnetsov.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  version: master
servers:
- url: '{protocol}://{hostname}:{port}'
  variables:
    protocol:
      enum:
      - http
      - https
      default: http
    hostname:
      default: localhost
    port:
      default: '6333'
security:
- api-key: []
- bearerAuth: []
- {}
tags:
- name: Points
  description: Float-point vectors with payload.
paths:
  /collections/{collection_name}/points/{id}:
    get:
      tags:
      - Points
      summary: Get point
      description: Retrieve full information of single point by id
      operationId: get_point
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to retrieve from
        required: true
        schema:
          type: string
      - name: id
        in: path
        description: Id of the point
        required: true
        schema:
          $ref: '#/components/schemas/ExtendedPointId'
      - name: consistency
        in: query
        description: Define read consistency guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/ReadConsistency'
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/Record'
  /collections/{collection_name}/points:
    post:
      tags:
      - Points
      summary: Get points
      description: Retrieve multiple points by specified IDs
      operationId: get_points
      requestBody:
        description: List of points to retrieve
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PointRequest'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to retrieve from
        required: true
        schema:
          type: string
      - name: consistency
        in: query
        description: Define read consistency guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/ReadConsistency'
      - name: timeout
        in: query
        description: If set, overrides global timeout for this request. Unit is seconds.
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/Record'
    put:
      tags:
      - Points
      summary: Upsert points
      description: Perform insert + updates on points. If point with given ID already exists - it will be overwritten.
      operationId: upsert_points
      requestBody:
        description: Operation to perform on points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PointInsertOperations'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to update from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/delete:
    post:
      tags:
      - Points
      summary: Delete points
      description: Delete points
      operationId: delete_points
      requestBody:
        description: Operation to perform on points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PointsSelector'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to delete from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/vectors:
    put:
      tags:
      - Points
      summary: Update vectors
      description: Update specified named vectors on points, keep unspecified vectors intact.
      operationId: update_vectors
      requestBody:
        description: Update named vectors on points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateVectors'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to update from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/vectors/delete:
    post:
      tags:
      - Points
      summary: Delete vectors
      description: Delete named vectors from the given points.
      operationId: delete_vectors
      requestBody:
        description: Delete named vectors from points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteVectors'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to delete from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/payload:
    post:
      tags:
      - Points
      summary: Set payload
      description: Set payload values for points
      operationId: set_payload
      requestBody:
        description: Set payload on points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPayload'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to set from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
    put:
      tags:
      - Points
      summary: Overwrite payload
      description: Replace full payload of points with new one
      operationId: overwrite_payload
      requestBody:
        description: Payload and points selector
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SetPayload'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to set from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/payload/delete:
    post:
      tags:
      - Points
      summary: Delete payload
      description: Delete specified key payload for points
      operationId: delete_payload
      requestBody:
        description: delete payload on points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeletePayload'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to delete from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/payload/clear:
    post:
      tags:
      - Points
      summary: Clear payload
      description: Remove all payload for specified points
      operationId: clear_payload
      requestBody:
        description: clear payload on points
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PointsSelector'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to clear payload from
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/batch:
    post:
      tags:
      - Points
      summary: Batch update points
      description: Apply a series of update operations for points, vectors and payloads
      operationId: batch_update
      requestBody:
        description: update operations
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateOperations'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to apply operations on
        required: true
        schema:
          type: string
      - name: wait
        in: query
        description: If true, wait for changes to actually happen
        required: false
        schema:
          type: boolean
      - name: ordering
        in: query
        description: define ordering guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/WriteOrdering'
      - name: timeout
        in: query
        description: Timeout for the operation
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: array
                    items:
                      $ref: '#/components/schemas/UpdateResult'
  /collections/{collection_name}/points/scroll:
    post:
      tags:
      - Points
      summary: Scroll points
      description: Scroll request - paginate over all points which matches given filtering condition
      operationId: scroll_points
      requestBody:
        description: Pagination and filter parameters
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScrollRequest'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to retrieve from
        required: true
        schema:
          type: string
      - name: consistency
        in: query
        description: Define read consistency guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/ReadConsistency'
      - name: timeout
        in: query
        description: If set, overrides global timeout for this request. Unit is seconds.
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  usage:
                    default: null
                    anyOf:
                    - $ref: '#/components/schemas/Usage'
                    - nullable: true
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/ScrollResult'
  /collections/{collection_name}/points/count:
    post:
      tags:
      - Points
      summary: Count points
      description: Count points which matches given filtering condition
      operationId: count_points
      requestBody:
        description: Request counts of points which matches given filtering condition
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CountRequest'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to count in
        required: true
        schema:
          type: string
      - name: consistency
        in: query
        description: Define read consistency guarantees for the operation
        required: false
        schema:
          $ref: '#/components/schemas/ReadConsistency'
      - name: timeout
        in: query
        description: If set, overrides global timeout for this request. Unit is seconds.
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        default:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        4XX:
          description: error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '200':
          description: successful operation
          content:
         

# --- truncated at 32 KB (80 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qdrant/refs/heads/main/openapi/qdrant-points-api-openapi.yml