> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sabaothcloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# sabaoth backup list

> List a PostgreSQL service's backups

Lists a service's backups, newest first. Returns one page unless you pass `--all`.

```bash theme={null}
sabaoth backup list <service-id> [--limit <n>] [--offset <n>] [--all] [--org <org-id>] [--json]
```

## Arguments

**service-id** `string` *required*

The ID of the service, for example `clu_abc`.

## Flags

**--limit** `integer`

Most backups to return, `1` or more. If left out, the server's default is used.

**--offset** `integer`

How many backups to skip before the first one returned, `0` or more.

**--all** `boolean` (default: false)

Fetch every page, starting from `--offset`.

**--org** `string`

Organization the service belongs to, instead of the selected one.

**--json** `boolean` (default: false)

Print the result as JSON on stdout.

## Examples

```bash theme={null}
sabaoth backup list clu_abc
sabaoth backup list clu_abc --limit 50 --offset 50   # the second page of 50
sabaoth backup list clu_abc --all --json
```

## Output

```text theme={null}
$ sabaoth backup list clu_abc
ID       NAME         STATUS     TYPE       CREATED               SIZE
bak_def  pre-upgrade  running    on-demand  2026-01-02T10:00:00Z  -
bak_abc  nightly-01   completed  scheduled  2026-01-01T02:00:00Z  20.0KiB

Showing 2 of 2.
```

`SIZE` shows `-` until the backup has a size.

With `--json`:

```json theme={null}
{
  "items": [
    {
      "id": "bak_abc",
      "service_id": "clu_abc",
      "name": "nightly-01",
      "status": "completed",
      "backup_type": "scheduled",
      "created_at": "2026-01-01T02:00:00Z",
      "expires_at": "2026-02-01T02:00:00Z",
      "size_bytes": 20480
    }
  ],
  "limit": 20,
  "offset": 0,
  "total": 1
}
```

| Field | Description |
| - | - |
| `items` | The backups returned, newest first. |
| `limit`, `offset` | What the CLI **asked for**. Add `limit` to `offset` to get the next page. |
| `total` | Total backups for the service. |
| `started_at`, `completed_at`, `size_bytes` | Included on an item only when the API reports them. A queued backup has none yet. |

`backup_type` is `scheduled` for automatic backups and `on-demand` for ones you requested. See [Backup statuses](https://docs.sabaothcloud.com/cli/commands/backup-create.md#backup-statuses) for `status` values.

## Behavior

* **`--all` never returns a partial list as if it were complete.** An error part-way through fails the whole command. If it stops at the CLI's internal page limit, you get a warning instead.
* **The organization check happens on the server.** This command sends one request and doesn't look up the service first. If you want the CLI to confirm the service's organization too, run `sabaoth postgres get` first.

## Errors

| Code | Exit | Meaning |
| - | - | - |
| `INVALID_LIMIT` | 2 | `--limit` must be a whole number of 1 or more. |
| `INVALID_OFFSET` | 2 | `--offset` must be a whole number of 0 or more. |
| `CLUSTER_NOT_FOUND` | 1 | No service with this ID in the effective organization. |
| `INVALID_CLUSTER_ID` | 1 | The API rejected the value as a service ID. |

## Related

* [`sabaoth backup create`](https://docs.sabaothcloud.com/cli/commands/backup-create)
* [Backups in the dashboard](https://docs.sabaothcloud.com/dashboard/backups.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.