> ## Documentation Index
> Fetch the complete documentation index at: https://celesto.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SnapshotInfo

> SnapshotInfo reference: read snapshot metadata including ID, backend, artifacts, source VM config, creation time, type, and restore status.

`SnapshotInfo` tells you what Celesto saved for a snapshot and how it can be restored. You receive it from `vm.snapshot(...)` and from snapshot list operations.

## Fields

**snapshot\_id** `string` *required*

Unique snapshot identifier. If you do not provide one, Celesto generates it.

**vm\_id** `string` *required*

Source VM identifier.

**backend** `Literal["firecracker", "qemu", "libkrun"]` *required*

Backend used by the source VM. Public docs focus on Firecracker and QEMU.

**artifacts** `SnapshotArtifacts` *required*

Files Celesto wrote for the snapshot.

**Artifact fields**

**state\_path** `Path | None`

Separate VM state file. Present for Firecracker snapshots. QEMU stores full and diff snapshot state inside the qcow2 disk artifact, so this is `None` for QEMU snapshots.

**memory\_path** `Path | None`

Separate memory dump file. Present for Firecracker snapshots. QEMU stores full and diff snapshot memory inside the qcow2 disk artifact, so this is `None` for QEMU snapshots.

**disk\_path** `Path` *required*

Saved disk artifact. Firecracker writes `disk.ext4`; QEMU writes `disk.qcow2`.

**vm\_config** `VMConfig` *required*

VM configuration captured at snapshot time. Celesto uses it during restore.

**network\_config** `NetworkConfig` *required*

Network configuration captured at snapshot time. Celesto uses it to restore the VM's network identity.

**created\_at** `datetime` *required*

UTC timestamp for when the snapshot was created.

**snapshot\_type** `SnapshotType` (default: SnapshotType.FULL)

What was saved: `FULL`, `DIFF`, or `DISK`. `DISK` is disk-only on QEMU and restores with a cold boot. On Firecracker, Celesto still captures memory and VM state for every snapshot type.

**restored** `bool` (default: false)

Whether this snapshot has been restored at least once.

**restored\_vm\_id** `string | None` (default: None)

VM ID of the most recently restored instance, if any.

## Usage

### Creating a snapshot

```python theme={null}
from celesto import Celesto

vm = Celesto()
vm.start()

snapshot = vm.snapshot(snapshot_id="my-checkpoint")
print(snapshot.snapshot_id)
print(snapshot.backend)
print(snapshot.artifacts.disk_path)

vm.close()
```

### Listing snapshots

```python theme={null}
from celesto import CelestoManager

with CelestoManager() as sdk:
    snapshots = sdk.list_snapshots()
    for snap in snapshots:
        status = "restored" if snap.restored else "available"
        print(f"{snap.snapshot_id} ({status}) from {snap.vm_id}")
```

### Restoring from a snapshot

```python theme={null}
from celesto import Celesto

vm = Celesto.from_snapshot("my-checkpoint", resume_vm=True)
print(vm.vm_id)
print(vm.status)

vm.close()
```

## Related

* [`Celesto.snapshot()`](https://celesto.ai/docs/celesto/api/celesto#snapshot) — Create a snapshot from a running VM
* [`Celesto.from_snapshot()`](https://celesto.ai/docs/celesto/api/celesto#from_snapshot) — Restore a VM from a snapshot
* [Snapshots guide](https://celesto.ai/docs/celesto/features/snapshots.md) — Step-by-step guide to using snapshots
* [Exceptions](https://celesto.ai/docs/celesto/api/exceptions.md) — `SnapshotAlreadyExistsError` and `SnapshotNotFoundError`


## Related topics

- [Snapshot and restore Celesto sandboxes](https://celesto.ai/docs/celesto/features/snapshots.md)
- [Custom Sandbox Images with Docker](https://celesto.ai/docs/celesto/guides/custom-images.md)
- [VMInfo](https://celesto.ai/docs/celesto/api/vminfo.md)
- [celesto sandbox snapshot](https://celesto.ai/docs/celesto/cli/snapshot.md)
- [Troubleshooting guide](https://celesto.ai/docs/celesto/advanced/troubleshooting.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.