Skip to main content
POST
Create Snapshot
Each account can perform up to (RAM / 256) * 2 snapshots every 24 hours.
Authorization
string
required
The API key for your account. You can find this in your account settings.
Captures a point-in-time backup of the database’s data and uploads it to Square Cloud’s snapshot storage, returning a signed download URL valid for 30 days. Use it before a risky migration, a manual Restore Snapshot, or on a schedule for disaster recovery. Once created, snapshots also show up in List Snapshots.

Parameters

database_id
string
required
The ID of the database.

Soft deadline behavior

This route follows a soft deadline model — it no longer always responds synchronously.
  • If the snapshot finishes within ~90 seconds, the route responds with 200 success and a signed download URL (valid for 30 days), exactly as before.
  • If the snapshot takes longer than ~90 seconds to generate, the route responds immediately with 202 and the code SNAPSHOT_PROCESSING. This is not a failure. The snapshot keeps generating in the background and will appear in the snapshot listing on its own, typically within ~2 minutes. This is expected behavior for large databases.
Do not use this POST endpoint as a polling mechanism. To check whether a SNAPSHOT_PROCESSING snapshot has completed, use the List Snapshots (GET) endpoint — not another POST. Re-posting after the snapshot has finished starts a brand-new snapshot from scratch.
The client should branch on the response as follows:

Response

status
string
Indicates whether the call was successful.. success if successful, error if not.
response
object
The contents of the response. Present only when status is success.
SNAPSHOT_PROCESSING
202
Returned when the snapshot exceeds the ~90 second soft deadline. The snapshot is still being generated in the background and will appear in the snapshot listing on its own, typically within ~2 minutes. Not an error — wait and confirm via the GET listing endpoint.

Errors

A snapshot request can be rejected with 429 Too Many Requests. Use the code field to tell the two cases apart:
KEEP_CALM
429
Short-term cooldown — you hit the per-user (1 request / 5s) or per-database (1 request / 180s) limit. Back off and retry shortly.
DAILY_SNAPSHOTS_LIMIT_REACHED
429
Daily quota reached — the account used up its plan’s daily snapshot allowance ((RAM / 256) × 2 per 24h). The quota frees up as the rolling 24-hour window advances; for a higher daily allowance, upgrade the plan.