Pular para o conteúdo principal
POST
/
v2
/
databases
/
{database_id}
/
snapshots
Criar Snapshot
curl --request POST \
  --url https://api.squarecloud.app/v2/databases/{database_id}/snapshots \
  --header 'Authorization: <authorization>'
{
  "status":"success",
  "response":{
    "url":"https://snapshots.squarecloud.app/databases/384443501775028242/a14b8d5e1cb7405a851eb4c075506121.zip?AWSAccessKeyId=accesskey&Expires=1757683751&Signature=JR3danhvtVywQmcaIanWsoJFqhQ%3D",
    "key":"AWSAccessKeyId=accesskey&Expires=1757683751&Signature=JR3danhvtVywQmcaIanWsoJFqhQ%3D"
  }
}
Cada conta pode executar até (RAM / 256) * 2 snapshots a cada 24 horas.
Authorization
string
obrigatório
A chave da API para sua conta. Você pode encontrá-la nas configurações da conta.

Path

database_id
string
obrigatório
O ID do banco de dados.

Comportamento de prazo flexível (soft deadline)

Esta rota segue um modelo de prazo flexível (soft deadline) — ela não responde mais sempre de forma síncrona.
  • Se o snapshot terminar em até ~90 segundos, a rota responde com 200 success e uma URL de download assinada (válida por 30 dias), exatamente como antes.
  • Se o snapshot levar mais de ~90 segundos para ser gerado, a rota responde imediatamente com 202 e o código SNAPSHOT_PROCESSING. Isso não é uma falha. O snapshot continua sendo gerado em segundo plano e aparecerá sozinho na listagem de snapshots, normalmente em até ~2 minutos. Esse é o comportamento esperado para bancos de dados grandes.
Não use este endpoint POST como mecanismo de polling. Para verificar se um snapshot em SNAPSHOT_PROCESSING foi concluído, use o endpoint Listar Snapshots (GET) — e não outro POST. Repetir o POST depois que o snapshot terminar inicia um snapshot completamente novo do zero.
O cliente deve tratar a resposta da seguinte forma:
RespostaSignificadoO que fazer
status === "success"O snapshot está pronto.Use a url para baixá-lo.
status === "error" e code === "SNAPSHOT_PROCESSING"O snapshot ainda está sendo gerado.Aguarde ~2 minutos e confirme via Listar Snapshots (GET). Não repita o POST.
status === "error" com qualquer outro codeFalha real.Trate o erro (veja abaixo).

Response

status
string
Indica se a chamada foi bem-sucedida. success se bem-sucedida, error se não.
response
object
O conteúdo da resposta. Presente apenas quando status é success.
SNAPSHOT_PROCESSING
202
Retornado quando o snapshot ultrapassa o prazo flexível de ~90 segundos. O snapshot continua sendo gerado em segundo plano e aparecerá sozinho na listagem de snapshots, normalmente em até ~2 minutos. Não é um erro — aguarde e confirme via o endpoint de listagem GET.

Erros

Uma requisição de snapshot pode ser rejeitada com 429 Too Many Requests. Use o campo code para distinguir os dois casos:
KEEP_CALM
429
Cooldown de curto prazo — você atingiu o limite por usuário (1 requisição / 5s) ou por banco de dados (1 requisição / 180s). Aguarde um instante e tente novamente.
DAILY_SNAPSHOTS_LIMIT_REACHED
429
Cota diária atingida — a conta esgotou o limite diário de snapshots do plano ((RAM / 256) × 2 por 24h). A cota é renovada conforme a janela de 24 horas avança; para um limite diário maior, faça upgrade do plano.
{
  "status":"success",
  "response":{
    "url":"https://snapshots.squarecloud.app/databases/384443501775028242/a14b8d5e1cb7405a851eb4c075506121.zip?AWSAccessKeyId=accesskey&Expires=1757683751&Signature=JR3danhvtVywQmcaIanWsoJFqhQ%3D",
    "key":"AWSAccessKeyId=accesskey&Expires=1757683751&Signature=JR3danhvtVywQmcaIanWsoJFqhQ%3D"
  }
}