Skip to main content

Introduction

Qdrant provides a native gRPC API for high-performance vector operations. The gRPC interface offers significant performance advantages over REST, particularly for bulk operations and streaming scenarios.

Why gRPC?

gRPC provides several advantages for vector database operations:

Performance

Binary protocol with efficient serialization reduces network overhead by 30-50% compared to JSON

Type Safety

Strongly-typed Protocol Buffer definitions prevent runtime errors

Streaming

Bidirectional streaming enables efficient batch operations

Code Generation

Auto-generate client libraries in 10+ languages from proto files

Protocol Structure

Qdrant’s gRPC API is defined across multiple protocol buffer files:
  • qdrant.proto - Main service definition and health checks
  • collections_service.proto - Collection management operations
  • points_service.proto - Point CRUD and search operations
  • collections.proto - Collection configuration messages
  • points.proto - Point structure and query messages

Service Endpoints

The main gRPC services available:

Collections Service

Points Service

Connection Setup

Using Python Client

Using Go Client

Using Rust Client

Authentication

For authenticated gRPC connections, include API key in metadata:

Performance Considerations

Use gRPC for:
  • Bulk upsert operations (>1000 points)
  • High-throughput search scenarios
  • Batch recommendations
  • Streaming scroll operations

Benchmarks

Typical performance improvements with gRPC vs REST:

Error Handling

gRPC uses standard status codes:
  • OK (0) - Success
  • INVALID_ARGUMENT (3) - Invalid request parameters
  • NOT_FOUND (5) - Collection or point not found
  • ALREADY_EXISTS (6) - Resource already exists
  • RESOURCE_EXHAUSTED (8) - Rate limit exceeded
  • FAILED_PRECONDITION (9) - Operation precondition failed
  • UNAVAILABLE (14) - Service temporarily unavailable

Consistency Guarantees

Configure read consistency per request:
Available consistency types:
  • ALL - All replicas must respond
  • MAJORITY - Majority of replicas
  • QUORUM - Half + 1 replicas

Message Size Limits

gRPC has default message size limits:
  • Max receive message: 100MB
  • Max send message: 100MB
Configure larger limits for bulk operations if needed.

Proto Files Location

Find proto definitions in the Qdrant repository:

Next Steps

Collections

Manage collections via gRPC

Points

Work with points and vectors

Python Client

Official Python client library

Rust Client

Official Rust client library