Qdrant Distributed API

Service distributed setup.

Operations 9

PUT /collections/{collection_name}/shards Create shard key #
GET /collections/{collection_name}/shards List shard keys #
POST /collections/{collection_name}/shards/delete Delete shard key #
GET /cluster Get cluster status info #
GET /cluster/telemetry Collect cluster telemetry data #
POST /cluster/recover Tries to recover current peer Raft state. #
DELETE /cluster/peer/{peer_id} Remove peer from the cluster #
GET /collections/{collection_name}/cluster Collection cluster info #
POST /collections/{collection_name}/cluster Update collection cluster setup #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/qdrant-distributed-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qdrant-distributed-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Qdrant Aliases Distributed 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: Distributed
  description: Service distributed setup.
paths:
  /collections/{collection_name}/shards:
    put:
      tags:
      - Distributed
      summary: Create shard key
      operationId: create_shard_key
      requestBody:
        description: Shard key configuration
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateShardingKey'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to create shards for
        required: true
        schema:
          type: string
      - name: timeout
        in: query
        description: 'Wait for operation commit timeout in seconds.

          If timeout is reached - request will return with service error.

          '
        schema:
          type: integer
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: boolean
    get:
      tags:
      - Distributed
      summary: List shard keys
      operationId: list_shard_keys
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to list shard keys for
        required: true
        schema:
          type: string
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/ShardKeysResponse'
  /collections/{collection_name}/shards/delete:
    post:
      tags:
      - Distributed
      summary: Delete shard key
      operationId: delete_shard_key
      requestBody:
        description: Select shard key to delete
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DropShardingKey'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to create shards for
        required: true
        schema:
          type: string
      - name: timeout
        in: query
        description: 'Wait for operation commit timeout in seconds.

          If timeout is reached - request will return with service error.

          '
        schema:
          type: integer
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: boolean
  /cluster:
    get:
      tags:
      - Distributed
      summary: Get cluster status info
      description: Get information about the current state and composition of the cluster
      operationId: cluster_status
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/ClusterStatus'
  /cluster/telemetry:
    get:
      tags:
      - Distributed
      summary: Collect cluster telemetry data
      description: Get telemetry data, from the point of view of the cluster. This includes peers info, collections info, shard transfers, and resharding status
      operationId: cluster_telemetry
      parameters:
      - name: details_level
        in: query
        description: The level of detail to include in the response
        required: false
        schema:
          type: integer
      - name: timeout
        in: query
        description: Timeout for this request
        required: false
        schema:
          type: integer
          minimum: 1
          default: 60
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/DistributedTelemetryData'
  /cluster/recover:
    post:
      tags:
      - Distributed
      summary: Tries to recover current peer Raft state.
      operationId: recover_current_peer
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: boolean
  /cluster/peer/{peer_id}:
    delete:
      tags:
      - Distributed
      summary: Remove peer from the cluster
      description: Tries to remove peer from the cluster. Will return an error if peer has shards on it.
      operationId: remove_peer
      parameters:
      - name: peer_id
        in: path
        description: Id of the peer
        required: true
        schema:
          type: integer
      - name: timeout
        in: query
        description: 'Wait for operation commit timeout in seconds.

          If timeout is reached - request will return with service error.

          '
        schema:
          type: integer
      - name: force
        in: query
        description: If true - removes peer even if it has shards/replicas on it.
        schema:
          type: boolean
          default: false
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: boolean
  /collections/{collection_name}/cluster:
    get:
      tags:
      - Distributed
      summary: Collection cluster info
      description: Get cluster information for a collection
      operationId: collection_cluster_info
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection to retrieve the cluster info for
        required: true
        schema:
          type: string
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    $ref: '#/components/schemas/CollectionClusterInfo'
    post:
      tags:
      - Distributed
      summary: Update collection cluster setup
      operationId: update_collection_cluster
      requestBody:
        description: Collection cluster update operations
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterOperations'
      parameters:
      - name: collection_name
        in: path
        description: Name of the collection on which to to apply the cluster update operation
        required: true
        schema:
          type: string
      - name: timeout
        in: query
        description: 'Wait for operation commit timeout in seconds.

          If timeout is reached - request will return with service error.

          '
        schema:
          type: integer
      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'
                    - {}
                  time:
                    type: number
                    format: float
                    description: Time spent to process this request
                    example: 0.002
                  status:
                    type: string
                    example: ok
                  result:
                    type: boolean
components:
  schemas:
    MatchExcept:
      description: Should have at least one value not matching the any given values
      type: object
      required:
      - except
      properties:
        except:
          $ref: '#/components/schemas/AnyVariants'
    ModelUsage:
      type: object
      required:
      - tokens
      properties:
        tokens:
          type: integer
          format: uint64
          minimum: 0
    StateRole:
      description: Role of the peer in the consensus
      type: string
      enum:
      - Follower
      - Candidate
      - Leader
      - PreCandidate
    ReplicaState:
      description: State of the single shard within a replica set.
      type: string
      enum:
      - Active
      - Dead
      - Partial
      - Initializing
      - Listener
      - PartialSnapshot
      - Recovery
      - Resharding
      - ReshardingScaleDown
      - ActiveRead
      - ManualRecovery
    RangeInterface:
      anyOf:
      - $ref: '#/components/schemas/Range'
      - $ref: '#/components/schemas/DatetimeRange'
    ReplicateShardOperation:
      type: object
      required:
      - replicate_shard
      properties:
        replicate_shard:
          $ref: '#/components/schemas/ReplicateShard'
    DistributedTelemetryData:
      type: object
      required:
      - collections
      properties:
        collections:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/DistributedCollectionTelemetry'
        cluster:
          anyOf:
          - $ref: '#/components/schemas/DistributedClusterTelemetry'
          - {}
    ShardKeysResponse:
      type: object
      properties:
        shard_keys:
          description: The existing shard keys. Only available when sharding method is `custom`
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ShardKeyDescription'
    ReplicateShard:
      type: object
      required:
      - from_peer_id
      - shard_id
      - to_peer_id
      properties:
        shard_id:
          type: integer
          format: uint32
          minimum: 0
        to_peer_id:
          type: integer
          format: uint64
          minimum: 0
        from_peer_id:
          type: integer
          format: uint64
          minimum: 0
        method:
          description: Method for transferring the shard from one node to another
          anyOf:
          - $ref: '#/components/schemas/ShardTransferMethod'
          - {}
    DatetimeRange:
      description: Range filter request
      type: object
      properties:
        lt:
          description: point.key < range.lt
          type:
          - string
          - 'null'
          format: date-time
        gt:
          description: point.key > range.gt
          type:
          - string
          - 'null'
          format: date-time
        gte:
          description: point.key >= range.gte
          type:
          - string
          - 'null'
          format: date-time
        lte:
          description: point.key <= range.lte
          type:
          - string
          - 'null'
          format: date-time
    ValueVariants:
      anyOf:
      - type: string
      - type: integer
        format: int64
      - type: boolean
    ClusterOperations:
      anyOf:
      - $ref: '#/components/schemas/MoveShardOperation'
      - $ref: '#/components/schemas/ReplicateShardOperation'
      - $ref: '#/components/schemas/AbortTransferOperation'
      - $ref: '#/components/schemas/DropReplicaOperation'
      - $ref: '#/components/schemas/CreateShardingKeyOperation'
      - $ref: '#/components/schemas/DropShardingKeyOperation'
      - $ref: '#/components/schemas/RestartTransferOperation'
      - $ref: '#/components/schemas/StartReshardingOperation'
      - $ref: '#/components/schemas/AbortReshardingOperation'
      - $ref: '#/components/schemas/ReplicatePointsOperation'
    Replica:
      type: object
      required:
      - peer_id
      - shard_id
      properties:
        shard_id:
          type: integer
          format: uint32
          minimum: 0
        peer_id:
          type: integer
          format: uint64
          minimum: 0
    ReshardingDirection:
      description: 'Resharding direction, scale up or down in number of shards


        - `up` - Scale up, add a new shard


        - `down` - Scale down, remove a shard'
      type: string
      enum:
      - up
      - down
    MatchAny:
      description: Exact match on any of the given values
      type: object
      required:
      - any
      properties:
        any:
          $ref: '#/components/schemas/AnyVariants'
    PeerInfo:
      description: Information of a peer in the cluster
      type: object
      required:
      - uri
      properties:
        uri:
          type: string
    Usage:
      description: Usage of the hardware resources, spent to process the request
      type: object
      properties:
        hardware:
          anyOf:
          - $ref: '#/components/schemas/HardwareUsage'
          - {}
        inference:
          anyOf:
          - $ref: '#/components/schemas/InferenceUsage'
          - {}
    RestartTransferOperation:
      type: object
      required:
      - restart_transfer
      properties:
        restart_transfer:
          $ref: '#/components/schemas/RestartTransfer'
    AbortTransferOperation:
      type: object
      required:
      - abort_transfer
      properties:
        abort_transfer:
          $ref: '#/components/schemas/AbortShardTransfer'
    ShardStatus:
      description: 'Current state of the shard (supports same states as the collection)


        `Green` - all good. `Yellow` - optimization is running, ''Grey'' - optimizations are possible but not triggered, `Red` - some operations failed and was not recovered'
      type: string
      enum:
      - green
      - yellow
      - grey
      - red
    NestedCondition:
      type: object
      required:
      - nested
      properties:
        nested:
          $ref: '#/components/schemas/Nested'
    RestartTransfer:
      type: object
      required:
      - from_peer_id
      - method
      - shard_id
      - to_peer_id
      properties:
        shard_id:
          type: integer
          format: uint32
          minimum: 0
        from_peer_id:
          type: integer
          format: uint64
          minimum: 0
        to_peer_id:
          type: integer
          format: uint64
          minimum: 0
        method:
          $ref: '#/components/schemas/ShardTransferMethod'
    RemoteShardInfo:
      type: object
      required:
      - peer_id
      - shard_id
      - state
      properties:
        shard_id:
          description: Remote shard id
          type: integer
          format: uint32
          minimum: 0
        shard_key:
          description: User-defined sharding key
          anyOf:
          - $ref: '#/components/schemas/ShardKey'
          - {}
        peer_id:
          description: Remote peer id
          type: integer
          format: uint64
          minimum: 0
        state:
          $ref: '#/components/schemas/ReplicaState'
    MessageSendErrors:
      description: Message send failures for a particular peer
      type: object
      required:
      - count
      properties:
        count:
          type: integer
          format: uint
          minimum: 0
        latest_error:
          type:
          - string
          - 'null'
        latest_error_timestamp:
          description: Timestamp of the latest error
          type:
          - string
          - 'null'
          format: date-time
    ShardTransferMethod:
      description: 'Methods for transferring a shard from one node to another.


        - `stream_records` - Stream all shard records in batches until the whole shard is transferred.


        - `snapshot` - Snapshot the shard, transfer and restore it on the receiver.


        - `wal_delta` - Attempt to transfer shard difference by WAL delta.


        - `resharding_stream_records` - Shard transfer for resharding: stream all records in batches until all points are transferred.'
      type: string
      enum:
      - stream_records
      - snapshot
      - wal_delta
      - resharding_stream_records
    ShardTransferInfo:
      type: object
      required:
      - from
      - shard_id
      - sync
      - to
      properties:
        shard_id:
          type: integer
          format: uint32
          minimum: 0
        to_shard_id:
          description: 'Target shard ID if different than source shard ID


            Used exclusively with `ReshardingStreamRecords` transfer method.'
          type:
          - integer
          - 'null'
          format: uint32
          minimum: 0
        from:
          description: Source peer id
          type: integer
          format: uint64
          minimum: 0
        to:
          description: Destination peer id
          type: integer
          format: uint64
          minimum: 0
        sync:
          description: If `true` transfer is a synchronization of a replicas If `false` transfer is a moving of a shard from one peer to another
          type: boolean
        method:
          anyOf:
          - $ref: '#/components/schemas/ShardTransferMethod'
          - {}
        comment:
          description: A human-readable report of the transfer progress. Available only on the source peer.
          type:
          - string
          - 'null'
    AnyVariants:
      anyOf:
      - type: array
        items:
          type: string
        uniqueItems: true
      - type: array
        items:
          type: integer
          format: int64
        uniqueItems: true
    IsEmptyCondition:
      description: Select points with empty payload for a specified field
      type: object
      required:
      - is_empty
      properties:
        is_empty:
          $ref: '#/components/schemas/PayloadField'
    FieldCondition:
      description: All possible payload filtering conditions
      type: object
      required:
      - key
      properties:
        key:
          description: Payload key
          type: string
        match:
          description: Check if point has field with a given value
          anyOf:
          - $ref: '#/components/schemas/Match'
          - {}
        range:
          description: Check if points value lies in a given range
          anyOf:
          - $ref: '#/components/schemas/RangeInterface'
          - {}
        geo_bounding_box:
          description: Check if points geolocation lies in a given area
          anyOf:
          - $ref: '#/components/schemas/GeoBoundingBox'
          - {}
        geo_radius:
          description: Check if geo point is within a given radius
          anyOf:
          - $ref: '#/components/schemas/GeoRadius'
          - {}
        geo_polygon:
          description: Check if geo point is within a given polygon
          anyOf:
          - $ref: '#/components/schemas/GeoPolygon'
          - {}
        values_count:
          description: Check number of values of the field
          anyOf:
          - $ref: '#/components/schemas/ValuesCount'
          - {}
        is_empty:
          description: 'Check that the field is empty, alternative syntax for `is_empty: "field_name"`'
          type:
          - boolean
          - 'null'
        is_null:
          description: 'Check that the field is null, alternative syntax for `is_null: "field_name"`'
          type:
          - boolean
          - 'null'
    CollectionClusterInfo:
      description: Current clustering distribution for the collection
      type: object
      required:
      - local_shards
      - peer_id
      - remote_shards
      - shard_count
      - shard_transfers
      properties:
        peer_id:
          description: ID of this peer
          type: integer
          format: uint64
          minimum: 0
        shard_count:
          description: Total number of shards
          type: integer
          format: uint
          minimum: 0
        local_shards:
          description: Local shards
          type: array
          items:
            $ref: '#/components/schemas/LocalShardInfo'
        remote_shards:
          description: Remote shards
          type: array
          items:
            $ref: '#/components/schemas/RemoteShardInfo'
        shard_transfers:
          description: Shard transfers
          type: array
          items:
            $ref: '#/components/schemas/ShardTransferInfo'
        resharding_operations:
          description: Resharding operations
          type:
          - array
          - 'null'
          items:
            $ref: '#/components/schemas/ReshardingInfo'
    AbortReshardingOperation:
      type: object
      required:
      - abort_resharding
      properties:
        abort_resharding:
          $ref: '#/components/schemas/AbortResharding'
    Condition:
      anyOf:
      - $ref: '#/components/schemas/FieldCondition'
      - $ref: '#/components/schemas/IsEmptyCondition'
      - $ref: '#/components/schemas/IsNullCondition'
      - $ref: '#/components/schemas/HasIdCondition'
      

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