Versions

IcePanel uses a versioning system to let you maintain a live working model while also capturing point-in-time snapshots for communication and history.


The latest version

Every landscape has a special version with the ID latest. This is the live version where you make changes through the IcePanel UI or the API.

Use latest in any version-scoped endpoint:

GET /landscapes/{landscapeId}/versions/latest/model/objects
POST /landscapes/{landscapeId}/versions/latest/model/objects

Version snapshots

A version snapshot is an immutable copy of the model at a point in time. Snapshots are useful for:

  • Marking a release or milestone
  • Sharing a stable view of the architecture with stakeholders
  • Reverting to a known-good state

Create a snapshot from the current state of latest:

POST
/v1/landscapes/:landscapeId/versions
1curl -X POST https://api.icepanel.io/v1/landscapes/landscapeId/versions \
2 -H "X-API-Key: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "modelHandleId": "string",
6 "name": "string",
7 "notes": "string"
8}'

Required fields:

FieldDescription
nameVersion name, e.g. v2.4.0 or Q3 2025
notesDescription of what changed in this version
modelHandleIdThe handleId of the root model object to snapshot

Once created, a snapshot version is read-only. Its ID is a system-generated string (not latest).

List all versions for a landscape:

GET
/v1/landscapes/:landscapeId/versions
1curl https://api.icepanel.io/v1/landscapes/landscapeId/versions \
2 -H "X-API-Key: <apiKey>"

Version reverts

Roll back a landscape to the state captured in a previous snapshot:

POST
/v1/landscapes/:landscapeId/version/reverts
1curl -X POST https://api.icepanel.io/v1/landscapes/landscapeId/version/reverts \
2 -H "X-API-Key: <apiKey>" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "notes": "string",
6 "versionId": "string"
7}'

Required fields:

FieldDescription
versionIdThe snapshot to revert to
notesReason for the revert

A revert creates a new entry in the revert history and replaces the latest version with the snapshot state. The snapshot itself is not modified.