Returns the FULL authored brand blueprint — every principle, section, step,…
Returns the FULL authored brand blueprint — every principle, section, step, strategy and template WITH its enabled flag made explicit, including the…
GET /v1/guide/blueprint
| Address | https://api.hanzo.ai/v1/guide/blueprint |
| Method | GET |
| Operation | get_guide_blueprint |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Returns the FULL authored brand blueprint — every principle, section, step, strategy and template WITH its enabled flag made explicit, including the disabled items the org-facing reads never see — plus the active version number, the brand key it is stored under and the item counts. It is the SuperAdmin authoring view of the platform blueprint, so it is refused 403 for anyone else, including a per-org admin: the brand blueprint is shared platform content, not a per-customer surface.
Request
GET /v1/guide/blueprint takes no parameters and no body — the credential is the whole request.
Response
| Status | Body | Meaning |
|---|---|---|
200 | blueprintView | ok |
200 body — 62 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
blueprint | body | Blueprint | — | |
blueprint.brand | body | string | — | Brand is the white-label key this playbook serves. |
blueprint.enabled | body | boolean | — | Enabled is the whole-playbook lever. Absent reads as ON; an explicit false makes resolution skip this playbook entirely and fall through to the next tier,… |
blueprint.principles | body | Principle[] | — | Principles are the fixed 64-archetype spine a tactic files under. |
blueprint.principles[].change | body | string | — | the Book of Changes reading |
blueprint.principles[].domain | body | string | — | the growth / go-to-market domain it governs |
blueprint.principles[].hexagram | body | string | — | the I-Ching hexagram (pinyin + gloss) |
blueprint.principles[].n | body | integer | — | 1..64, the hexagram number + canonical order |
blueprint.principles[].name | body | string | — | the principle's short name |
blueprint.principles[].principle | body | string | — | the actionable growth law |
blueprint.principles[].slug | body | string | — | stable identifier a tactic files under |
blueprint.principles[].sunTzu | body | string | — | the Art of War teaching |
blueprint.sections | body | Section[] | — | Sections are the journey's ordered phases. |
blueprint.sections[].detail | body | string | — | Detail is what this phase of the journey is for, in prose. |
blueprint.sections[].enabled | body | boolean | — | Enabled is the admin lever. Absent reads as ON, so only an explicit false turns a phase off — and it takes every step filed under it out of the journey, not… |
blueprint.sections[].id | body | string | — | ID is the slug a step's section names to file itself under this phase. |
blueprint.sections[].order | body | integer | — | Order places the phase in the journey, ascending. |
blueprint.sections[].title | body | string | — | Title is the phase heading a person reads above its steps. |
blueprint.steps | body | JourneyStep[] | — | Steps are every checklist item, disabled ones included — this is the authored document, not the projection an org runs. |
blueprint.steps[].args | body | object | — | Args are the tool's default arguments, merged under whatever the caller passes at run time, so a step ships with the arguments that make it work. |
blueprint.steps[].args.* | body | object | — | |
blueprint.steps[].deps | body | string[] | — | Dependencies are step ids that must be done/skipped before this step is available. |
blueprint.steps[].detail | body | string | — | Detail is the juncture — what the Guide explains, or asks for, at this step. |
blueprint.steps[].draft | body | string | — | Draft, when set, is the prompt the embedded AI answers first; its output is folded into one of Args before the tool runs, so the model writes the content and… |
blueprint.steps[].draftInto | body | string | — | DraftInto names the argument the drafted text lands in. |
blueprint.steps[].enabled | body | boolean | — | Enabled is the admin on/off lever. A NIL pointer reads as ENABLED (absence == on): a legacy/org curriculum that omits the field keeps every step, and only an… |
blueprint.steps[].id | body | string | — | ID is the stable slug the whole plane addresses this step by — the value in deps, in next, in the progress rows, and in the URL of every step route. |
blueprint.steps[].section | body | string | — | Section is the id of the phase this step groups under. |
blueprint.steps[].signal | body | string | — | Signal, when set, names a machine detector (detect.go). |
blueprint.steps[].title | body | string | — | Title is the one-line quest as a person reads it in the checklist. |
blueprint.steps[].tool | body | string | — | Tool, when set, names the MCP tool the Business AI runs for "do it for me". |
blueprint.strategies | body | Strategy[] | — | Strategies are the tactics corpus the recommendation reads narrow. |
blueprint.strategies[].action | body | string | — | Action is the tactic itself: the thing to go and do, stated imperatively. |
blueprint.strategies[].blog | body | Blog | — | |
blueprint.strategies[].blog.caseStudy | body | string | — | CaseStudy is one worked instance — somebody who ran it, and what happened. |
blueprint.strategies[].blog.how | body | string | — | How is the run book: the steps to execute the tactic. |
blueprint.strategies[].blog.slug | body | string | — | Slug is the post's address — the last path segment it is published at. |
blueprint.strategies[].blog.title | body | string | — | Title is the post's headline. |
blueprint.strategies[].blog.why | body | string | — | Why is the mechanism: the reason the tactic works, stated as a principle rather than as instructions. |
blueprint.strategies[].category | body | string | — | Category is the growth discipline the tactic belongs to — the axis ?category= narrows the corpus on, and one of the facets a caller browses by. |
blueprint.strategies[].enabled | body | boolean | — | Enabled is the admin lever. |
blueprint.strategies[].era | body | string | — | Era separates an AI-era tactic (modern) from a classical one (heritage). |
blueprint.strategies[].id | body | string | — | ID is the tactic's stable slug, unique across the corpus. |
blueprint.strategies[].principle | body | string | — | Principle is the spine slug this tactic files under (a Principle.Slug). |
blueprint.strategies[].source | body | string | — | Source is where the tactic came from — the attribution a reader is owed. |
blueprint.strategies[].tags | body | string[] | — | Tags are PRECONDITIONS, not labels — every one must be satisfied by the org's observed profile before the tactic surfaces, so an untagged tactic is universally… |
blueprint.strategies[].workload | body | string | — | Workload is how much effort running the tactic costs, so a corpus can be narrowed to what an org has the hands for right now. |
blueprint.templates | body | Page[] | — | Templates are the reusable prompts and snippets steps reference by id. |
blueprint.templates[].body | body | string | — | Body is the reusable prompt or snippet itself. |
blueprint.templates[].enabled | body | boolean | — | Enabled is the admin lever. |
blueprint.templates[].id | body | string | — | ID is the slug a step references to pull this template in. |
blueprint.templates[].title | body | string | — | Title names the template in the authoring plane and in a picker. |
blueprint.title | body | string | — | Title is the playbook's name as a person reads it. |
blueprint.version | body | string | — | Version is the playbook's own name for this edition of its content, chosen by whoever authored it. It travels onto every journey projected from it. |
brand | body | string | — | Brand is the key this blueprint is stored under — the deployment's brand, or "" for the shared base blueprint it falls back to. |
counts | body | blueprintCounts | — | |
counts.principles | body | integer | — | Principles is how many spine archetypes the playbook carries (64 in the shipped corpus). |
counts.sections | body | integer | — | Sections is how many phases the journey has. |
counts.steps | body | integer | — | Steps is how many checklist items the playbook holds, DISABLED ONES INCLUDED — this counts the authored document, not the journey an org runs, so it is… |
counts.strategies | body | integer | — | Strategies is how many tactics the corpus holds, again counting disabled ones. |
counts.templates | body | integer | — | Templates is how many reusable prompts the playbook carries. |
version | body | integer | — | Version is the active stored version number (1 is the seed). |
Failure carries the platform error shape — see Errors.
Examples
hanzo guide blueprint listimport { Configuration, GuideApi } from 'hanzoai';
const api = new GuideApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getGuideBlueprint();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_blueprint()cfg := cloud.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := cloud.NewAPIClient(cfg)
resp, _, err := client.GuideAPI.GetGuideBlueprint(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_blueprint(&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).getGuideBlueprint();curl https://api.hanzo.ai/v1/guide/blueprint \
-H "Authorization: Bearer $HANZO_API_KEY"Tool guide, op get_guide_blueprint — 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_blueprint",
"input": {}
}
}
}'How is this guide?