DEV Community

Alex Spinov
Alex Spinov

Posted on

Qdrant Has a Free API — High-Performance Vector Search Engine for AI

Qdrant is a high-performance vector search engine written in Rust. It's designed for production AI workloads — RAG, semantic search, recommendation engines, and multimodal search.

Free, open source, with a 1GB free cloud tier. Rust-based for maximum performance.

Why Use Qdrant?

  • Written in Rust — fastest vector search engine available
  • Rich filtering — combine vector search with complex filters
  • Multimodal — store and search text, image, and video embeddings together
  • Named vectors — multiple vector types per record
  • Quantization — scalar/binary quantization for lower memory usage
  • Free cloud tier — 1GB storage, no credit card

Quick Setup

1. Install

# Docker
docker run -p 6333:6333 -p 6334:6334 \
  -v $(pwd)/qdrant_storage:/qdrant/storage \
  qdrant/qdrant

# Or use Qdrant Cloud (free tier)
# Sign up at cloud.qdrant.io
Enter fullscreen mode Exit fullscreen mode

2. Create Collection

curl -s -X PUT http://localhost:6333/collections/articles \
  -H "Content-Type: application/json" \
  -d '{
    "vectors": {
      "size": 768,
      "distance": "Cosine"
    }
  }' | jq
Enter fullscreen mode Exit fullscreen mode

3. Insert Points

curl -s -X PUT http://localhost:6333/collections/articles/points \
  -H "Content-Type: application/json" \
  -d '{
    "points": [
      {
        "id": 1,
        "vector": [0.1, 0.2, ...],
        "payload": {"title": "Web Scraping Guide", "category": "tutorial", "views": 1500}
      },
      {
        "id": 2,
        "vector": [0.3, 0.4, ...],
        "payload": {"title": "API Testing", "category": "testing", "views": 800}
      }
    ]
  }' | jq
Enter fullscreen mode Exit fullscreen mode

4. Search

# Simple vector search
curl -s -X POST http://localhost:6333/collections/articles/points/search \
  -H "Content-Type: application/json" \
  -d '{
    "vector": [0.1, 0.2, ...],
    "limit": 5,
    "with_payload": true
  }' | jq '.result[] | {id: .id, score: .score, title: .payload.title}'

# Filtered search
curl -s -X POST http://localhost:6333/collections/articles/points/search \
  -H "Content-Type: application/json" \
  -d '{
    "vector": [0.1, 0.2, ...],
    "limit": 5,
    "filter": {
      "must": [{"key": "category", "match": {"value": "tutorial"}}],
      "should": [{"key": "views", "range": {"gte": 1000}}]
    },
    "with_payload": true
  }' | jq
Enter fullscreen mode Exit fullscreen mode

5. Collection Info

# List collections
curl -s http://localhost:6333/collections | jq '.result.collections[].name'

# Collection details
curl -s http://localhost:6333/collections/articles | jq '{points: .result.points_count, vectors: .result.vectors_count, status: .result.status}'
Enter fullscreen mode Exit fullscreen mode

Python Example

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

client = QdrantClient(url="http://localhost:6333")

# Create collection
client.create_collection(
    collection_name="articles",
    vectors_config=VectorParams(size=768, distance=Distance.COSINE)
)

# Insert
client.upsert(
    collection_name="articles",
    points=[
        PointStruct(id=1, vector=[0.1]*768,
                   payload={"title": "Scraping Guide", "category": "tutorial"}),
        PointStruct(id=2, vector=[0.2]*768,
                   payload={"title": "API Testing", "category": "testing"})
    ]
)

# Search
results = client.search(
    collection_name="articles",
    query_vector=[0.15]*768,
    limit=5
)
for r in results:
    print(f"ID: {r.id} | Score: {r.score:.4f} | {r.payload['title']}")
Enter fullscreen mode Exit fullscreen mode

Key Endpoints

Endpoint Method Description
/collections GET List collections
/collections/{name} PUT Create collection
/collections/{name}/points PUT Upsert points
/collections/{name}/points/search POST Vector search
/collections/{name}/points/scroll POST Paginated retrieval
/collections/{name}/points/recommend POST Recommendation
/cluster GET Cluster info

Need custom data extraction or scraping solution? I build production-grade scrapers for any website. Email: Spinov001@gmail.com | My Apify Actors

Top comments (0)