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.
List versions
Section titled “List versions”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" } ]}Download a specific version
Section titled “Download a specific version”curl -L https://api.canvasmesh.app/v1/canvases/cv_abc123/versions/2 \ -H "Authorization: Bearer $CANVASMESH_API_KEY" \ -o version-2.fileThe endpoint responds with a 302 redirect to a signed R2 URL. Use -L with curl to follow it.
canvasmesh pull cv_abc123 --version 2 -o ./v2.fileRollback
Section titled “Rollback”Rollback = create a new version whose content matches an older version. Fetch the old content and push it back:
canvasmesh pull cv_abc123 --version 2 -o /tmp/rollback.mdcanvasmesh push /tmp/rollback.md --id cv_abc123Version 4 is now a copy of version 2’s content. Older versions remain accessible.
Retention
Section titled “Retention”All versions are retained for the life of the canvas. Deleting the canvas removes all versions.