Appearance
Snapshots API
All endpoints need a bearer token:
http
Authorization: Bearer <jwt-or-apikey>A snapshot is an on-node, point-in-time image of a pod that restores in place. If you want a copy that restores as a separate new pod, you want backups instead. The difference is explained in Snapshots vs backups.
The snapshot object
json
{
"id": "...",
"name": "auto-2026-07-17",
"podId": "...",
"type": "manual",
"status": "completed",
"createdAt": "2026-07-17T03:00:00Z"
}type is manual or auto. status is pending, completed, or failed. A failed snapshot may also carry an error string.
List snapshots for a pod
http
GET /api/pods/:id/snapshotsReturns a plain array of snapshots (manual and auto), newest first.
Create a manual snapshot
http
POST /api/pods/:id/snapshotsNo body. Needs at least $3 of account credit like other creates (402 otherwise). Response 202 with the new snapshot in pending status - it finishes in the background.
bash
curl -X POST https://cloud-api.microapps.io/api/pods/$POD_ID/snapshots \
-H "Authorization: Bearer $TOKEN"By default you can keep 4 manual snapshots per pod - one slot of your per-pod allowance is always reserved for the auto schedule. Your account's actual allowance is on GET /api/user/account (maxSnapshotsPerPod). At the limit you get 400 - delete one first.
Restore from a snapshot
http
POST /api/pods/:id/snapshots/:snapId/restoreNo body. Response 202:
json
{ "message": "Snapshot restore started" }The pod rolls back in place and moves through Restoring while it happens. Two rules:
- The pod must be Running or Stopped. (No need to stop it yourself first - restore handles that.)
- The snapshot must be completed. You can't restore one that's still
pendingorfailed.
When the restore finishes, the pod is left Stopped - start it again when you're ready.
Restoring is destructive
Anything written after the snapshot was taken is gone. Want to keep the current state too? Take a manual snapshot first, then restore.
Delete a snapshot
http
DELETE /api/pods/:id/snapshots/:snapIdResponse 200 ({"message":"Snapshot deleted"}). Immediate and irreversible.
Set the auto snapshot schedule
http
PUT /api/pods/:id/snapshot-schedulejson
{ "schedule": "daily" }schedule is one of:
| Value | Meaning |
|---|---|
"" | Disabled - no automatic snapshots. |
"daily" | Every day at 3:00 AM UTC. |
"weekly" | Every Sunday at 3:00 AM UTC. |
"monthly" | The 1st of every month at 3:00 AM UTC. |
bash
curl -X PUT https://cloud-api.microapps.io/api/pods/$POD_ID/snapshot-schedule \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"schedule":"daily"}'The auto snapshot uses its own reserved slot. Each scheduled run rotates out the previous auto snapshot, so the slot always holds the latest one. Your manual snapshots are never touched by the schedule.
See also
- Snapshots concept
- Backups API - the restore-as-a-new-pod cousin
- Snapshots & backups guide