# Create lifecycle

URL: https://docs.hanzo.ai/docs/openapi/guide/post-guide-ventures-by-slug-lifecycle

> Executes a portfolio lifecycle operation on a venture (pause, resume, advance, form, export, sync, offboard, assign_member, or revoke_member) and updates its operational telemetry (spend, pending decisions, failed runs, latest evidence, or company formation ID).

`POST /v1/guide/ventures/{slug}/lifecycle`

> [Guide →](https://docs.hanzo.ai/docs/openapi/guide) · [All API references →](https://docs.hanzo.ai/docs/openapi) · [Get started →](https://docs.hanzo.ai/docs/guides)

|               |                                                           |
| ------------- | --------------------------------------------------------- |
| **Address**   | `https://api.hanzo.ai/v1/guide/ventures/{slug}/lifecycle` |
| **Method**    | `POST`                                                    |
| **Operation** | `post_guide_ventures_by_slug_lifecycle`                   |
| **Auth**      | `Authorization: Bearer $HANZO_API_KEY`                    |

Executes a portfolio lifecycle operation on a venture
(pause, resume, advance, form, export, sync, offboard, assign\_member, or
revoke\_member) and updates its operational telemetry (spend, pending
decisions, failed runs, latest evidence, or company formation ID).

## Request

11 fields, body `application/json` (required).

| Field              | In   | Type            | Required | Description                                                                                                                            |
| ------------------ | ---- | --------------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `slug`             | path | string          | yes      | Slug is the venture handle from the URL path.                                                                                          |
| `action`           | body | string          | —        | Action is the lifecycle operation to perform: pause, resume, advance, form, export, sync, offboard, assign\_member, or revoke\_member. |
| `failedRuns`       | body | integer (int64) | —        | FailedRuns optionally updates the count of failed runs requiring attention.                                                            |
| `formationId`      | body | string          | —        | FormationID optionally records the /v1/company formation identifier when action is "form".                                             |
| `latestEvidence`   | body | string          | —        | LatestEvidence optionally records a new evidence citation or URI on the venture.                                                       |
| `member`           | body | string          | —        | Member names the teammate subject to assign or revoke when action is "assign\_member" or "revoke\_member".                             |
| `pendingDecisions` | body | integer (int64) | —        | PendingDecisions optionally updates the count of decisions waiting on human review.                                                    |
| `slug`             | body | string          | —        | Slug is the venture handle from the URL path.                                                                                          |
| `spendMicroUSD`    | body | integer (int64) | —        | SpendMicroUSD optionally adds or updates recorded venture spend in integer micro-USD.                                                  |
| `stage`            | body | string          | —        | Stage optionally updates the venture's funnel stage (intake, discovery, validation, formation, scaling).                               |
| `teamSeeded`       | body | boolean         | —        | TeamSeeded optionally marks the venture's agent roster checkpoint complete.                                                            |

## Response

| Status    | Body                      | Meaning |
| --------- | ------------------------- | ------- |
| `200`     | guide.ventureLifecycleOut | ok      |
| `default` | problem-details           | refused |

`200` body — 70 fields.

| Field                            | In   | Type                      | Always | Description                                                                                                                                                                   |
| -------------------------------- | ---- | ------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `export`                         | body | guide.ventureExportBundle | —      |                                                                                                                                                                               |
| `export.actions`                 | body | guide.ActionRecord\[]     | —      | Actions are the Business AI action ledger rows recorded inside the venture's isolated store.                                                                                  |
| `export.actions[].args`          | body | string                    | —      | Args is the JSON the tool was called with, recorded as TEXT exactly as sent — including whatever the AI drafted into it — so a run can be read back and reproduced.           |
| `export.actions[].createdAt`     | body | integer (int64)           | —      | CreatedAt is when the run was recorded, as Unix seconds.                                                                                                                      |
| `export.actions[].err`           | body | string                    | —      | Err is why the run failed, when it did.                                                                                                                                       |
| `export.actions[].id`            | body | string                    | —      | ID identifies this one execution.                                                                                                                                             |
| `export.actions[].ok`            | body | boolean                   | —      | OK is whether the tool ran to completion.                                                                                                                                     |
| `export.actions[].result`        | body | string                    | —      | Result is the tool's own answer, likewise recorded as JSON text.                                                                                                              |
| `export.actions[].stepId`        | body | string                    | —      | StepID is the checklist step the Business AI was acting on.                                                                                                                   |
| `export.actions[].tool`          | body | string                    | —      | Tool is the MCP tool that was dispatched, by name.                                                                                                                            |
| `export.playbookVersion`         | body | string                    | —      | PlaybookVersion is the enrolled curriculum version at export time.                                                                                                            |
| `export.steps`                   | body | guide.stepView\[]         | —      | Steps are the venture's checklist steps with their recorded states at export time.                                                                                            |
| `export.steps[].args`            | body | object                    | —      | Args are the tool's default arguments, merged under whatever the caller passes at run time.                                                                                   |
| `export.steps[].args.*`          | body | any                       | —      |                                                                                                                                                                               |
| `export.steps[].automatable`     | body | boolean                   | —      | Automatable is true when the Business AI can run this step (it names a tool).                                                                                                 |
| `export.steps[].available`       | body | boolean                   | —      | Available is true when every dependency is done or skipped.                                                                                                                   |
| `export.steps[].blockedBy`       | body | string\[]                 | —      | BlockedBy lists the unfinished dependencies keeping the step unavailable.                                                                                                     |
| `export.steps[].deps`            | body | string\[]                 | —      | Dependencies are step ids that must be done/skipped before this step is available.                                                                                            |
| `export.steps[].detail`          | body | string                    | —      | Detail is the prose/juncture — what the Guide asks or explains here.                                                                                                          |
| `export.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.                                                     |
| `export.steps[].draftInto`       | body | string                    | —      | DraftInto names the argument the drafted text lands in.                                                                                                                       |
| `export.steps[].enabled`         | body | boolean                   | —      | Enabled is the admin on/off lever; absent reads as enabled.                                                                                                                   |
| `export.steps[].id`              | body | string                    | —      | ID is the step's id, as it appears in the journey (e.g. "gsuite").                                                                                                            |
| `export.steps[].section`         | body | string                    | —      | Section is the phase (section id) this step groups under.                                                                                                                     |
| `export.steps[].signal`          | body | string                    | —      | Signal names the machine detector that auto-marks this step done.                                                                                                             |
| `export.steps[].source`          | body | string                    | —      | Source records what marked the state: manual, auto (detected) or agent.                                                                                                       |
| `export.steps[].state`           | body | string                    | —      | State is the step's per-org lifecycle state: todo\|in\_progress\|done\|skipped.                                                                                               |
| `export.steps[].title`           | body | string                    | —      | Title is the one-line quest as a person reads it in the checklist.                                                                                                            |
| `export.steps[].tool`            | body | string                    | —      | Tool is the MCP tool the Business AI runs for "do it for me".                                                                                                                 |
| `export.ventureOrg`              | body | string                    | —      | VentureOrg is the isolated venture organization identifier.                                                                                                                   |
| `venture`                        | body | guide.VentureRecord       | —      |                                                                                                                                                                               |
| `venture.createdAt`              | body | integer (int64)           | —      | CreatedAt is when the venture was first registered in the portfolio, as Unix seconds.                                                                                         |
| `venture.evidence`               | body | string\[]                 | —      | Evidence lists the source citations and evidence URIs attached to the venture.                                                                                                |
| `venture.failedRuns`             | body | integer (int64)           | —      | FailedRuns is how many specialist or automation runs have failed and await retry or review.                                                                                   |
| `venture.formationId`            | body | string                    | —      | FormationID is the legal entity formation identifier from /v1/company once the venture advances to formation.                                                                 |
| `venture.imported`               | body | boolean                   | —      | Imported is true when the venture was imported into the studio rather than started from scratch.                                                                              |
| `venture.initialBudgetMicroUSD`  | body | integer (int64)           | —      | InitialBudgetMicroUSD is the initial venture budget in integer micro-USD, allocated at creation.                                                                              |
| `venture.latestEvidence`         | body | string                    | —      | LatestEvidence is the most recently recorded evidence citation or URI for this venture.                                                                                       |
| `venture.members`                | body | string\[]                 | —      | Members lists the teammate subjects explicitly assigned access to this venture.                                                                                               |
| `venture.owner`                  | body | string                    | —      | Owner is the venture lead (person or lead agent handle) accountable for executing the playbook.                                                                               |
| `venture.pendingDecisions`       | body | integer (int64)           | —      | PendingDecisions is how many research decisions, role proposals, or external actions await human approval.                                                                    |
| `venture.playbookVersion`        | body | string                    | —      | PlaybookVersion is the version string of the Guide curriculum enrolled for this venture.                                                                                      |
| `venture.progress`               | body | guide.progressView        | —      |                                                                                                                                                                               |
| `venture.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.                                                |
| `venture.progress.next`          | body | string                    | —      | Next is the id of the step to do next: the first available, unfinished step in authoring order.                                                                               |
| `venture.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.                                                                     |
| `venture.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. |
| `venture.resumed`                | body | boolean                   | —      | Resumed is true when a repeated or interrupted create call resumed an existing venture without duplicating budget or team.                                                    |
| `venture.setup`                  | body | guide.VentureSetupState   | —      |                                                                                                                                                                               |
| `venture.setup.budgetAllocated`  | body | boolean                   | —      | BudgetAllocated is true once the initial micro-USD budget has been committed, preventing duplicate allocation.                                                                |
| `venture.setup.members`          | body | string\[]                 | —      | Members lists the teammate subjects explicitly assigned access to this venture.                                                                                               |
| `venture.setup.orgProvisioned`   | body | boolean                   | —      | OrgProvisioned is true once the venture's isolated organization store has been opened.                                                                                        |
| `venture.setup.playbookEnrolled` | body | boolean                   | —      | PlaybookEnrolled is true once the versioned curriculum has been persisted in the venture's store.                                                                             |
| `venture.setup.revokedMembers`   | body | string\[]                 | —      | RevokedMembers lists teammate subjects whose seat access to this venture has been revoked.                                                                                    |
| `venture.setup.teamSeeded`       | body | boolean                   | —      | TeamSeeded is true once the venture's team roster has been enrolled.                                                                                                          |
| `venture.slug`                   | body | string                    | —      | Slug is the venture's unique handle inside the studio portfolio.                                                                                                              |
| `venture.spendMicroUSD`          | body | integer (int64)           | —      | SpendMicroUSD is the cumulative spend recorded against this venture in integer micro-USD.                                                                                     |
| `venture.sponsor`                | body | string                    | —      | Sponsor is the studio partner or executive sponsoring the venture.                                                                                                            |
| `venture.stage`                  | body | string                    | —      | Stage is the venture's position in the studio funnel: intake, discovery, validation, formation, or scaling.                                                                   |
| `venture.status`                 | body | string                    | —      | Status is the venture's operating state: active, paused, forming, formed, or offboarded.                                                                                      |
| `venture.studioOrg`              | body | string                    | —      | StudioOrg is the parent studio organization operating the portfolio.                                                                                                          |
| `venture.templates`              | body | guide.Page\[]             | —      | Templates are the shared studio templates from the playbook visible in this venture.                                                                                          |
| `venture.templates[].body`       | body | string                    | —      | Body is the reusable prompt or snippet itself.                                                                                                                                |
| `venture.templates[].enabled`    | body | boolean                   | —      | Enabled is the admin lever.                                                                                                                                                   |
| `venture.templates[].id`         | body | string                    | —      | ID is the slug a step references to pull this template in.                                                                                                                    |
| `venture.templates[].title`      | body | string                    | —      | Title names the template in the authoring plane and in a picker.                                                                                                              |
| `venture.thesis`                 | body | string                    | —      | Thesis is the falsifiable venture hypothesis being tested before entity formation.                                                                                            |
| `venture.title`                  | body | string                    | —      | Title is the human-readable name of the venture.                                                                                                                              |
| `venture.updatedAt`              | body | integer (int64)           | —      | UpdatedAt is when the venture record was last updated, as Unix seconds.                                                                                                       |
| `venture.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](https://docs.hanzo.ai/docs/errors).

## Examples

**CLI**

```bash
hanzo guide ventures lifecycle <slug>
```

**SDK**

**.ts**

```ts
import { Configuration, GuideApi } from 'hanzoai';

const api = new GuideApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postGuideVenturesBySlugLifecycle({ slug: 'slug', action: "<action>", failedRuns: 0 });
```

**.py**

```python
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).post_guide_ventures_by_slug_lifecycle(slug='slug', action="<action>", failed_runs=0)
```

**.go**

```go
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.GuideAPI.PostGuideVenturesBySlugLifecycle(context.Background()).Execute()
if err != nil {
	return err
}
```

**.rs**

```rust
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::post_guide_ventures_by_slug_lifecycle(&cfg, Default::default()).await?;
```

**.java**

```java
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).postGuideVenturesBySlugLifecycle();
```

The method above is the one at the current release of the document. `hanzoai@8.5.914` (npm) and `hanzoai@8.5.914` (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 →](https://docs.hanzo.ai/docs/sdks)

**HTTP**

```bash
curl -X POST https://api.hanzo.ai/v1/guide/ventures/<slug>/lifecycle \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "action": "<action>",
       "failedRuns": 0
     }'
```

**MCP**

MCP reaches **guide** through the `guide` tool, which names its 18 operations with its own verbs — this one among them, under a name only MCP declares. `describe` explains any of them:

```bash
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](https://docs.hanzo.ai/docs/openapi/guide) · [All Hanzo APIs](https://docs.hanzo.ai/docs/openapi) · [Interactive reference](https://docs.hanzo.ai/docs/openapi/reference)
