List stats

Counts the documents in each of your indexes.

GET /v1/index/stats

Addresshttps://api.hanzo.ai/v1/index/stats
MethodGET
Operationget_index_stats
AuthAuthorization: Bearer $HANZO_API_KEY

Counts the documents in each of your indexes.

Reports every index the caller's own org holds with its document count, plus the org's total. isIndexing is always false because writes here are applied before their response — there is never a background pass to wait on.

The tenant is the org minted from the VALIDATED bearer's owner claim, never a client-supplied header, so this counts the caller's own documents and no other tenant's. Without a validated principal the answer is 403 carrying the dialect's invalid_api_key body.

Request

GET /v1/index/stats takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200index.indexStatsok
defaultproblem-detailsrefused

200 body — 5 fields.

FieldInTypeAlwaysDescription
databaseSizebodyinteger (int64)—DatabaseSize is the org's total document count across its indexes.
indexesbodyobject—Indexes maps each index uid to its own count.
indexes.*bodyindex.indexCount—
indexes.*.isIndexingbodyboolean—IsIndexing is always false: writes are applied before their response, so there is never a background pass a caller could be waiting on.
indexes.*.numberOfDocumentsbodyinteger (int64)—NumberOfDocuments is how many documents this org holds in that index.

Failure carries the platform error shape — see Errors.

Examples

hanzo index stats
import { Configuration, IndexApi } from 'hanzoai';

const api = new IndexApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getIndexStats();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import IndexApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = IndexApi(client).get_index_stats()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.IndexAPI.GetIndexStats(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, index_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = index_api::get_index_stats(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.IndexApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new IndexApi(client).getIndexStats();
curl https://api.hanzo.ai/v1/index/stats \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches index through the index tool, which names its 14 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "describe",
         "arguments": {
           "op": "get_index_health"
         }
       }
     }'

Index API · All Hanzo APIs · Interactive reference

Was this page useful?