List profile

Returns the caller org's OBSERVED growth profile — the signal set, the classified growth stage, and the org's own key metrics.

GET /v1/guide/profile

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

Returns the caller org's OBSERVED growth profile — the signal set, the classified growth stage, and the org's own key metrics. It is a pure READ, recomputed from the org's CURRENT state each request (real-time by pull): it reuses the reconcile path (snapshotFor runs the detectors) for launch progress and runs the growth probes (observe) for the signals — it never caches, never runs a billable effect, never targets another org. Org-scoped on the validated principal; fail-closed without one. It PRODUCES the profile and classifies the stage; it decides NO recommendation (that is a later surface).

Request

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

Response

StatusBodyMeaning
200guide.profileResponseok
defaultproblem-detailsrefused

200 body — 19 fields.

FieldInTypeAlwaysDescription
keyMetricsbodyguide.profileMetrics—
keyMetrics.funnelbodyguide.Funnel—
keyMetrics.funnel.availablebodyboolean—Available separates "this org has no traffic" from "we could not ask".
keyMetrics.funnel.ordersbodyinteger (int64)—Orders counts completed orders in the window — purchases, not carts started.
keyMetrics.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.
keyMetrics.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.
keyMetrics.funnel.signupsbodyinteger (int64)—Signups counts completed signups in the window, the step where an anonymous visitor becomes somebody with an account.
keyMetrics.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.
keyMetrics.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.
keyMetrics.launchProgressbodyguide.progressView—
keyMetrics.launchProgress.donebodyinteger (int64)—Done counts steps that are FINISHED — done and skipped alike, since a step the org deliberately passed over is not still owed.
keyMetrics.launchProgress.nextbodystring—Next is the id of the step to do next: the first available, unfinished step in authoring order.
keyMetrics.launchProgress.percentbodyinteger (int64)—Percent is done/total as a whole number 0-100, rounded, so a caller renders a bar without recomputing it.
keyMetrics.launchProgress.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.
keyMetrics.recordsbodyinteger (int64)—Records is how many business records the org holds — the volume that tells a real book of customers from an empty account.
keyMetrics.revenueCentsbodyinteger (int64)—RevenueCents is the org's money OF RECORD — what its books say, in whole cents, never a float and never a display string.
signalsbodyobject—Signals is what was observed of the org right now, one boolean per probe.
signals.*bodyboolean—
stagebodystring—Stage is how far the business itself has got — formed, launched, activated or scaling — decided purely from the signals below, and by what the org has ACHIEVED rather than what it has configured.

Failure carries the platform error shape — see Errors.

Examples

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

const api = new GuideApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getGuideProfile();
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_profile()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.GuideAPI.GetGuideProfile(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_profile(&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).getGuideProfile();
curl https://api.hanzo.ai/v1/guide/profile \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool guide, op get_guide_profile — 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_profile",
           "input": {}
         }
       }
     }'

Guide API · All Hanzo APIs · Interactive reference

Was this page useful?