Migrate from Pinecone to Qdrant What You Need from Pinecone API key — from the Pinecone console Index name — the name of the index to migrateIndex host URL — the host endpoint shown in your index dashboardOnly Pinecone serverless indexes support listing all vectors for migration. Legacy pod-based indexes may require additional steps. Concept Mapping Pinecone Qdrant Notes Index Collection One-to-one mapping Namespace Collection One namespace per run. Select it with --pinecone.namespace Metadata Payload Direct mapping Sparse values Sparse vectors Mapped to sparse_vector named vector by default cosineCosineDirect mapping dotproductDotPinecone requires unit-normalized vectors for dotproduct euclideanEuclidDirect mapping
Run the Migration docker run --net= host --rm -it registry.cloud.qdrant.io/library/qdrant-migration pinecone \
--pinecone.index-host 'https://your-index-host.pinecone.io' \
--pinecone.index-name 'your-index' \
--pinecone.api-key 'pcsk_...' \
--qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
--qdrant.api-key 'your-qdrant-api-key' \
--qdrant.collection 'your-collection'
Migrating a Specific Namespace docker run --net= host --rm -it registry.cloud.qdrant.io/library/qdrant-migration pinecone \
--pinecone.index-host 'https://your-index-host.pinecone.io' \
--pinecone.index-name 'your-index' \
--pinecone.api-key 'pcsk_...' \
--pinecone.namespace 'my-namespace' \
--qdrant.url 'https://your-instance.cloud.qdrant.io:6334' \
--qdrant.api-key 'your-qdrant-api-key' \
--qdrant.collection 'your-collection'
All Pinecone-Specific Flags Flag Required Description --pinecone.index-nameYes Name of the Pinecone index --pinecone.index-hostYes Host URL of the Pinecone index --pinecone.api-keyYes Pinecone API key --pinecone.namespaceNo Specific namespace to migrate --pinecone.service-hostNo Custom Pinecone service host
Qdrant-Side Options Flag Default Description --qdrant.id-field__id__Payload field name for original Pinecone IDs --qdrant.sparse-vectorsparse_vectorNamed vector for Pinecone sparse values
Gotchas Namespaces: Each run migrates one namespace, the default one unless you set --pinecone.namespace. Point IDs do not include the namespace, so migrate namespaces with overlapping IDs into separate collections.Next Steps After migration, verify your data arrived correctly with the Migration Verification Guide .