Skip to main content
app.backup / app.backups and the Backup class have been removed. Use app.snapshots (the SnapshotsModule), whose entries are instances of Snapshot (DatabaseSnapshot for database snapshots).
app.snapshots exposes the SnapshotsModule.

Rate limits

  • app.snapshots.list() results are cached server-side for 30 minutes.
  • app.snapshots.create() (and the database equivalent) is limited to 1 request every 5 seconds per user and 1 request every 3 minutes per resource (application or database).
  • Each plan also has a daily snapshot quota. Once it’s exhausted, creation fails with a 429 and code: "DAILY_SNAPSHOTS_LIMIT_REACHED" — distinct from the generic KEEP_CALM short-rate-limit error.

Listing snapshots

app.snapshots.list() returns an array of Snapshot instances.
Each snapshot can be downloaded directly:

Creating a new snapshot

app.snapshots.create() triggers a fresh snapshot and returns the signed URL and key.

Download in one step

app.snapshots.download() creates a snapshot and downloads it as a Buffer.

Restoring from a snapshot

app.snapshots.restore({ snapshotId, versionId }) rolls the application back to a previous snapshot version.

Listing snapshots account-wide

api.user.snapshots(scope?) returns every snapshot you own across all your applications or databases. scope defaults to "applications".
api.user.snapshots() requires an active paid plan. Accounts without one get a 402 with code: "UPGRADE_REQUIRED".