Boards and Elements

CRUD endpoints for boards and the elements inside them.

Boards

MethodPathPurpose
GET/api/moodboardsList all boards
POST/api/moodboardsCreate a board ({ "name": "…" })
GET/api/moodboards/{id}Get one board with metadata
PUT/api/moodboards/{id}Update board (name, parent, etc.)
DELETE/api/moodboards/{id}Delete board and its media folder
POST/api/moodboards/{id}/duplicateDuplicate to a new board
GET/api/moodboards/currentGet the current/active board ({ "id", "board" }, or null when none)
PUT/api/moodboards/currentSet the current board ({ "id": "…" }; null/empty clears it)

The current board is a backend-wide pointer to the board in focus, used by integrations that need to know which board to act on without being told each time. Setting it to an unknown id returns 404; the returned board includes "is_current": true.

Board object

{
  "id": "abc123…",
  "name": "Characters",
  "created_at": "2026-02-24T11:05:01Z",
  "updated_at": "2026-05-30T19:36:54Z",
  "canvas_transform": "{\"x\":0,\"y\":0,\"scale\":1}",
  "parent_id": null,
  "sort_order": 0,
  "share_id": null,
  "share_url": null,
  "connected_media_dir": null,
  "active_video_project_id": null
}

Elements

MethodPathPurpose
GET/api/moodboards/{id}/elementsList elements on a board
POST/api/moodboards/{id}/elementsCreate an element
PUT/api/moodboards/{id}/elements/{eid}Update (position, scale, props)
DELETE/api/moodboards/{id}/elements/{eid}Delete element

Element types

  • image
  • video
  • note
  • frame
  • shape
  • arrow
  • mockup
  • html — a live HTML card; the HTML body is stored as a file referenced by data.htmlUrl (a /media/… path) with data.htmlVersion and data.title. Animated cards that render to video also carry data.fps, data.durationSeconds, data.renderWidth, and data.renderHeight.

Each type carries type-specific fields in props alongside the universal position / size fields.

Frames

Frames are elements but with extra endpoints for layout management:

MethodPathPurpose
POST/api/moodboards/{id}/framesCreate frame
PUT/api/moodboards/{id}/frames/{fid}/layoutSwitch layout mode
PUT/api/moodboards/{id}/frames/{fid}/childrenReorder children

Arrows

MethodPathPurpose
POST/api/moodboards/{id}/arrowsCreate arrow
PUT/api/moodboards/{id}/arrows/{aid}Update endpoints, style
DELETE/api/moodboards/{id}/arrows/{aid}Delete

Sort and pagination

The list endpoints accept:

  • ?sort=created_at (default) or ?sort=name
  • ?order=asc / ?order=desc
  • ?limit=50&offset=0

Where to go next

Was this helpful?

0

Updated

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *