Registry / vector-search / qdrant-client

qdrant-client

JSON →
library1.19.0pypypi✓ verified 14d ago

Official Python client for the Qdrant vector search engine. Supports both remote server (gRPC or REST) and local in-memory/on-disk mode without a running server. All data operations use query_points() as the unified interface as of 1.10+. Prior search/recommend/discover methods removed in 1.14.0. Bundles FastEmbed for optional local embedding generation. Async support via AsyncQdrantClient.

pip install qdrant-client
INSTALL
IMPORT
SIG · QDRANT-CLIENT
Q
qdrant-client
vector-searchpythonv1.19.0
Install
11.7s avg
Import
4163ms
Disk
210MB
Pass rate
10/ 10
Env Coverage10 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v1.5.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.910 runs
installs and imports cleanly · install 0.0s · import 3.719s · 139.6MB
glibc
py 3.103.910 runs
installs and imports cleanly · install 11.7s · import 4.606s · 298MB
210MB installed
● package 210MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

QdrantClient
from qdrant_client import QdrantClient
from qdrant_client import QdrantClient
AsyncQdrantClient
from qdrant_client import AsyncQdrantClient
from qdrant_client import AsyncQdrantClient
models
from qdrant_client import models
from qdrant_client.models import Distance, VectorParams, PointStruct, QueryRequest

query_points() is the unified search interface in 1.10+. upload_points() replaces the removed upload_records().

from qdrant_client import QdrantClient from qdrant_client.models import Distance, VectorParams, PointStruct # In-memory (no server needed) client = QdrantClient(':memory:') # Persistent local mode # client = QdrantClient(path='/path/to/db') # Remote server # client = QdrantClient(url='http://localhost:6333') client.create_collection( collection_name='my_docs', vectors_config=VectorParams(size=4, distance=Distance.COSINE), ) client.upload_points( collection_name='my_docs', points=[ PointStruct(id=1, vector=[0.1, 0.2, 0.3, 0.4], payload={'text': 'hello'}), PointStruct(id=2, vector=[0.5, 0.6, 0.7, 0.8], payload={'text': 'world'}), ], ) results = client.query_points( collection_name='my_docs', query=[0.1, 0.2, 0.3, 0.4], limit=2, ) print(results.points)
Debug
Known issues
breakingclient.search(), client.recommend(), client.discover(), client.search_batch(), client.recommend_batch(), client.discovery_batch() all removed in 1.14.0. Massive amount of tutorials, LangChain/LlamaIndex integrations, and LLM-generated code uses client.search(). Raises AttributeError on 1.14+.
fix
Replace all with client.query_points(). For batch: client.query_batch_points(). Migration guide: qdrant.tech/documentation/concepts/search/
affects: >= 1.14.0
breakingclient.upload_records() removed in 1.14.0. Raises AttributeError.
fix
Replace with client.upload_points() using PointStruct(id=..., vector=..., payload=...) objects.
affects: >= 1.14.0
breakinginit_from parameter in create_collection() removed in 1.14.0.
fix
Use client.update_collection_aliases() or migrate data manually if you were using init_from for collection cloning.
affects: >= 1.14.0
breakingPydantic <2.2.1 is not supported. Supported versions are v1.10.x and >=2.2.1. Intermediate Pydantic 2.0–2.2.0 raises validation errors.
fix
Pin pydantic to either >=1.10,<2.0 or >=2.2.1. Avoid 2.0.0–2.2.0.
affects: all recent
gotchaLocal in-memory mode (QdrantClient(':memory:')) does not persist. Data is lost when the process exits. QdrantClient(path='...') persists to disk but does not support concurrent multi-process access.
fix
For production or multi-process access, run a Qdrant server (Docker or binary) and connect via QdrantClient(url='http://localhost:6333').
affects: all
gotchacollection.query_points() offset parameter is no longer propagated into prefetches for nested queries. Pre-1.13 behavior silently passed offset into sub-queries; current behavior does not.
fix
Apply offset only at the top-level query_points() call, not in nested prefetch structures.
affects: >= 1.13.0
gotchaAsyncQdrantClient raw gRPC methods are not accessible from the sync QdrantClient as of 1.11. Mixing sync client with raw async gRPC calls raises AttributeError.
fix
Use AsyncQdrantClient for async gRPC operations. Do not attempt to access .grpc_* methods from the synchronous QdrantClient.
affects: >= 1.11.0
Upgrade
Version history
1.19.0latest on PyPI · released Aug 4, 2026
Audit
Dependencies
grpciorequiredRequired. Used for gRPC transport to remote Qdrant server. Also required for local mode.
httpxrequiredRequired. REST transport.
numpyrequiredRequired.
fastembedoptionalOptional. Only with fastembed extra. Adds ONNX-based local embedding generation (~200MB+ model downloads on first use).
Agent activity
159 hits · last 30 days
node
148
Amazon
1
OpenAI (training)
1
Resources