---
title: "Recent scheduled/on-demand backups (newest first), each with its copy in backup storage and whether it can be downloaded and restored"
method: GET
path: "/databases/{databaseId}/backups/executions"
tags: ["Databases"]
---

# Recent scheduled/on-demand backups (newest first), each with its copy in backup storage and whether it can be downloaded and restored

`GET /databases/{databaseId}/backups/executions`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/databases/{databaseId}/backups/executions`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

## Path parameters

- `databaseId` string, uuid, required

## Query parameters

- `limit` integer

## Response `200`

Executions

- object
  - `items` object[], required
    - `id` string, required
    - `status` 'success' | 'failed' | 'running', required
    - `filename` string, nullable, required
    - `sizeBytes` integer, nullable, required
    - `createdAt` string, nullable, required: ISO-8601 timestamp
    - `message` string, required
    - `format` 'postgresql' | 'sql' | 'mongodb' | 'null', nullable, required: the dump format; null when the run left no dump of this database
    - `copy` 'stored' | 'missing' | 'failed' | 'unavailable', required: the copy in backup storage that downloads and restores use: stored; missing (made before copies were turned on, or already past the copies' retention); failed (the engine could not upload it); unavailable (no dump, or backup copies are not configured on this server)
    - `check` 'complete' | 'empty' | 'truncated' | 'invalid' | 'unknown' | 'null', nullable, required: the last completeness check of the copy; null = not checked yet (a download or restore checks it first). empty, truncated and invalid copies are refused; unknown ones can be downloaded but not restored
    - `tables` integer, nullable, required: tables in the dump, when the check counted them
    - `downloadable` boolean, required: POST /databases/{id}/backups/download can hand out this backup
    - `restorable` boolean, required: POST /databases/{id}/backups/restore can restore it (PostgreSQL, MySQL and MariaDB)

## Other responses

- `400`: Invalid request (code invalid_request)
- `401`: Missing or invalid session/token (code unauthorized)
- `403`: Authenticated but not permitted (code forbidden)
- `404`: Not found or not visible to the caller (code not_found)
- `409`: Conflicting state (code conflict)
- `429`: Too many requests (code rate_limited); see Retry-After
- `503`: Hosting engine unavailable (code provider_unavailable)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
