---
title: "Create a canvas action"
method: POST
path: "/projects/{projectId}/actions"
tags: ["Canvas"]
---

# Create a canvas action

`POST /projects/{projectId}/actions`

Creates a prebuilt action node on a project canvas using a raw action slug.

## Path parameters

- `projectId` string, required — Project identifier

## Request body

- object
  - `action_id` 'split-text' | 'find-and-replace-text' | 'concat-text' | 'ken-burns-video' | 'color-grade-image' | 'change-image-ar' | 'rotate-image' | 'flip-image' | 'color-filter-image' | 'color-tint-image' | 'filter-color-image' | 'blur-image' | 'duplicate-image' | 'side-by-side-composite' | 'add-shape-to-image' | 'generate-shape-image' | 'add-text-to-image' | 'generate-text-image' | 'qr-code-generator' | 'stitch-videos' | 'split-video' | 'extract-video-frames' | 'color-grade-video' | 'video-to-frame-grid' | 'boomerang-video' | 'reverse-video' | 'video-to-long-exposure' | 'video-effect' | 'color-filter-video' | 'speed-up-video' | 'slow-down-video' | 'duplicate-video' | 'greenscreen-video' | 'resize-video' | 'change-video-ar' | 'split-audio-from-video' | 'merge-audio-into-video', required — Action identifier
  - `params` object — Action parameters

## Response `201`

Canvas action created.

- object
  - `project_id` string, required — Project identifier
  - `node_id` string, required — Canvas action node identifier
  - `action_id` 'split-text' | 'find-and-replace-text' | 'concat-text' | 'ken-burns-video' | 'color-grade-image' | 'change-image-ar' | 'rotate-image' | 'flip-image' | 'color-filter-image' | 'color-tint-image' | 'filter-color-image' | 'blur-image' | 'duplicate-image' | 'side-by-side-composite' | 'add-shape-to-image' | 'generate-shape-image' | 'add-text-to-image' | 'generate-text-image' | 'qr-code-generator' | 'stitch-videos' | 'split-video' | 'extract-video-frames' | 'color-grade-video' | 'video-to-frame-grid' | 'boomerang-video' | 'reverse-video' | 'video-to-long-exposure' | 'video-effect' | 'color-filter-video' | 'speed-up-video' | 'slow-down-video' | 'duplicate-video' | 'greenscreen-video' | 'resize-video' | 'change-video-ar' | 'split-audio-from-video' | 'merge-audio-into-video', required — Action identifier
  - `canvas_url` string, uri, required — Project canvas URL

## Other responses

- `400` — 400
- `401` — 401
- `402` — 402
- `403` — 403
- `404` — 404
- `409` — 409
- `429` — 429
- `500` — 500

---

[API](https://skmtc.net/florafauna-ai/apis/flora-ai-api.md) · [All operations](https://skmtc.net/florafauna-ai/apis/flora-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/florafauna-ai/flora-ai-api/versions/2f4a714f8ce9/schema)
