Skip to content

Canvas versioning

Every time a canvas’s content is updated, CanvasMesh creates a new version. The canvas_id and public URL stay the same; only the rendered content changes.

Terminal window
curl https://api.canvasmesh.app/v1/canvases/cv_abc123/versions \
-H "Authorization: Bearer $CANVASMESH_API_KEY"

Response:

{
"versions": [
{ "version": 3, "size": 4211, "created_at": "2026-04-20T12:30:00Z" },
{ "version": 2, "size": 4102, "created_at": "2026-04-19T08:10:00Z" },
{ "version": 1, "size": 3988, "created_at": "2026-04-18T14:00:00Z" }
]
}
Terminal window
curl -L https://api.canvasmesh.app/v1/canvases/cv_abc123/versions/2 \
-H "Authorization: Bearer $CANVASMESH_API_KEY" \
-o version-2.file

The endpoint responds with a 302 redirect to a signed R2 URL. Use -L with curl to follow it.

Terminal window
canvasmesh pull cv_abc123 --version 2 -o ./v2.file

Rollback = create a new version whose content matches an older version. Fetch the old content and push it back:

Terminal window
canvasmesh pull cv_abc123 --version 2 -o /tmp/rollback.md
canvasmesh push /tmp/rollback.md --id cv_abc123

Version 4 is now a copy of version 2’s content. Older versions remain accessible.

All versions are retained for the life of the canvas. Deleting the canvas removes all versions.