---
title: "Write one step of a framework"
method: PUT
path: "/v1/storybrand/{uuid}/step/{n}"
tags: ["StoryBrand"]
---

# Write one step of a framework

`PUT /v1/storybrand/{uuid}/step/{n}`

## Request

- Base URL: `https://contentmaschine.ai/api`
- URL: `https://contentmaschine.ai/api/v1/storybrand/{uuid}/step/{n}`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://contentmaschine.ai/api/oauth/authorize`, token URL `https://contentmaschine.ai/api/oauth/token`)

**Text only, no model call and no credit cost.** This is the only way a
non-interactive caller can fill the seven steps: the conversational refine and chat
sub-steps carry session state and are deliberately not on this API.

`n` must be numeric; a non-numeric step segment is a 404 from the router and never
reaches the handler.

## Path parameters

- `uuid` string, uuid, required
- `n` integer, required

## Request body

- object
  - `content` string, required: The step text.

## Response `200`

The updated step.

- object
  - `success` boolean
  - `data` object
  - `timestamp` string, date-time

## Other responses

- `400`: Missing content, or malformed body.
- `401`: Missing or invalid API key.
- `404`: Unknown framework, not yours, or a step number that does not exist.
- `default`: Any other error. Every failure this API emits uses the same envelope; branch on `error.type`, never on `error.message`, and quote `error.correlation_id` to support.

---

[API](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api.md) · [All operations](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/contentmaschine/apis/contentmaschine-ai-api/revisions/28c74f46051c?raw)
