> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://api.qdrant.tech/v-1-17-x/api-reference/distributed/collection-cluster-info/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://api.qdrant.tech/_mcp/server. # Retrieve cluster details GET http://localhost:6333/collections/{collection_name}/cluster Retrieves cluster details for a specified collection. Reference: https://api.qdrant.tech/api-reference/distributed/collection-cluster-info ## Authentication - `api-key` header (required) — API Key authentication via header ## Servers - `http://localhost:6333` (http, default) - `https://localhost:6333` (https) ## Request ### Path parameters - `collection_name` (string, required) — Name of the collection to retrieve the cluster info for ## Response ### 200 successful operation - `usage` (CollectionsCollectionNameClusterGetResponsesContentApplicationJsonSchemaUsage, optional) - `time` (double, optional) — Time spent to process this request - `status` (string, optional) - `result` (CollectionClusterInfo, optional) — Current clustering distribution for the collection ## Types ### CollectionsCollectionNameClusterGetResponsesContentApplicationJsonSchemaUsage ### CollectionClusterInfo Current clustering distribution for the collection - `peer_id` (uint64, required) — ID of this peer - `shard_count` (integer, required) — Total number of shards - `local_shards` (list of LocalShardInfo, required) — Local shards - `remote_shards` (list of RemoteShardInfo, required) — Remote shards - `shard_transfers` (list of ShardTransferInfo, required) — Shard transfers - `resharding_operations` (list of ReshardingInfo, optional, nullable) — Resharding operations ### Usage Usage of the hardware resources, spent to process the request - `hardware` (UsageHardware, optional) - `inference` (UsageInference, optional) ### LocalShardInfo - `shard_id` (uint, required) — Local shard id - `points_count` (integer, required) — Number of points in the shard - `state` (enum, required) — State of the single shard within a replica set. - Allowed values: `Active`, `Dead`, `Partial`, `Initializing`, `Listener`, `PartialSnapshot`, `Recovery`, `Resharding`, `ReshardingScaleDown`, `ActiveRead`, `ManualRecovery` - `shard_key` (LocalShardInfoShardKey, optional) — User-defined sharding key ### RemoteShardInfo - `shard_id` (uint, required) — Remote shard id - `peer_id` (uint64, required) — Remote peer id - `state` (enum, required) — State of the single shard within a replica set. - Allowed values: `Active`, `Dead`, `Partial`, `Initializing`, `Listener`, `PartialSnapshot`, `Recovery`, `Resharding`, `ReshardingScaleDown`, `ActiveRead`, `ManualRecovery` - `shard_key` (RemoteShardInfoShardKey, optional) — User-defined sharding key ### ShardTransferInfo - `shard_id` (uint, required) - `from` (uint64, required) — Source peer id - `to` (uint64, required) — Destination peer id - `sync` (boolean, required) — If `true` transfer is a synchronization of a replicas If `false` transfer is a moving of a shard from one peer to another - `to_shard_id` (uint, optional, nullable) — Target shard ID if different than source shard ID Used exclusively with `ReshardingStreamRecords` transfer method. - `method` (ShardTransferInfoMethod, optional) - `comment` (string, optional, nullable) — A human-readable report of the transfer progress. Available only on the source peer. ### ReshardingInfo - `direction` (enum, required) — Resharding direction, scale up or down in number of shards - `up` - Scale up, add a new shard - `down` - Scale down, remove a shard - Allowed values: `up`, `down` - `shard_id` (uint, required) - `peer_id` (uint64, required) - `shard_key` (ReshardingInfoShardKey, optional) ### UsageHardware ### UsageInference ### LocalShardInfoShardKey User-defined sharding key ### RemoteShardInfoShardKey User-defined sharding key ### ShardTransferInfoMethod ### ReshardingInfoShardKey ### HardwareUsage Usage of the hardware resources, spent to process the request - `cpu` (integer, required) - `payload_io_read` (integer, required) - `payload_io_write` (integer, required) - `payload_index_io_read` (integer, required) - `payload_index_io_write` (integer, required) - `vector_io_read` (integer, required) - `vector_io_write` (integer, required) ### InferenceUsage - `models` (map from string to ModelUsage, required) ### ModelUsage - `tokens` (uint64, required) ## Examples **Response** ```json { "usage": { "hardware": { "cpu": 1, "payload_io_read": 1, "payload_io_write": 1, "payload_index_io_read": 1, "payload_index_io_write": 1, "vector_io_read": 1, "vector_io_write": 1 }, "inference": { "models": {} } }, "time": 0.002, "status": "ok", "result": { "peer_id": 1, "shard_count": 1, "local_shards": [ { "shard_id": 1, "points_count": 1, "state": "Active", "shard_key": "region_1" } ], "remote_shards": [ { "shard_id": 1, "peer_id": 1, "state": "Active", "shard_key": "region_1" } ], "shard_transfers": [ { "shard_id": 1, "from": 1, "to": 1, "sync": true, "to_shard_id": 1, "method": "stream_records", "comment": "string" } ], "resharding_operations": [ { "direction": "up", "shard_id": 1, "peer_id": 1, "shard_key": "region_1" } ] } } ``` **SDK Code** ```python import requests url = "http://localhost:6333/collections/collection_name/cluster" headers = {"api-key": ""} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'http://localhost:6333/collections/collection_name/cluster'; const options = {method: 'GET', headers: {'api-key': ''}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "http://localhost:6333/collections/collection_name/cluster" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("api-key", "") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("http://localhost:6333/collections/collection_name/cluster") http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Get.new(url) request["api-key"] = '' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("http://localhost:6333/collections/collection_name/cluster") .header("api-key", "") .asString(); ``` ```php request('GET', 'http://localhost:6333/collections/collection_name/cluster', [ 'headers' => [ 'api-key' => '', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("http://localhost:6333/collections/collection_name/cluster"); var request = new RestRequest(Method.GET); request.AddHeader("api-key", ""); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["api-key": ""] let request = NSMutableURLRequest(url: NSURL(string: "http://localhost:6333/collections/collection_name/cluster")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```