You can take a snapshot of all the virtual machines in a vApp. After the snapshots are taken, you can revert all virtual machines in the vApp to the most recent snapshot, or remove all snapshots.

You can take a snapshot of a vApp whether or not it is powered on. The createSnapshot operation always creates a snapshot for each virtual machine in the vApp. Snapshots are created in the order specified for virtual machines in the StartupSection of the VApp element.

vApp snapshots have the following limitations:

They do not capture the ovf:ProductSection elements in the vApp.

They do not capture NIC configurations.

They cannot be created if any virtual machine in the vApp is connected to an independent disk.

Verify that you are logged in to the vCloud API as a system administrator or the object owner.

Verify that you are logged in as a user whose role includes the vApp: Snapshot Operations right.


(Optional) Retrieve information about current vApp snapshots.

When you create a snapshot, it overwrites any existing snapshots without warning. Before creating a new snapshot, you might want to verify whether there are any existing snapshots. Make a request like this one:


The response is a SnapshotSection element containing a link to each of the current snapshots for the vApp.


Create a CreateSnapshotParams request body.

See Example: Create a vApp Snapshot.


POST the CreateSnapshotParams to the action/createSnapshot link of the vApp.

In this example, the memory and quiesce options are not specified, so their values default to true. The name attribute is optional. If you omit it from the request, the system generates a name for the snapshot.


Content-Type: application/vnd.vmware.vcloud.createSnapshotParams+xml
<?xml version="1.0" encoding="UTF-8"?>
   <Description>Demo snapshot</Description>

The response is a Task.


<?xml version="1.0" encoding="UTF-8"?>
   ... />

After the snapshot is created, you can revert the vApp to the state captured in the snapshot.


You can also remove all snapshots.


Neither of these requests has a request body. Both return a Task.