get_v1_bots
List returns the caller org's live bot runs, read from the bot runtime and projected into the console contract with each run's live session URL derived here.
List returns the caller org's live bot runs, read from the bot runtime and projected into the console contract with each run's live session URL derived here.
The org is ALWAYS the validated principal's org, NEVER a request field, and it is what scopes the runtime's answer — so one tenant can never enumerate another's runs. A runtime that cannot answer is an error, not an empty list: [] would tell the caller "your org has no runs", which is a different claim from "we could not ask", and the difference is the whole reason this endpoint exists.
| Tool | get_v1_bots |
| Door | https://api.hanzo.ai/v1/mcp |
| Method | tools/call (JSON-RPC 2.0) |
| Arguments | 0 |
| Operation | GET /v1/bots |
| Product | cloud |
Arguments
This tool declares no arguments. Call it with an empty arguments object.
Call it
A tools/call carries its arguments in one flat object. This tool declares none, so the object is empty.
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": "get_v1_bots",
"arguments": {}
}
}'tools/list needs no credential; tools/call does — called without one the door answers HTTP 200 with a JSON-RPC result whose isError is set and whose text says what was missing. How to get a key →
The operation behind it
| Operation | Route | Product | Summary |
|---|---|---|---|
cloud_get_v1_bots | GET /v1/bots | cloud | List returns the caller org's live bot runs, read from the bot runtime and projected into |
The same capability over plain HTTP is in the cloud API reference, on https://api.hanzo.ai.
All 834 tools · The door · API reference
Generated from tools/list on https://api.hanzo.ai/v1/mcp — 834 tools captured 2026-08-01 (this build read the vendored copy; the door was unreachable).
How is this guide?