Skip to main content
PATCH
/
v1
/
workspaces
/
{workspace_id}
/
zombies
/
{zombie_id}
Update zombie config or drive its status FSM
curl --request PATCH \
  --url https://api.usezombie.com/v1/workspaces/{workspace_id}/zombies/{zombie_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "config_json": "<string>",
  "trigger_markdown": "<string>",
  "source_markdown": "<string>"
}
'
{
  "zombie_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "config_revision": 123
}

Authorizations

Authorization
string
header
required

Obtain a token via the CLI auth flow (POST /v1/auth/sessions) or GitHub OAuth

Path Parameters

workspace_id
string<uuid>
required

UUIDv7 of the workspace.

zombie_id
string<uuid>
required

UUIDv7 of the zombie.

Body

application/json
config_json
string

The new zombie config as a JSON string. Validated server-side. Mutually exclusive with trigger_markdown.

trigger_markdown
string

The full TRIGGER.md to persist; the server reparses the frontmatter and overlays the x_usezombie.triggers half of config_json. Must be non-empty. Mutually exclusive with config_json.

source_markdown
string

The full SKILL.md to persist; the server reparses the frontmatter and overlays the tools / credentials / network / budget halves of config_json. The reparsed name must match the zombie's current name. Must be non-empty.

status
enum<string>

Target FSM state. active resumes from stopped/paused; stopped halts the running session (resumable); killed is terminal. Note that paused is intentionally not in this enum — it is set only by the platform's anomaly gate.

Available options:
active,
stopped,
killed

Response

OK

zombie_id
string<uuid>
status
enum<string>

Present only when the request body included a status field. Echoes the new status.

Available options:
active,
stopped,
killed
config_revision
integer<int64>