List health

Whether the experiments subsystem is mounted and serving in this process.

GET /v1/experiment/health

Addresshttps://api.hanzo.ai/v1/experiment/health
MethodGET
Operationget_experiment_health
AuthAuthorization: Bearer $HANZO_API_KEY

Whether the experiments subsystem is mounted and serving in this process.

It answers unconditionally. It proves exactly one thing — that this binary registered the experiments routes and is dispatching them — and deliberately no more: it reads no principal, opens no per-org registry, and touches neither the flags engine nor the analytics plane, so a 200 here says nothing about whether a given tenant's store will open or whether an analysis can run. It is the only route on this surface that needs no org.

The static path is registered ahead of the /:id read, so it always wins the first-match scan. "health" is a legal experiment id, which means an experiment created under that id can never be fetched by id — pick another.

Request

GET /v1/experiment/health takes no parameters and no body — the credential is the whole request.

Response

StatusBodyMeaning
200experiment.healthok
defaultproblem-detailsrefused

200 body — 2 fields.

FieldInTypeAlwaysDescription
okbodyboolean—OK is true whenever this route answers at all: reaching the handler IS the proof that the routes are registered and dispatching.
subsystembodystring—Subsystem names what answered, so a health response read out of context still says which surface it came from.

Failure carries the platform error shape — see Errors.

Examples

hanzo experiment health
import { Configuration, ExperimentApi } from 'hanzoai';

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

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

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

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

let result = experiment_api::get_experiment_health(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.ExperimentApi;

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

var result = new ExperimentApi(client).getExperimentHealth();
curl https://api.hanzo.ai/v1/experiment/health \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool experiment, op get_experiment_health — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

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

Experiment API · All Hanzo APIs · Interactive reference

Was this page useful?