{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"pypi_pypi-qdrant-client","slug":"pypi-qdrant-client","name":"qdrant-client","type":"repo","url":"https://pypi.org/project/qdrant-client/","page_url":"https://unfragile.ai/pypi-qdrant-client","categories":["rag-knowledge"],"tags":["vector","search","neural","matching","client"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"pypi_pypi-qdrant-client__cap_0","uri":"capability://memory.knowledge.dual.mode.vector.database.client.with.automatic.backend.selection","name":"dual-mode vector database client with automatic backend selection","description":"Provides a unified Python API that automatically selects between local in-process storage (QdrantLocal) and remote networked access (QdrantRemote) based on initialization parameters. The client inspects constructor arguments (`:memory:`, file path, host/URL, or cloud credentials) and instantiates the appropriate backend, exposing identical method signatures across both modes. This eliminates the need for developers to write conditional logic or maintain separate code paths for development vs. production deployments.","intents":["I want to prototype vector search locally without a server, then deploy to a remote Qdrant instance without code changes","I need a single client interface that works seamlessly in both development (in-memory) and production (networked) environments","I want to avoid managing separate client classes or conditional imports for local vs. remote vector operations"],"best_for":["Python developers building RAG systems who need rapid local iteration","teams migrating from prototype to production without refactoring client code","ML engineers prototyping vector search pipelines before deploying to shared infrastructure"],"limitations":["Local mode uses in-process storage with no persistence by default (`:memory:` mode) — requires explicit file path for durability","Local mode performance degrades with collections >1M vectors due to single-process memory constraints","API surface is identical but underlying performance characteristics differ significantly (local: microseconds, remote: milliseconds + network latency)"],"requires":["Python 3.10 or higher","qdrant-client package installed via pip","For remote mode: Qdrant server instance (self-hosted or Qdrant Cloud)"],"input_types":["initialization parameters (string path, URL, API key)","vector embeddings (numpy arrays, lists of floats)","metadata dictionaries"],"output_types":["client instance (QdrantClient or AsyncQdrantClient)","search results with scores and metadata","operation status responses"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_1","uri":"capability://tool.use.integration.synchronous.and.asynchronous.dual.api.client.design","name":"synchronous and asynchronous dual-api client design","description":"Exposes both QdrantClient (blocking I/O) and AsyncQdrantClient (non-blocking I/O) with identical method signatures, allowing developers to choose execution model based on application architecture. The async client uses Python's asyncio primitives and returns coroutines, while the sync client uses standard blocking calls. Both clients share the same underlying data models and protocol handlers, with async variants wrapping gRPC and httpx async transports.","intents":["I need to use vector search in an async FastAPI application without blocking the event loop","I want to batch multiple vector search queries concurrently for performance","I'm building a synchronous Flask app and don't want async complexity, but need the same API available if I refactor later"],"best_for":["async-first Python frameworks (FastAPI, aiohttp, Quart)","high-concurrency applications handling 100+ simultaneous vector queries","teams with mixed sync/async codebases who want a single client library"],"limitations":["Async client requires Python 3.10+ and asyncio event loop context — cannot be used in sync-only environments","Method signatures are identical but return types differ (sync returns T, async returns Coroutine[Any, Any, T]) — type checkers may require explicit annotations","Mixing sync and async clients in the same process can cause connection pool conflicts if not carefully managed"],"requires":["Python 3.10 or higher","asyncio event loop for AsyncQdrantClient usage","httpx library for async HTTP transport","grpcio library for async gRPC transport"],"input_types":["vector embeddings (numpy arrays, lists)","search queries (vector + metadata filters)","batch operations (lists of points)"],"output_types":["search results (ScoredPoint objects)","operation confirmations (UpdateResult)","collection metadata (CollectionInfo)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_10","uri":"capability://automation.workflow.asynchronous.batch.operations.with.concurrent.request.handling","name":"asynchronous batch operations with concurrent request handling","description":"Supports async batch operations that execute multiple vector operations concurrently using Python's asyncio. The async client can upload batches, search multiple queries, and perform bulk updates without blocking, using async/await syntax. Internally, the client manages connection pooling and request queuing to maximize throughput while respecting server rate limits.","intents":["I need to search for 100 different queries concurrently and want results as fast as possible","I'm building an async API and want to batch vector operations without blocking the event loop","I want to upload vectors concurrently while handling other async tasks"],"best_for":["high-concurrency applications (FastAPI, aiohttp) handling many simultaneous vector queries","batch processing pipelines that need to maximize throughput","systems with strict latency requirements where blocking is unacceptable"],"limitations":["Async operations require asyncio event loop context — cannot be used in sync-only code","Connection pool size is limited by Qdrant server configuration — too many concurrent requests may be rejected","Concurrent batch uploads can overwhelm the server if not rate-limited — requires careful tuning","Error handling in concurrent operations is complex — partial failures in batch operations leave inconsistent state"],"requires":["AsyncQdrantClient instance","Python 3.10+ with asyncio support","Async context (event loop running)"],"input_types":["lists of vectors for batch upload","lists of search queries for concurrent search","async iterables for streaming operations"],"output_types":["coroutines returning search results","coroutines returning operation status","async iterables for streaming results"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_11","uri":"capability://automation.workflow.error.handling.and.connection.resilience.with.automatic.retry","name":"error handling and connection resilience with automatic retry","description":"Implements comprehensive error handling with automatic retry logic, connection pooling, and graceful degradation. The client catches transient errors (network timeouts, temporary server unavailability) and retries with exponential backoff. Connection pooling reuses TCP/gRPC connections to reduce overhead. Detailed error messages include server responses and context for debugging.","intents":["I want my vector search to automatically retry on transient network failures without manual error handling","I need detailed error messages that help me debug connection issues or server problems","I want connection pooling to reduce overhead for repeated vector operations"],"best_for":["production systems requiring high availability and resilience","applications in unstable network environments (mobile, edge)","teams building fault-tolerant RAG systems"],"limitations":["Retry logic has maximum retry count — extremely flaky networks may still fail after retries","Exponential backoff can cause long delays for repeated failures — may impact user experience","Connection pooling is per-client instance — multiple clients create multiple pools","Some errors (e.g., authentication failures) are not retried — requires manual handling"],"requires":["Qdrant server instance","Network connectivity with reasonable reliability (transient failures, not persistent outages)"],"input_types":["vector operations (search, insert, delete, etc.)","retry configuration (max retries, backoff factor)"],"output_types":["operation results on success","detailed error messages on failure","retry telemetry (number of retries, backoff delays)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_12","uri":"capability://data.processing.analysis.type.inspection.and.dynamic.schema.inference.for.payloads","name":"type inspection and dynamic schema inference for payloads","description":"Implements a type inspector system that analyzes payload data structures and infers schema information for validation and optimization. When payloads are inserted, the client inspects field types (string, number, boolean, array) and can optionally enforce schema consistency. This enables automatic indexing recommendations and type-safe payload queries without explicit schema definition.","intents":["I want the client to automatically infer payload schema from my data and suggest indexing strategies","I need type validation for payloads to ensure consistency across inserted vectors","I want to avoid manually defining payload schema and let the client figure it out"],"best_for":["rapid prototyping where schema definition overhead is undesirable","applications with flexible or evolving payload structures","teams wanting automatic schema optimization recommendations"],"limitations":["Type inference is best-effort — ambiguous types (e.g., numeric strings) may be misclassified","Inferred schema is not enforced by default — inconsistent payloads are silently accepted","Type inference adds overhead to insert operations — explicit schema definition is faster","Inferred schema cannot be modified after collection creation — must recreate collection to change"],"requires":["Payload data with consistent structure across points","Optional: explicit schema definition for validation"],"input_types":["payload dictionaries with various field types","Point objects with payloads"],"output_types":["inferred schema information","type validation results","indexing recommendations"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_2","uri":"capability://tool.use.integration.dual.protocol.communication.with.rest.and.grpc.backends","name":"dual-protocol communication with rest and grpc backends","description":"Supports both HTTP/2 REST and gRPC protocols for remote server communication, with automatic protocol selection and fallback handling. The client uses httpx for REST transport with connection pooling and grpcio for gRPC with channel management. Protocol choice defaults to REST but is configurable per client instance, allowing developers to optimize for latency (gRPC) or compatibility (REST) based on deployment constraints.","intents":["I need low-latency vector search and want to use gRPC's binary protocol instead of JSON serialization","My infrastructure only allows HTTP/2 traffic, so I need REST-based vector operations","I want to benchmark gRPC vs. REST performance for my specific query patterns and choose the faster option"],"best_for":["high-performance systems where sub-millisecond latency matters (gRPC preferred)","cloud environments with HTTP/2 support but no gRPC infrastructure","teams evaluating protocol trade-offs between throughput and compatibility"],"limitations":["gRPC requires Qdrant server compiled with gRPC support — not all deployments enable it","REST adds ~10-20% serialization overhead vs. gRPC due to JSON encoding/decoding","Protocol selection is per-client instance — cannot mix protocols within a single connection pool","gRPC connection pooling is less mature than HTTP/2 connection pooling in some Python versions"],"requires":["httpx library (for REST protocol)","grpcio library (for gRPC protocol)","Qdrant server with matching protocol support","Network access to Qdrant server (port 6333 for REST, 6334 for gRPC by default)"],"input_types":["vector embeddings (numpy arrays, lists of floats)","search filters (structured metadata queries)","batch point operations"],"output_types":["search results with scores","operation confirmations","server status and metrics"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_3","uri":"capability://memory.knowledge.automatic.vector.embedding.with.fastembed.integration","name":"automatic vector embedding with fastembed integration","description":"Integrates FastEmbed (ONNX-based embedding models) to automatically convert text to vectors without external API calls. When FastEmbed is installed, the client can accept raw text strings and automatically embed them using CPU or GPU-accelerated models (e.g., BGE, BAAI embeddings). The embedding pipeline is transparent — developers pass text, the client embeds it, and returns search results with vectors. Supports both CPU (fastembed extra) and GPU (fastembed-gpu extra) acceleration.","intents":["I want to embed text documents and search them without calling OpenAI or other external embedding APIs","I need fast, local embedding inference for low-latency RAG without network round-trips","I'm building a prototype and want to avoid API costs and rate limits from external embedding services"],"best_for":["developers building cost-sensitive RAG systems without external API dependencies","teams requiring sub-100ms embedding latency for real-time search","privacy-conscious applications that cannot send text to external embedding services"],"limitations":["FastEmbed models are smaller and less capable than OpenAI/Cohere embeddings — may have lower semantic quality for specialized domains","GPU acceleration requires CUDA-compatible hardware and proper driver setup — CPU fallback is slower","fastembed and fastembed-gpu extras are mutually exclusive — switching requires environment recreation","Model downloads happen on first use and can be 100-500MB — requires internet connectivity and disk space","Limited to pre-trained ONNX models — cannot fine-tune or use custom embeddings without external tools"],"requires":["qdrant-client[fastembed] or qdrant-client[fastembed-gpu] installed","Python 3.10+","For GPU: CUDA 11.x+ and compatible GPU","Internet connectivity for initial model download"],"input_types":["text strings (documents, queries)","lists of text for batch embedding"],"output_types":["vector embeddings (numpy arrays, 384-1024 dimensions depending on model)","search results with embedded vectors"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_4","uri":"capability://data.processing.analysis.batch.vector.upload.with.automatic.chunking.and.retry.logic","name":"batch vector upload with automatic chunking and retry logic","description":"Provides high-performance batch insertion of vectors with automatic request chunking, retry logic, and progress tracking. The client accepts large lists of points and automatically splits them into server-compatible batch sizes, handles transient failures with exponential backoff, and tracks upload progress. Supports both synchronous and asynchronous batch operations, with configurable batch size and retry parameters.","intents":["I need to upload 1M vectors to Qdrant and want automatic chunking to avoid timeout errors","I want to handle transient network failures during bulk vector uploads without manual retry logic","I'm importing a large dataset and need progress visibility and resumable uploads"],"best_for":["data engineers bulk-loading vector datasets into Qdrant","ML teams importing embeddings from batch processing pipelines","developers building ETL pipelines that need robust error handling"],"limitations":["Batch size is limited by Qdrant server configuration (default 100 points per request) — very large vectors may require smaller batches","Retry logic uses exponential backoff but has a maximum retry count — extremely flaky networks may still fail","Progress tracking is in-memory only — no persistence if the client process crashes mid-upload","Batch operations are not transactional — partial failures leave some vectors uploaded and others not"],"requires":["Qdrant server instance with write access","List of Point objects with vectors and optional metadata","Network connectivity to Qdrant server"],"input_types":["list of Point objects (id, vector, payload)","batch size configuration (integer)","retry parameters (max retries, backoff factor)"],"output_types":["UpdateResult with operation status","progress callbacks (optional)","error reports for failed batches"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_5","uri":"capability://search.retrieval.hybrid.search.combining.vector.similarity.and.metadata.filtering","name":"hybrid search combining vector similarity and metadata filtering","description":"Enables search queries that combine dense vector similarity with sparse metadata filtering using Qdrant's hybrid search capabilities. Developers specify a vector query, optional metadata filter (e.g., `category == 'news'`), and the client merges results using configurable scoring strategies. Filters are expressed as structured Filter objects that support AND/OR/NOT logic and comparison operators, allowing precise control over which vectors are considered.","intents":["I want to search for semantically similar documents but only within a specific date range or category","I need to combine vector similarity with business logic filters (e.g., only active users, only published articles)","I'm building a recommendation system that needs to exclude certain items based on metadata while finding similar vectors"],"best_for":["RAG systems that need to filter documents by source, date, or category before semantic search","e-commerce search combining product embeddings with inventory/price filters","content recommendation systems with business rule constraints"],"limitations":["Filter evaluation happens server-side — complex filters with many conditions can slow down search","Metadata must be indexed at collection creation time — cannot add filters to unindexed fields","Filter syntax is Qdrant-specific (not SQL or standard query language) — requires learning custom Filter API","Combining many filters with OR logic can result in large result sets — may require pagination"],"requires":["Qdrant collection with indexed metadata fields","Filter objects constructed using qdrant_client.models.Filter API","Vector query and optional metadata filter parameters"],"input_types":["vector embeddings (numpy arrays, lists)","Filter objects (structured metadata queries)","search parameters (limit, offset, score threshold)"],"output_types":["ScoredPoint objects (vector + metadata + score)","filtered search results respecting both vector similarity and metadata constraints"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_6","uri":"capability://automation.workflow.collection.management.with.schema.definition.and.configuration","name":"collection management with schema definition and configuration","description":"Provides APIs to create, delete, and configure vector collections with explicit schema definitions. Developers specify vector size, distance metric (Cosine, Euclidean, Manhattan), and optional payload schema (field types, indexing strategy). The client validates schema definitions and applies them to the server, enabling type-safe operations and optimized storage. Supports collection cloning, snapshots, and configuration updates without data loss.","intents":["I need to create a vector collection with specific distance metrics and vector dimensions before uploading data","I want to define payload schema (metadata field types) to enable efficient filtering and type checking","I need to clone an existing collection for A/B testing or backup purposes"],"best_for":["data engineers setting up vector databases with specific performance requirements","teams managing multiple collections with different embedding models or distance metrics","developers building multi-tenant systems with per-tenant collections"],"limitations":["Collection schema is immutable after creation — cannot change vector size or distance metric without recreating","Payload schema is optional — untyped payloads reduce IDE support and validation","Collection deletion is permanent and immediate — no soft delete or recovery mechanism","Large collections (>100M vectors) take significant time to clone or snapshot"],"requires":["Qdrant server instance with admin access","VectorParams object specifying vector size and distance metric","Optional PayloadSchemaInfo for metadata field definitions"],"input_types":["collection name (string)","VectorParams (size, distance metric)","PayloadSchemaInfo (optional field definitions)"],"output_types":["CollectionInfo (metadata about collection)","operation status (success/failure)","collection statistics (point count, vector size)"],"categories":["automation-workflow","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_7","uri":"capability://data.processing.analysis.point.level.crud.operations.with.payload.management","name":"point-level crud operations with payload management","description":"Enables fine-grained operations on individual vectors (points) including insert, update, delete, and payload modification. Developers can insert points with vectors and metadata, update specific fields without re-uploading vectors, delete by ID or filter, and retrieve points by ID. Payload operations support partial updates (only specified fields change) and conditional updates (only apply if metadata matches a filter).","intents":["I need to insert a single vector with metadata and retrieve it later by ID","I want to update a document's metadata without re-uploading its embedding vector","I need to delete vectors matching a specific filter (e.g., all vectors from a deleted user)"],"best_for":["developers building CRUD APIs backed by vector search","applications with frequent metadata updates (e.g., user preferences, document status)","systems managing vector lifecycle (insert → update → delete)"],"limitations":["Delete operations by filter can be slow for large collections — no bulk delete optimization","Payload updates are not transactional — partial failures leave inconsistent state","Point IDs must be unique per collection — no automatic ID generation (must provide UUID or integer)","Conditional updates (if filter matches) are evaluated server-side — complex conditions may be slow"],"requires":["Qdrant collection with matching vector size","Point objects with ID, vector, and optional payload","Network access to Qdrant server"],"input_types":["Point objects (id, vector, payload)","point IDs (integers or UUIDs)","Filter objects for conditional operations","payload dictionaries for updates"],"output_types":["UpdateResult (operation status, updated count)","Point objects (retrieved by ID)","operation confirmations"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_8","uri":"capability://code.generation.editing.type.safe.data.models.with.pydantic.validation","name":"type-safe data models with pydantic validation","description":"Uses Pydantic models for all data structures (Point, Filter, VectorParams, SearchResult, etc.), providing runtime validation, IDE autocomplete, and type hints. Models are generated from Qdrant's gRPC protocol definitions and REST API schemas, ensuring consistency between client and server. Validation happens at client-side before sending to server, catching errors early and providing clear error messages.","intents":["I want IDE autocomplete and type hints for all vector operations to catch mistakes before runtime","I need validation of my data structures (vectors, filters, payloads) before sending to the server","I'm using a type checker (mypy, pyright) and want full type safety for vector operations"],"best_for":["Python developers using type checkers (mypy, pyright, pylance)","teams with strict code quality standards requiring type safety","IDEs with Pydantic plugin support (PyCharm, VS Code with Pylance)"],"limitations":["Pydantic validation adds ~1-5ms overhead per operation — negligible for network-bound operations but visible in benchmarks","Model definitions are auto-generated from protobuf/OpenAPI specs — manual customization is difficult","Complex nested models (e.g., deeply nested Filters) can be verbose to construct","Type hints for generic operations (e.g., payload as Dict[str, Any]) are less precise than fully typed alternatives"],"requires":["Pydantic library (included in qdrant-client dependencies)","Python 3.10+ for full type hint support","Optional: mypy, pyright, or other type checker"],"input_types":["Python objects matching Pydantic model schemas","dictionaries that are coerced to Pydantic models"],"output_types":["Pydantic model instances with validated data","type hints for IDE autocomplete","validation error messages"],"categories":["code-generation-editing","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"pypi_pypi-qdrant-client__cap_9","uri":"capability://memory.knowledge.local.in.process.vector.storage.with.file.based.persistence","name":"local in-process vector storage with file-based persistence","description":"Implements QdrantLocal for in-process vector storage without a separate server, using file-based persistence or in-memory storage. The local backend stores vectors and metadata on disk (or in RAM for `:memory:` mode) using Qdrant's native storage format, enabling development and testing without infrastructure. Local mode uses the same API as remote mode, making it transparent to application code.","intents":["I want to develop and test vector search locally without running a Qdrant server","I need a lightweight vector database for unit tests that doesn't require external services","I'm prototyping a RAG system and want instant feedback without server setup overhead"],"best_for":["local development and unit testing without external dependencies","prototyping and experimentation with vector search","embedded applications requiring vector search without network overhead"],"limitations":["Local mode is single-process only — no concurrent access from multiple processes","Performance degrades significantly with >1M vectors due to in-process memory constraints","No built-in replication or backup — file-based storage is vulnerable to corruption","`:memory:` mode loses all data on process exit — requires explicit file path for persistence","Local mode does not support all remote features (e.g., snapshots, cluster operations)"],"requires":["qdrant-client package","Python 3.10+","For file-based persistence: write access to filesystem"],"input_types":["file path (string) or `:memory:` for in-memory storage","vector embeddings and metadata (same as remote mode)"],"output_types":["search results (identical to remote mode)","operation confirmations"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":27,"verified":false,"data_access_risk":"high","permissions":["Python 3.10 or higher","qdrant-client package installed via pip","For remote mode: Qdrant server instance (self-hosted or Qdrant Cloud)","asyncio event loop for AsyncQdrantClient usage","httpx library for async HTTP transport","grpcio library for async gRPC transport","AsyncQdrantClient instance","Python 3.10+ with asyncio support","Async context (event loop running)","Qdrant server instance"],"failure_modes":["Local mode uses in-process storage with no persistence by default (`:memory:` mode) — requires explicit file path for durability","Local mode performance degrades with collections >1M vectors due to single-process memory constraints","API surface is identical but underlying performance characteristics differ significantly (local: microseconds, remote: milliseconds + network latency)","Async client requires Python 3.10+ and asyncio event loop context — cannot be used in sync-only environments","Method signatures are identical but return types differ (sync returns T, async returns Coroutine[Any, Any, T]) — type checkers may require explicit annotations","Mixing sync and async clients in the same process can cause connection pool conflicts if not carefully managed","Async operations require asyncio event loop context — cannot be used in sync-only code","Connection pool size is limited by Qdrant server configuration — too many concurrent requests may be rejected","Concurrent batch uploads can overwhelm the server if not rate-limited — requires careful tuning","Error handling in concurrent operations is complex — partial failures in batch operations leave inconsistent state","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.35,"ecosystem":0.55,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.3,"quality":0.2,"ecosystem":0.15,"match_graph":0.3,"freshness":0.05}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:25.060Z","last_scraped_at":"2026-05-03T15:20:17.402Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=pypi-qdrant-client","compare_url":"https://unfragile.ai/compare?artifact=pypi-qdrant-client"}},"signature":"rbtN4KsK45mIS5mb+eBGl+tc9ySUKlOX/5PnkYMaCc7IWnK/Gd9t8l+lhBO+vQbdReQeMhriig8U/+OVapFdCw==","signedAt":"2026-06-20T19:04:13.236Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/pypi-qdrant-client","artifact":"https://unfragile.ai/pypi-qdrant-client","verify":"https://unfragile.ai/api/v1/verify?slug=pypi-qdrant-client","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}