Start
Hello
Identity — prove the key works and print who it belongs to.
Identity — prove the key works and print who it belongs to.
Verified: GET /v1/bot/auth/me returns 403 {"error":"no validated principal"} with no key and with a bogus one, and returns the typed bot_User with a real one. An SDK's hello must be the call that says no. Print data.owner and data.name.
Get current authenticated user
GET /v1/bot/auth/me · reference →
hanzo bot auth meimport { Configuration, AuthApi } from 'hanzoai';
const api = new AuthApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.botAuthMe();from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import AuthApi
client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = AuthApi(client).bot_auth_me()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.AuthAPI.BotAuthMe(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::apis::{configuration::Configuration, auth_api};
let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();
let result = auth_api::bot_auth_me(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.AuthApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new AuthApi(client).botAuthMe();curl https://api.hanzo.ai/v1/bot/auth/me \
-H "Authorization: Bearer $HANZO_API_KEY"The MCP door does not expose this operation as a tool. It answers tools/list at https://api.hanzo.ai/v1/mcp with the ones it does.
Every command, call and tool above is generated from the same OpenAPI document that generates the SDKs themselves — the four surfaces are projections of one doc comment, so they cannot disagree.
How is this guide?