curl -X PUT 'https://stream.tonbo.dev/ds/demo/hello/snapshot/000000000000002a' \
-H 'Content-Type: application/json' \
--data-binary '{"state": "aggregated snapshot data"}'
Bootstrap & Snapshots
Publish snapshot
Upload a snapshot blob at a specific stream offset.
PUT
/
ds
/
{bucket}
/
{stream}
/
snapshot
/
{offset}
curl -X PUT 'https://stream.tonbo.dev/ds/demo/hello/snapshot/000000000000002a' \
-H 'Content-Type: application/json' \
--data-binary '{"state": "aggregated snapshot data"}'
Publishes a new snapshot blob at the given offset. The snapshot replaces any previously published snapshot and enables cold storage cleanup of data before this offset.
Response headers include
string
required
Bucket ID.
string
required
Stream ID.
string
required
The stream offset this snapshot represents.
string
Content type of the snapshot blob. Defaults to
application/octet-stream.binary
required
The snapshot blob bytes. Maximum size is enforced by the server.
Response
| Status | Meaning |
|---|---|
204 | Snapshot published successfully. |
400 | Invalid offset or content type. |
404 | Stream not found or expired. |
409 | Stale publish (a newer snapshot exists) or offset out of range. |
410 | Snapshot offset is too old (data already garbage-collected). |
413 | Snapshot body exceeds the maximum allowed size. |
Stream-Next-Offset and Stream-Snapshot-Offset.
curl -X PUT 'https://stream.tonbo.dev/ds/demo/hello/snapshot/000000000000002a' \
-H 'Content-Type: application/json' \
--data-binary '{"state": "aggregated snapshot data"}'
Delete snapshot
DELETE /ds/{bucket}/{stream}/snapshot/{offset}
Attempting to delete the current visible snapshot is not allowed.
| Status | Meaning |
|---|---|
404 | No snapshot at the given offset. |
409 | Cannot delete the current snapshot. |
Snapshots are immutable once published. Each publish creates a new blob with a unique key, so retries cannot overwrite a committed snapshot. After a snapshot is committed, cold storage chunks before the snapshot offset are automatically cleaned up.

