Skip to content

List project canvas nodes

GET
/projects/{projectId}/nodes
import { FloraClient } from '@flora-ai/flora';
const client = new FloraClient({ apiKey: process.env['FLORA_API_KEY'] });
// Paginated lists are async iterables; further pages are fetched as needed.
for await (const project of await client.projects.listNodes({
projectId: '<projectId>',
})) {
console.log(project);
}

Returns sanitized visible media nodes on a project canvas. The response omits raw graph documents, Liveblocks internals, raw Convex IDs, and unbounded node data blobs.

Error responses use the standard error body.

projectId
required

Project identifier

string
/^prj_\S+$/

Project identifier

limit

Maximum number of results to return

integer
>= 1 <= 100

Maximum number of results to return

cursor

Opaque cursor for fetching the next page

string

Opaque cursor for fetching the next page

Canvas nodes returned.

Media type application/json
object
project_id
required

Project identifier

string
/^prj_\S+$/
canvas_url
required

Project canvas URL

string format: uri
nodes
required
Array<object>
object
node_id
required

Canvas node identifier

string
>= 1 characters
type
required

Canvas node media type

string
Allowed values: image video audio text model3d
label
Any of:

Canvas node label

string
asset_id
Any of:

Asset identifier

string
/^asset_\S+$/
url
Any of:

Canvas node output URL or text content

string
>= 1 characters
width
Any of:
integer
height
Any of:
integer
meta
required
object
next_cursor
required
Any of:

Opaque cursor for fetching the next page

string
total_estimate
Any of:

Estimated total matching items

integer
Example
{
"project_id": "prj_abc123",
"nodes": [
{
"node_id": "node_abc123",
"type": "image",
"label": "Logo",
"asset_id": "asset_abc123",
"url": "https://media.flora.ai/output.png"
}
],
"meta": {
"next_cursor": "eyJvZmZzZXQiOjIwfQ"
}
}