List portfolio
Returns the studio's portfolio operations rollup: stage, status, checklist progress, decisions waiting on people, latest evidence, failed runs, and spend for every venture operated by the studio organization.
GET /v1/guide/portfolio
| Address | https://api.hanzo.ai/v1/guide/portfolio |
| Method | GET |
| Operation | get_guide_portfolio |
| Auth | Authorization: Bearer $HANZO_API_KEY |
Returns the studio's portfolio operations rollup: stage, status, checklist progress, decisions waiting on people, latest evidence, failed runs, and spend for every venture operated by the studio organization.
Request
GET /v1/guide/portfolio takes no parameters and no body — the credential is the whole request.
Response
| Status | Body | Meaning |
|---|---|---|
200 | guide.portfolioView | ok |
default | problem-details | refused |
200 body — 50 fields.
| Field | In | Type | Always | Description |
|---|---|---|---|---|
activeVentures | body | integer (int64) | — | ActiveVentures is how many ventures are currently in active execution. |
failedRuns | body | integer (int64) | — | FailedRuns is the total count of failed runs across all ventures in the portfolio. |
formedVentures | body | integer (int64) | — | FormedVentures is how many ventures have advanced to legal entity formation. |
offboardedVentures | body | integer (int64) | — | OffboardedVentures is how many ventures have been offboarded from the studio. |
pausedVentures | body | integer (int64) | — | PausedVentures is how many ventures are currently paused. |
pendingDecisions | body | integer (int64) | — | PendingDecisions is the total count of decisions, role proposals, and external actions waiting on people across the portfolio. |
studioOrg | body | string | — | StudioOrg is the studio organization whose portfolio is summarized. |
totalBudgetMicroUSD | body | integer (int64) | — | TotalBudgetMicroUSD is the sum of initial budgets allocated across all ventures in integer micro-USD. |
totalSpendMicroUSD | body | integer (int64) | — | TotalSpendMicroUSD is the cumulative spend across all ventures in integer micro-USD. |
totalVentures | body | integer (int64) | — | TotalVentures is the total number of ventures registered in the studio portfolio. |
ventures | body | guide.VentureRecord[] | — | Ventures is the per-venture operational rollup ordered by creation time. |
ventures[].createdAt | body | integer (int64) | — | CreatedAt is when the venture was first registered in the portfolio, as Unix seconds. |
ventures[].evidence | body | string[] | — | Evidence lists the source citations and evidence URIs attached to the venture. |
ventures[].failedRuns | body | integer (int64) | — | FailedRuns is how many specialist or automation runs have failed and await retry or review. |
ventures[].formationId | body | string | — | FormationID is the legal entity formation identifier from /v1/company once the venture advances to formation. |
ventures[].imported | body | boolean | — | Imported is true when the venture was imported into the studio rather than started from scratch. |
ventures[].initialBudgetMicroUSD | body | integer (int64) | — | InitialBudgetMicroUSD is the initial venture budget in integer micro-USD, allocated at creation. |
ventures[].latestEvidence | body | string | — | LatestEvidence is the most recently recorded evidence citation or URI for this venture. |
ventures[].members | body | string[] | — | Members lists the teammate subjects explicitly assigned access to this venture. |
ventures[].owner | body | string | — | Owner is the venture lead (person or lead agent handle) accountable for executing the playbook. |
ventures[].pendingDecisions | body | integer (int64) | — | PendingDecisions is how many research decisions, role proposals, or external actions await human approval. |
ventures[].playbookVersion | body | string | — | PlaybookVersion is the version string of the Guide curriculum enrolled for this venture. |
ventures[].progress | body | guide.progressView | — | |
ventures[].progress.done | body | integer (int64) | — | Done counts steps that are FINISHED — done and skipped alike, since a step the org deliberately passed over is not still owed. |
ventures[].progress.next | body | string | — | Next is the id of the step to do next: the first available, unfinished step in authoring order. |
ventures[].progress.percent | body | integer (int64) | — | Percent is done/total as a whole number 0-100, rounded, so a caller renders a bar without recomputing it. |
ventures[].progress.total | body | integer (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. |
ventures[].resumed | body | boolean | — | Resumed is true when a repeated or interrupted create call resumed an existing venture without duplicating budget or team. |
ventures[].setup | body | guide.VentureSetupState | — | |
ventures[].setup.budgetAllocated | body | boolean | — | BudgetAllocated is true once the initial micro-USD budget has been committed, preventing duplicate allocation. |
ventures[].setup.members | body | string[] | — | Members lists the teammate subjects explicitly assigned access to this venture. |
ventures[].setup.orgProvisioned | body | boolean | — | OrgProvisioned is true once the venture's isolated organization store has been opened. |
ventures[].setup.playbookEnrolled | body | boolean | — | PlaybookEnrolled is true once the versioned curriculum has been persisted in the venture's store. |
ventures[].setup.revokedMembers | body | string[] | — | RevokedMembers lists teammate subjects whose seat access to this venture has been revoked. |
ventures[].setup.teamSeeded | body | boolean | — | TeamSeeded is true once the venture's team roster has been enrolled. |
ventures[].slug | body | string | — | Slug is the venture's unique handle inside the studio portfolio. |
ventures[].spendMicroUSD | body | integer (int64) | — | SpendMicroUSD is the cumulative spend recorded against this venture in integer micro-USD. |
ventures[].sponsor | body | string | — | Sponsor is the studio partner or executive sponsoring the venture. |
ventures[].stage | body | string | — | Stage is the venture's position in the studio funnel: intake, discovery, validation, formation, or scaling. |
ventures[].status | body | string | — | Status is the venture's operating state: active, paused, forming, formed, or offboarded. |
ventures[].studioOrg | body | string | — | StudioOrg is the parent studio organization operating the portfolio. |
ventures[].templates | body | guide.Page[] | — | Templates are the shared studio templates from the playbook visible in this venture. |
ventures[].templates[].body | body | string | — | Body is the reusable prompt or snippet itself. |
ventures[].templates[].enabled | body | boolean | — | Enabled is the admin lever. |
ventures[].templates[].id | body | string | — | ID is the slug a step references to pull this template in. |
ventures[].templates[].title | body | string | — | Title names the template in the authoring plane and in a picker. |
ventures[].thesis | body | string | — | Thesis is the falsifiable venture hypothesis being tested before entity formation. |
ventures[].title | body | string | — | Title is the human-readable name of the venture. |
ventures[].updatedAt | body | integer (int64) | — | UpdatedAt is when the venture record was last updated, as Unix seconds. |
ventures[].ventureOrg | body | string | — | VentureOrg is the isolated organization namespace holding this venture's private progress, documents, runs, and secrets. |
Failure carries the platform error shape — see Errors.
Examples
hanzo guide portfolioimport { Configuration, GuideApi } from 'hanzoai';
const api = new GuideApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getGuidePortfolio();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_portfolio()cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)
resp, _, err := client.GuideAPI.GetGuidePortfolio(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_portfolio(&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).getGuidePortfolio();The method above is the one at the current release of the document. [email protected] (npm) and [email protected] (PyPI) were generated from an earlier release, where this operation carried a different id, so it spells the method differently — regenerating the clients is what makes the two agree. SDKs →
curl https://api.hanzo.ai/v1/guide/portfolio \
-H "Authorization: Bearer $HANZO_API_KEY"Tool guide, op get_guide_portfolio — 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_portfolio",
"input": {}
}
}
}'