Try public JSON endpoints, inspect responses, and copy curl or jq examples for restore automation.
Use the current catalog chain ids shown above.
curl -fsS 'https://snapshots.bryanlabs.net/api/v1/chains/cosmoshub-4/snapshots/latest' | jq .curl -fsS 'https://snapshots.bryanlabs.net/api/v1/chains/cosmoshub-4/snapshots/latest?database=pebbledb&include_previous=true' | jq '.data | {height, database_backend, expires_at, previous: (.previous | length)}'CHAIN="cosmoshub-4"
API="https://snapshots.bryanlabs.net/api/v1/chains/$CHAIN/snapshots/latest?database=pebbledb&include_previous=true"
URL="$(curl -fsS "$API" | jq -r '.data.url')"
aria2c -c -x 8 -s 8 -k 1M --file-allocation=none "$URL"curl -fsS 'https://snapshots.bryanlabs.net/api/v1/chains/cosmoshub-4/snapshots' \
| jq '.data[] | select(.isCustom != true) | {height, databaseBackend, size, fileName}'curl -fsS 'https://snapshots.bryanlabs.net/api/v1/chains/cosmoshub-4/snapshots' \
| jq '.data | group_by(.databaseBackend) | map({db: .[0].databaseBackend, count: length, heights: map(.height)})'The latest endpoint returns a short-lived signed URL plus ready-to-run download commands. Refresh the URL before each long automation run.
{
"success": true,
"data": {
"chain_id": "cosmoshub-4",
"height": 123456,
"size": 123456789,
"url": "https://snaps.bryanlabs.net/secure/...",
"expires_at": "2026-06-19T18:00:00.000Z",
"database_backend": "pebbledb",
"latest": {
"file_name": "cosmoshub-4-123456-YYYYMMDD-HHMMSS.tar.zst",
"commands": {
"curl": "curl -L -C - -O ...",
"aria2c": "aria2c -c -x 8 -s 8 -k 1M ..."
}
},
"previous": []
}
}