Skip to content
FLORA DocsGo to app

Create a canvas action

client.projects.actions.create(stringprojectID, ActionCreateParams { action_id, params } body, RequestOptionsoptions?): ActionCreateResponse { action_id, canvas_url, node_id, project_id }
POST/projects/{projectId}/actions

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

ParametersExpand Collapse
projectID: string

Project identifier

body: ActionCreateParams { action_id, params }
action_id: "split-text" | "find-and-replace-text" | "concat-text" | 34 more

Action identifier

One of the following:
"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"
params?: Record<string, unknown>

Action parameters

ReturnsExpand Collapse
ActionCreateResponse { action_id, canvas_url, node_id, project_id }
action_id: "split-text" | "find-and-replace-text" | "concat-text" | 34 more

Action identifier

One of the following:
"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"
canvas_url: string

Project canvas URL

formaturi
node_id: string

Canvas action node identifier

minLength1
project_id: string

Project identifier

Create a canvas action

import FLORA from '@flora-ai/flora';

const client = new FLORA({
  apiKey: process.env['FLORA_API_KEY'], // This is the default and can be omitted
});

const action = await client.projects.actions.create('prj_abc123', { action_id: 'split-text' });

console.log(action.action_id);
{
  "action_id": "split-text",
  "canvas_url": "https://example.com",
  "node_id": "node_abc123",
  "project_id": "prj_abc123"
}
{
  "error": {
    "code": "input_validation_error",
    "message": "prompt: Required",
    "fields": [
      {
        "field": "prompt",
        "message": "Required"
      }
    ]
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Invalid API key."
  }
}
{
  "error": {
    "code": "insufficient_credits",
    "message": "Insufficient credits."
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "Forbidden."
  }
}
{
  "error": {
    "code": "not_found",
    "message": "Not found."
  }
}
{
  "error": {
    "code": "idempotency_duplicate",
    "message": "Duplicate idempotency key."
  }
}
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded."
  }
}
{
  "error": {
    "code": "unknown_error",
    "message": "An unknown error occurred."
  }
}
Returns Examples
{
  "action_id": "split-text",
  "canvas_url": "https://example.com",
  "node_id": "node_abc123",
  "project_id": "prj_abc123"
}
{
  "error": {
    "code": "input_validation_error",
    "message": "prompt: Required",
    "fields": [
      {
        "field": "prompt",
        "message": "Required"
      }
    ]
  }
}
{
  "error": {
    "code": "unauthorized",
    "message": "Invalid API key."
  }
}
{
  "error": {
    "code": "insufficient_credits",
    "message": "Insufficient credits."
  }
}
{
  "error": {
    "code": "forbidden",
    "message": "Forbidden."
  }
}
{
  "error": {
    "code": "not_found",
    "message": "Not found."
  }
}
{
  "error": {
    "code": "idempotency_duplicate",
    "message": "Duplicate idempotency key."
  }
}
{
  "error": {
    "code": "rate_limited",
    "message": "Rate limit exceeded."
  }
}
{
  "error": {
    "code": "unknown_error",
    "message": "An unknown error occurred."
  }
}