
Managed Vector Search, Zero Infrastructure: Pinecone Serverless From API Key to Production in 10 Minutes
Chris Harper
2 min read
Jul 12, 2026 · 12:03 UTC
What you'll be able to do after this:
- Stand up a production-grade vector index with a single API call — no servers to provision
- Store vectors with metadata and filter searches by category, date, or any field
- Integrate Pinecone with sentence-transformers for semantic search in any Python app
Pinecone is the managed option in the vector-DB landscape. Where FAISS lives in RAM, ChromaDB writes to a local file, and Qdrant runs as a Docker container, Pinecone serverless stores your data in the cloud — just bring an API key. Since 2026, serverless is the default for all new projects.
Install
pip install "pinecone[grpc]" sentence-transformers
Create an index, upsert, and query
from pinecone import Pinecone, ServerlessSpec
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("all-MiniLM-L6-v2") # 384-dim
pc = Pinecone(api_key="YOUR_API_KEY")
# Create a serverless index (idempotent)
if not pc.has_index("dev-docs"):
pc.create_index(
name="dev-docs",
dimension=384,
metric="cosine",
spec=ServerlessSpec(cloud="aws", region="us-east-1"),
)
index = pc.Index("dev-docs")
# Embed and upsert — id, vector, metadata
docs = [
("doc1", "Claude Code runs agents in parallel worktrees.", {"topic": "agents"}),
("doc2", "FAISS builds an in-memory ANN index with flat or HNSW layers.", {"topic": "vectors"}),
("doc3", "Pinecone serverless auto-scales with your data volume.", {"topic": "vectors"}),
]
index.upsert(
vectors=[(id_, model.encode(text).tolist(), meta) for id_, text, meta in docs]
)
# Query with metadata filter
query_vec = model.encode("serverless vector search").tolist()
results = index.query(
vector=query_vec,
top_k=2,
filter={"topic": {"$eq": "vectors"}},
include_metadata=True,
)
for m in results.matches:
print(f"{m.score:.3f} {m.id}")
The key difference from self-hosted options: no server to start, no disk to mount. You pay per read/write operation rather than per provisioned node. The free tier covers most prototyping under ~10 M vectors.
Once you're ready to add reranking, Pinecone's built-in reranker (rerank={"model": "bge-reranker-v2-m3", "top_n": 3}) runs server-side — no extra service to operate.
When to use Pinecone vs alternatives:
| Need | Tool |
|---|---|
| No infra, just search | Pinecone serverless |
| Existing Postgres | pgvector |
| Self-hosted, full-featured | Qdrant |
| In-memory / notebook | FAISS or ChromaDB |
Sources: Pinecone Quickstart — docs.pinecone.io · Simplilearn Pinecone Tutorial — YouTube