Column-oriented batch format for bulk loads: {"batch": {"ids": [1,2,3], "vectors": [[0.9,0.1,0.1],[0.1,0.9,0.1],[0.1,0.1,0.9]], "payloads": [{"color":"red"},{"color":"green"},{"color":"blue"}]}}
Pass wait=true when you need read-after-write consistency (tests, scripts that immediately query what they inserted)
Point id must be an unsigned integer or a UUID string
For distributed clusters, the ordering query parameter (weak/medium/strong) controls write consistency across nodes
Official docs: https://qdrant.tech/documentation/quickstart/ ; https://qdrant.tech/documentation/manage-data/points/ ; https://api.qdrant.tech/api-reference/points/upsert-points
Known gotchas
Docs do not state a default for wait — explicitly pass wait=true if the response must reflect a completed write
Vector length must exactly match the collection's configured vectors.size or the upsert fails
Upsert on an existing id overwrites the point entirely (vector and payload) — it does not merge payloads; use the payload update endpoints to patch payload only
ordering only matters for multi-node setups, not single-node instances
Give your agent this knowledge — and 17,800+ more routes
One MCP install gives any agent live access to the full route map across 6,000+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?