Qdrant.Client 1.15.1

Qdrant .NET SDK

NuGet Release Build

📥 Installation

dotnet add package Qdrant.Client

📖 Documentation

Usage examples are available throughout the Qdrant documentation.

🔌 Getting started

Creating a client

A client can be instantiated with

var client = new QdrantClient("localhost");

which creates a client that will connect to Qdrant on http://localhost:6334.

Internally, the high level client uses a low level gRPC client to interact with Qdrant. Additional constructor overloads provide more control over how the gRPC client is configured. The following example configures a client to use TLS, validating the certificate using its thumbprint, and also configures API key authentication:

var channel = QdrantChannel.ForAddress("https://localhost:6334", new ClientConfiguration
{
    ApiKey = "<api key>",
    CertificateThumbprint = "<certificate thumbprint>"
});
var grpcClient = new QdrantGrpcClient(channel);
var client = new QdrantClient(grpcClient);

Important

IMPORTANT NOTICE for .NET Framework

.NET Framework has limited supported for gRPC over HTTP/2, but it can be enabled by

  • Configuring qdrant to use TLS, and you must use HTTPS, so you will need to set up server certificate validation
  • Referencing System.Net.Http.WinHttpHandler 6.0.1 or later, and configuring WinHttpHandler as the inner handler for GrpcChannelOptions

The following example configures a client for .NET Framework to use TLS, validating the certificate using its thumbprint, and also configures API key authentication:

var channel = GrpcChannel.ForAddress($"https://localhost:6334", new GrpcChannelOptions
{
  HttpHandler = new WinHttpHandler
  {
    ServerCertificateValidationCallback =
      CertificateValidation.Thumbprint("<certificate thumbprint>")
  }
});
var callInvoker = channel.Intercept(metadata =>
{
  metadata.Add("api-key", "<api key>");
  return metadata;
});

var grpcClient = new QdrantGrpcClient(callInvoker);
var client = new QdrantClient(grpcClient);

Working with collections

Once a client has been created, create a new collection

await client.CreateCollectionAsync("my_collection", 
    new VectorParams { Size = 100, Distance = Distance.Cosine });

Insert vectors into a collection

// generate some vectors
var random = new Random();
var points = Enumerable.Range(1, 100).Select(i => new PointStruct
{
  Id = (ulong)i,
  Vectors = Enumerable.Range(1, 100).Select(_ => (float)random.NextDouble()).ToArray(),
  Payload = 
  { 
    ["color"] = "red", 
    ["rand_number"] = i % 10 
  }
}).ToList();

var updateResult = await client.UpsertAsync("my_collection", points);

Search for similar vectors

var queryVector = Enumerable.Range(1, 100).Select(_ => (float)random.NextDouble()).ToArray();

// return the 5 closest points
var points = await client.SearchAsync(
  "my_collection",
  queryVector,
  limit: 5);

Search for similar vectors with filtering condition

// static import Conditions to easily build filtering
using static Qdrant.Client.Grpc.Conditions;

// return the 5 closest points where rand_number >= 3
var points = await _client.SearchAsync(
  "my_collection",
  queryVector,
  filter: Range("rand_number", new Range { Gte = 3 }),
  limit: 5);

Showing the top 20 packages that depend on Qdrant.Client.

Packages
Microsoft.SemanticKernel.Connectors.Qdrant
Qdrant connector for Semantic Kernel plugins and semantic memory
Microsoft.SemanticKernel.Connectors.Qdrant
Qdrant provider for Microsoft.Extensions.VectorData by Semantic Kernel

https://github.com/qdrant/qdrant-dotnet/releases

.NET Framework 4.6.2

.NET 6.0

.NET Standard 2.0

Version Last updated
1.16.1 11/29/2025
1.16.0 12/1/2025
1.15.1 8/26/2025
1.15.0 7/21/2025
1.14.1 7/3/2025
1.14.0 6/8/2025
1.13.0 6/15/2025
1.12.1-alpha.0.6 6/8/2025
1.12.0 6/8/2025
1.11.0 6/8/2025
1.10.0 6/15/2025
1.9.0 6/8/2025
1.8.0 6/8/2025
1.7.0 6/8/2025
1.6.0-alpha.1 6/8/2025