# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Flora.ai Canvas API version: 1.0.0 extends: openapi/flora-fauna-canvas-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-10-01' generator: build-phrasing.py label: Generated by API Evangelist operations: 4 - target: $.paths['/projects/{projectId}/actions'].post update: x-apievangelist-phrasing: intent: Add a prebuilt action node to a canvas effect: write questions: - How do I place a prebuilt action like rotate-image onto my project canvas? - Can I preset parameters on an action node when adding it to the canvas? instructions: - text: Add action {action_id} as a node on project {projectId}'s canvas. slots: action_id: requestBody.action_id projectId: path.projectId - text: Create a {action_id} action node in project {projectId} with params {params}. slots: action_id: requestBody.action_id projectId: path.projectId params: requestBody.params method: generated generated: '2026-10-01' - target: $.paths['/projects/{projectId}/actions/{nodeId}/run'].post update: x-apievangelist-phrasing: intent: Run an action node already on a canvas effect: write questions: - How do I execute an action node that's already sitting on my canvas? - Can I trigger a canvas action node through the API instead of the editor? instructions: - text: Run action node {nodeId} on project {projectId}'s canvas. slots: nodeId: path.nodeId projectId: path.projectId - text: Execute canvas node {nodeId} in project {projectId}. slots: nodeId: path.nodeId projectId: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/projects/{projectId}/nodes'].get update: x-apievangelist-phrasing: intent: List media nodes on a project canvas effect: read questions: - Which images and videos are currently on a project's canvas? - Can I page through the media nodes on a canvas without getting the raw graph data? instructions: - text: List the media nodes on project {projectId}'s canvas. slots: projectId: path.projectId - text: Show {limit} canvas nodes from project {projectId}. slots: limit: query.limit projectId: path.projectId method: generated generated: '2026-10-01' - target: $.paths['/projects/{projectId}/assets/{assetId}/attach'].post update: x-apievangelist-phrasing: intent: Place an existing asset on a canvas effect: write questions: - How do I put an asset I've already uploaded onto a project canvas? - Does an asset have to be ready before it can be attached to a canvas as a media node? instructions: - text: Attach asset {assetId} to project {projectId}'s canvas. slots: assetId: path.assetId projectId: path.projectId - text: Drop asset {assetId} onto the canvas of {projectId} as a static media node. slots: assetId: path.assetId projectId: path.projectId method: generated generated: '2026-10-01'