List guide

Returns the caller org's launch journey: the active curriculum's version and title, every step with its state, whether it is available, what blocks it and whether the Business AI can run it, the done/total/percent progress with the next step to take, and the org's analytics funnel folded in.

GET /v1/guide

Addresshttps://api.hanzo.ai/v1/guide
MethodGET
Operationget_guide
AuthAuthorization: Bearer $HANZO_API_KEY

Returns the caller org's launch journey: the active curriculum's version and title, every step with its state, whether it is available, what blocks it and whether the Business AI can run it, the done/total/percent progress with the next step to take, and the org's analytics funnel folded in. Auto-detect runs first, so a step the org has already completed elsewhere reads done without anyone marking it.

Request

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

Response

StatusBodyMeaning
200guide.overviewViewok
defaultproblem-detailsrefused

200 body — 34 fields.

FieldInTypeAlwaysDescription
custombodyboolean—Custom is true when the org replaced the shared playbook with one of its own — the difference between "everyone's checklist" and "the one you authored".
funnelbodyguide.Funnel—
funnel.availablebodyboolean—Available separates "this org has no traffic" from "we could not ask".
funnel.ordersbodyinteger (int64)—Orders counts completed orders in the window — purchases, not carts started.
funnel.pageviewsbodyinteger (int64)—Pageviews counts page events in the window, one per view rather than per person, so a single visitor reading ten pages counts ten.
funnel.revenuebodynumber (double)—Revenue is the sum of the amounts those orders reported, in whatever currency the beacon stamped on them (major units, e.g. 49.5 for $49.50) — NOT cents, and not converted to a single currency.
funnel.signupsbodyinteger (int64)—Signups counts completed signups in the window, the step where an anonymous visitor becomes somebody with an account.
funnel.visitorsbodyinteger (int64)—Visitors is the number of DISTINCT people seen in the window, counted by the beacon's distinct id — so it is unique visitors, not sessions and not views.
funnel.windowDaysbodyinteger (int64)—WindowDays is the length of the trailing window every count covers, so a reader knows whether 40 signups is a month or a day.
progressbodyguide.progressView—
progress.donebodyinteger (int64)—Done counts steps that are FINISHED — done and skipped alike, since a step the org deliberately passed over is not still owed.
progress.nextbodystring—Next is the id of the step to do next: the first available, unfinished step in authoring order.
progress.percentbodyinteger (int64)—Percent is done/total as a whole number 0-100, rounded, so a caller renders a bar without recomputing it.
progress.totalbodyinteger (int64)—Total is how many steps this org's journey holds — the ENABLED steps of the playbook, so it shrinks when an operator disables one and does not match the authored step count.
stepsbodyguide.stepView[]—Steps are every enabled step with the org's own state folded in, in authoring order.
steps[].argsbodyobject—Args are the tool's default arguments, merged under whatever the caller passes at run time.
steps[].args.*bodyany—
steps[].automatablebodyboolean—Automatable is true when the Business AI can run this step (it names a tool).
steps[].availablebodyboolean—Available is true when every dependency is done or skipped.
steps[].blockedBybodystring[]—BlockedBy lists the unfinished dependencies keeping the step unavailable.
steps[].depsbodystring[]—Dependencies are step ids that must be done/skipped before this step is available.
steps[].detailbodystring—Detail is the prose/juncture — what the Guide asks or explains here.
steps[].draftbodystring—Draft, when set, is the prompt the embedded AI answers first; its output is folded into one of Args before the tool runs.
steps[].draftIntobodystring—DraftInto names the argument the drafted text lands in.
steps[].enabledbodyboolean—Enabled is the admin on/off lever; absent reads as enabled.
steps[].idbodystring—ID is the step's id, as it appears in the journey (e.g. "gsuite").
steps[].sectionbodystring—Section is the phase (section id) this step groups under.
steps[].signalbodystring—Signal names the machine detector that auto-marks this step done.
steps[].sourcebodystring—Source records what marked the state: manual, auto (detected) or agent.
steps[].statebodystring—State is the step's per-org lifecycle state: todo|in_progress|done|skipped.
steps[].titlebodystring—Title is the one-line quest as a person reads it in the checklist.
steps[].toolbodystring—Tool is the MCP tool the Business AI runs for "do it for me".
titlebodystring—Title is the playbook's name as it heads the checklist.
versionbodystring—Version identifies the playbook this journey came from, so a caller can tell that the checklist itself changed under them.

Failure carries the platform error shape — see Errors.

Examples

hanzo guide get
import { Configuration, GuideApi } from 'hanzoai';

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

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

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

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

let result = guide_api::get_guide(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.GuideApi;

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

var result = new GuideApi(client).getGuide();
curl https://api.hanzo.ai/v1/guide \
  -H "Authorization: Bearer $HANZO_API_KEY"

MCP reaches guide through the guide tool, which names its 13 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_guides"
         }
       }
     }'

Guide API · All Hanzo APIs · Interactive reference

Was this page useful?