Skip to content

Checkpoints API

Checkpoints capture your Sprite’s complete filesystem state for instant rollback. They’re live snapshots—creation takes milliseconds with no interruption to running processes.

Use checkpoints before risky operations, to create reproducible environments, or to share known-good states across a team. Copy-on-write storage keeps incremental checkpoints small; you only store what changed.

POST/v1/sprites/{name}/checkpoint

Create a new checkpoint of the current sprite state. Returns streaming NDJSON progress.

Request Body

comment:optionalstring
StatusDescription
200Success - Streaming NDJSON response
404Not Found - Resource not found
500Internal Server Error

This endpoint returns streaming NDJSON. Each line is one of these event types:

FieldTypeDescription
typestring(const: "info")
datastringStatus message
timestring (ISO 8601)Timestamp
{"data":"Creating checkpoint...","time":"2026-01-05T10:30:00Z","type":"info"}
FieldTypeDescription
typestring(const: "error")
errorstringError description
timestring (ISO 8601)Timestamp
{"error":"Checkpoint failed: disk full","time":"2026-01-05T10:30:00Z","type":"error"}
FieldTypeDescription
typestring(const: "complete")
datastringCompletion message
timestring (ISO 8601)Timestamp
{"data":"Checkpoint v3 created successfully","time":"2026-01-05T10:30:00Z","type":"complete"}
Request
Response
[
{
"data": "Creating checkpoint...",
"time": "2026-01-05T10:30:00Z",
"type": "info"
},
{
"data": "Stopping services...",
"time": "2026-01-05T10:30:00Z",
"type": "info"
},
{
"data": "Saving filesystem state...",
"time": "2026-01-05T10:30:00Z",
"type": "info"
},
{
"data": "Checkpoint v8 created",
"time": "2026-01-05T10:30:00Z",
"type": "complete"
}
]

GET/v1/sprites/{name}/checkpoints

List all checkpoints.

StatusDescription
200Success
404Not Found - Resource not found
500Internal Server Error
Request
Response
[
{
"comment": "Before database migration",
"create_time": "2026-01-05T10:30:00Z",
"id": "v7"
},
{
"comment": "Stable state",
"create_time": "2026-01-04T15:00:00Z",
"id": "v6"
},
{
"comment": "",
"create_time": "2026-01-04T09:00:00Z",
"id": "v5"
}
]

GET/v1/sprites/{name}/checkpoints/{checkpoint_id}

Get details of a specific checkpoint.

StatusDescription
200Success
404Not Found - Resource not found
500Internal Server Error
Request
Response
{
"comment": "Before database migration",
"create_time": "2026-01-05T10:30:00Z",
"id": "v7"
}

POST/v1/sprites/{name}/checkpoints/{checkpoint_id}/restore

Restore to a specific checkpoint. Returns streaming NDJSON progress.

StatusDescription
200Success - Streaming NDJSON response
404Not Found - Resource not found
500Internal Server Error

This endpoint returns streaming NDJSON. Each line is one of these event types:

FieldTypeDescription
typestring(const: "info")
datastringStatus message
timestring (ISO 8601)Timestamp
{"data":"Creating checkpoint...","time":"2026-01-05T10:30:00Z","type":"info"}
FieldTypeDescription
typestring(const: "error")
errorstringError description
timestring (ISO 8601)Timestamp
{"error":"Checkpoint failed: disk full","time":"2026-01-05T10:30:00Z","type":"error"}
FieldTypeDescription
typestring(const: "complete")
datastringCompletion message
timestring (ISO 8601)Timestamp
{"data":"Checkpoint v3 created successfully","time":"2026-01-05T10:30:00Z","type":"complete"}
Request
Response
[
{
"data": "Restoring to checkpoint v5...",
"time": "2026-01-05T10:30:00Z",
"type": "info"
},
{
"data": "Stopping services...",
"time": "2026-01-05T10:30:00Z",
"type": "info"
},
{
"data": "Restoring filesystem...",
"time": "2026-01-05T10:30:00Z",
"type": "info"
},
{
"data": "Restored to v5",
"time": "2026-01-05T10:30:00Z",
"type": "complete"
}
]