openapi: 3.1.0
info:
  title: Qdrant-compatible API
  version: Qdrant 1.19 subset
  description: '**Status: Available.** Loam serves the Qdrant REST API on port 6333 and gRPC on 6334,
    so `qdrant-client` and framework integrations work unmodified. The official Python client suites (1.15
    and 1.19) pass against it in CI.


    Request and response bodies follow upstream Qdrant 1.19; see the [Qdrant API reference](https://api.qdrant.tech/api-reference)
    for field-level detail. This page lists exactly the routes Loam implements. Routes it does not implement
    (telemetry, metrics, cluster and shard management, snapshot upload and recovery, facets, the distance
    matrix) are left out; Loam answers them with 501.


    **Envelope.** Success: `{"result": ..., "status": "ok", "time": <seconds>}`. Error: `{"status": {"error":
    "<message>"}, "time": <seconds>}`.


    **Namespace and consistency.** Send `Operon-Namespace` to pick a namespace (default `default`). Writes
    return `Operon-Consistency-Token`; send it back on a read to see the write.


    **gRPC (port 6334).** `Collections`, `Points`, `Snapshots` (create, list), `Qdrant.HealthCheck` and
    `grpc.health.v1.Health`, mirroring the REST routes below.


    **Auth.** `api-key` and `Authorization` are accepted and ignored until engine auth lands.'
servers:
- url: http://127.0.0.1:6333
  description: Local engine
tags:
- name: Service
- name: Collections
- name: Aliases
- name: Points
- name: Payload
- name: Search
- name: Snapshots
paths:
  /:
    get:
      tags:
      - Service
      summary: Service info
      operationId: root
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /healthz:
    get:
      tags:
      - Service
      summary: healthz
      operationId: healthz
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /livez:
    get:
      tags:
      - Service
      summary: livez
      operationId: livez
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /readyz:
    get:
      tags:
      - Service
      summary: readyz
      operationId: readyz
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /cluster:
    get:
      tags:
      - Service
      summary: Cluster info
      operationId: cluster
      x-badges:
      - name: Available
        color: '#5f8f3a'
      description: Loam reports itself as a single logical node.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /collections:
    get:
      tags:
      - Collections
      summary: List collections
      operationId: list_collections
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /collections/{collection_name}:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    get:
      tags:
      - Collections
      summary: Get collection
      operationId: get_collection
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    put:
      tags:
      - Collections
      summary: Create collection
      operationId: create_collection
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    patch:
      tags:
      - Collections
      summary: Update collection
      operationId: update_collection
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    delete:
      tags:
      - Collections
      summary: Delete collection
      operationId: delete_collection
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/exists:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    get:
      tags:
      - Collections
      summary: Collection exists
      operationId: collection_exists
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/cluster:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    get:
      tags:
      - Collections
      summary: Collection cluster info
      operationId: collection_cluster_info
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/vectors/{vector_name}:
    parameters:
    - $ref: '#/components/parameters/collection'
    - name: vector_name
      in: path
      required: true
      schema:
        type: string
    - $ref: '#/components/parameters/namespace'
    put:
      tags:
      - Collections
      summary: Create vector name
      operationId: create_vector_name
      x-badges:
      - name: Available
        color: '#5f8f3a'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/index:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    put:
      tags:
      - Collections
      summary: Create field index
      operationId: create_field_index
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/aliases:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    get:
      tags:
      - Aliases
      summary: List collection aliases
      operationId: list_collection_aliases
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/aliases:
    post:
      tags:
      - Aliases
      summary: Update aliases
      operationId: update_aliases
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /aliases:
    get:
      tags:
      - Aliases
      summary: List aliases
      operationId: list_aliases
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    parameters:
    - $ref: '#/components/parameters/namespace'
  /collections/{collection_name}/snapshots:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    get:
      tags:
      - Snapshots
      summary: List snapshots
      operationId: list_snapshots
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    post:
      tags:
      - Snapshots
      summary: Create snapshot
      operationId: create_snapshot
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    put:
      tags:
      - Points
      summary: Upsert points
      operationId: upsert_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      description: Returns an `Operon-Consistency-Token` header.
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    post:
      tags:
      - Points
      summary: Retrieve points
      operationId: get_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/{id}:
    parameters:
    - $ref: '#/components/parameters/collection'
    - name: id
      in: path
      required: true
      schema:
        type:
        - string
        - integer
    - $ref: '#/components/parameters/namespace'
    get:
      tags:
      - Points
      summary: Get point
      operationId: get_point
      x-badges:
      - name: Available
        color: '#5f8f3a'
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/count:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Points
      summary: Count points
      operationId: count_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/scroll:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Points
      summary: Scroll points
      operationId: scroll_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/delete:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Points
      summary: Delete points
      operationId: delete_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/batch:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Points
      summary: Batch update
      operationId: batch_update
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/payload/delete:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Payload
      summary: Delete payload
      operationId: delete_payload
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/payload/clear:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Payload
      summary: Clear payload
      operationId: clear_payload
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/vectors/delete:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Points
      summary: Delete vectors
      operationId: delete_vectors
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/query:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Query points
      operationId: query_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/query/batch:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Query batch
      operationId: query_batch
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/query/groups:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Query groups
      operationId: query_groups
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/search:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Search points
      operationId: search_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/search/batch:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Search batch
      operationId: search_batch
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/search/groups:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Search groups
      operationId: search_groups
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/recommend:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Recommend points
      operationId: recommend_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/recommend/batch:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Recommend batch
      operationId: recommend_batch
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/recommend/groups:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Recommend groups
      operationId: recommend_groups
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/discover:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Discover points
      operationId: discover_points
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/discover/batch:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Search
      summary: Discover batch
      operationId: discover_batch
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/payload:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    post:
      tags:
      - Payload
      summary: Set payload
      operationId: set_payload
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
    put:
      tags:
      - Payload
      summary: Overwrite payload
      operationId: overwrite_payload
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
  /collections/{collection_name}/points/vectors:
    parameters:
    - $ref: '#/components/parameters/collection'
    - $ref: '#/components/parameters/namespace'
    put:
      tags:
      - Points
      summary: Update vectors
      operationId: update_vectors
      x-badges:
      - name: Available
        color: '#5f8f3a'
      parameters:
      - $ref: '#/components/parameters/wait'
      - $ref: '#/components/parameters/timeout'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Same body as upstream Qdrant 1.19.
      responses:
        '200':
          $ref: '#/components/responses/Ok'
        default:
          $ref: '#/components/responses/Error'
components:
  parameters:
    collection:
      name: collection_name
      in: path
      required: true
      schema:
        type: string
    wait:
      name: wait
      in: query
      description: Wait for the change to be applied before returning.
      schema:
        type: boolean
    timeout:
      name: timeout
      in: query
      schema:
        type: integer
    namespace:
      name: Operon-Namespace
      in: header
      schema:
        type: string
        default: default
  responses:
    Ok:
      description: Qdrant envelope.
      content:
        application/json:
          schema:
            type: object
            properties:
              result: {}
              status:
                type: string
                examples:
                - ok
              time:
                type: number
    Error:
      description: Qdrant error envelope.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: object
                properties:
                  error:
                    type: string
              time:
                type: number
