Suggest returns the caller org's next-best quests: the available, non-terminal…
Suggest returns the caller org's next-best quests: the available, non-terminal steps of its journey ranked by how much downstream work each unblocks, each…
GET /v1/guide/suggest
| Address | https://api.hanzo.ai/v1/guide/suggest |
| Method | GET |
| Operation | get_guide_suggest |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Suggest returns the caller org's next-best quests: the available, non-terminal steps of its journey ranked by how much downstream work each unblocks, each with the grounded reason it is a good next move and whether the Business AI can run it, plus the org's funnel and the GTM recommendations derived from it. A best-effort AI narrative over exactly those quests and numbers is included when an AI plane is wired. READ-ONLY: it advises and never runs a step — the only executing path is POST /v1/guide/steps/{id}/do.
Request
GET /v1/guide/suggest takes no parameters and no body — the credential is the whole request.
Response
| Status | Body | Meaning |
|---|---|---|
200 | suggestResponse | ok |
200 body — 18 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
funnel | body | Funnel | — | |
funnel.available | body | boolean | — | Available separates "this org has no traffic" from "we could not ask". |
funnel.orders | body | integer | — | Orders counts completed orders in the window — purchases, not carts started. |
funnel.pageviews | body | integer | — | Pageviews counts page events in the window, one per view rather than per person, so a single visitor reading ten pages counts ten. |
funnel.revenue | body | number | — | Revenue is the sum of the amounts those orders reported, in whatever currency the beacon stamped on them (major units, e.g. |
funnel.signups | body | integer | — | Signups counts completed signups in the window, the step where an anonymous visitor becomes somebody with an account. |
funnel.visitors | body | integer | — | 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.windowDays | body | integer | — | WindowDays is the length of the trailing window every count covers, so a reader knows whether 40 signups is a month or a day. |
narrative | body | string | — | Narrative is the AI's grounded prose over those quests and numbers. |
next | body | string | — | Next is the id of the single next step the static journey names — the linear answer the ranked Suggestions refine. |
recommendations | body | string[] | — | Recommendations are the next-best GTM actions derived from that funnel. |
suggestions | body | suggestion[] | — | Suggestions are the available, non-terminal quests ranked best-first by how much downstream work each unblocks. |
suggestions[].automatable | body | boolean | — | Automatable is true when the step names a tool, so the Business AI can do it rather than only describe it. |
suggestions[].detail | body | string | — | Detail is the step's own prose — what it asks for. |
suggestions[].rationale | body | string | — | Rationale is why this step is being suggested NOW, written for the person reading it. |
suggestions[].stepId | body | string | — | StepID is the checklist step being recommended — the id every step route takes, so a caller can act on the suggestion directly. |
suggestions[].title | body | string | — | Title is the step's own one-line quest. |
suggestions[].unlocks | body | integer | — | Unlocks is how many downstream steps completing this one immediately makes available (its leverage) — the primary ranking key. |
Failure carries the platform error shape — see Errors.
Examples
hanzo guide suggestimport { Configuration, GuideApi } from 'hanzoai';
const api = new GuideApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getGuideSuggest();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_suggest()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.GuideAPI.GetGuideSuggest(context.Background()).Execute()
if err != nil {
return err
}use hanzo_cloud::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_suggest(&cfg, Default::default()).await?;import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.GuideApi;
ApiClient client = new ApiClient();
client.setRequestInterceptor(b -> b.header("Authorization", "Bearer " + System.getenv("HANZO_API_KEY")));
var result = new GuideApi(client).getGuideSuggest();curl https://api.hanzo.ai/v1/guide/suggest \
-H "Authorization: Bearer $HANZO_API_KEY"Tool guide, op get_guide_suggest — 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": "guide",
"arguments": {
"op": "get_guide_suggest",
"input": {}
}
}
}'How is this guide?