---
title: "Save canvas"
method: PATCH
path: "/workflows/{id}/canvas"
tags: ["Workflows"]
---

# Save canvas

`PATCH /workflows/{id}/canvas`

## Request

- Base URL: `https://workflow.loopfour.ai/api/v1`
- URL: `https://workflow.loopfour.ai/api/v1/workflows/{id}/canvas`
- Auth: API key in header `x-api-key`

Saves the workflow canvas (steps and layout). Creates a new draft version.

## Path parameters

- `id` string, required

## Request body

- object
  - `canvasState` object, required: Canvas blocks, edges, Loop/Parallel membership, and optional viewport.
  - `steps` object[]: Compiled steps; omission leaves saved steps unchanged.
  - `triggerConfig` object: Replacement trigger configuration; omission leaves it unchanged.

## Response `200`

Canvas saved

- object
  - `success` unknown
  - `data` Workflow
    - `id` string
    - `name` string
    - `description` string, nullable
    - `status` 'draft' | 'active' | 'paused' | 'archived'
    - `trigger` object, nullable
      - `type` string
      - `provider` string, nullable
      - `events` string[]
    - `version` number
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400`: Bad request — invalid parameters or request body.
- `401`: Missing or invalid API key.
- `403`: Forbidden — insufficient permissions for this resource.
- `404`: Resource not found.
- `409`: Conflict — resource already exists or state mismatch.

---

[API](https://skmtc.dev/loopfour/apis/loopfour-workflows-api.md) - [All operations](https://skmtc.dev/loopfour/apis/loopfour-workflows-api/llms.txt) - [OpenAPI document](https://skmtc.dev/loopfour/apis/loopfour-workflows-api/revisions/872822a3af00?raw)
