---
title: "List Backup Jobs"
method: GET
path: "/cluster/backups/jobs"
tags: ["Cluster Backups"]
---

# List Backup Jobs

`GET /cluster/backups/jobs`

List backup jobs, optionally filtered by target or guest

## Query parameters

- `targetId` integer
- `guestType` string
- `guestId` integer

## Response `200`

Success

- GithubComAlchemillahqSylveInternalAPIResponseArrayGithubComAlchemillahqSylveInternalDbModelsClusterBackupJob
  - `data` GithubComAlchemillahqSylveInternalDbModelsClusterBackupJob[]
    - `createdAt` string
    - `cronExpr` string
    - `destSuffix` string — appended to target's BackupRoot
    - `enabled` boolean
    - `encrypted` boolean
    - `friendlySrc` string
    - `id` integer
    - `jailRootDataset` string — for mode=jail
    - `lastError` string
    - `lastRunAt` string
    - `lastStatus` string
    - `mode` string — "dataset" or "jail"
    - `name` string
    - `nextRunAt` string
    - `pruneKeepLast` integer
    - `pruneTarget` boolean
    - `recursive` boolean
    - `runnerNodeId` string
    - `scheduleRevision` integer
    - `sourceDataset` string — for mode=dataset
    - `stopBeforeBackup` boolean
    - `target` GithubComAlchemillahqSylveInternalDbModelsClusterBackupTarget
      - `backupRoot` string — target pool/dataset prefix (e.g., tank/Backups)
      - `createBackupRoot` boolean
      - `createdAt` string
      - `description` string
      - `enabled` boolean
      - `id` integer
      - `jobs` GithubComAlchemillahqSylveInternalDbModelsClusterBackupJob[]
      - `name` string
      - `readiness` GithubComAlchemillahqSylveInternalDbModelsClusterBackupTargetNodeReadinessStatus[]
        - `configurationCurrent` boolean
        - `currentVoter` boolean
        - `expired` boolean
        - `lastError` string
        - `lastVerifiedAt` string
        - `nodeId` string
        - `ready` boolean
        - `readyUntil` string
        - `revision` integer
        - `targetId` integer
        - `validationSucceeded` boolean
      - `sshHost` string — user@host
      - `sshKeyPath` string — legacy/local execution path; managed paths are derived per node
      - `sshPort` integer — SSH port (default 22)
      - `updatedAt` string
    - `targetId` integer
    - `updatedAt` string
  - `error` string
  - `message` string
  - `status` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Cluster consensus unavailable

---

[API](https://skmtc.net/alchemillahq/apis/sylve-api.md) · [All operations](https://skmtc.net/alchemillahq/apis/sylve-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/alchemillahq/sylve-api/revisions/7a7bea85004e/schema)
