List bases

Lists every Base the caller can reach, one per org their token carries.

GET /v1/base/bases

Addresshttps://api.hanzo.ai/v1/base/bases
MethodGET
Operationget_base_bases
AuthAuthorization: Bearer $HANZO_API_KEY

Lists every Base the caller can reach, one per org their token carries.

The orgs come from IAM's signed membership set, so the list is exactly the orgs the caller is a member of and cannot be widened by asking. It is the account-wide view: a Base is per org, so this is one entry per org and there is nothing to page.

A caller with no membership set — a machine credential, an API key — reaches no Base and receives an empty list rather than a refusal, because holding no membership is an answer and not a failure.

Request

GET /v1/base/bases takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200base.baseView[]ok
defaultproblem-detailsrefused

200 body — 3 fields.

FieldInTypeAlwaysDescription
[].bytesbodyinteger (int64)—Bytes is the store's size on disk, present only once it exists.
[].existsbodyboolean—Exists reports whether this Base's store has been provisioned.
[].orgbodystring—Org is the org this Base belongs to.

Failure carries the platform error shape — see Errors.

Examples

hanzo base bases list
import { Configuration, BaseApi } from 'hanzoai';

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

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

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

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

let result = base_api::get_base_bases(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.BaseApi;

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

var result = new BaseApi(client).getBaseBases();
curl https://api.hanzo.ai/v1/base/bases \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches base through the base tool, which names its 3 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": "list_base_bases"
         }
       }
     }'

Base API · All Hanzo APIs · Interactive reference

Was this page useful?