---
title: "Backups: last local and off-site backup per source, restore tests, repository health, current problems and recent runs"
method: GET
path: "/operator/backups"
tags: ["Operator"]
---

# Backups: last local and off-site backup per source, restore tests, repository health, current problems and recent runs

`GET /operator/backups`

## Request

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

## Response `200`

Backup overview

- object
  - `offsite` object, required
    - `configured` boolean, required: BACKUP_S3_ENDPOINT and BACKUP_S3_BUCKET are set on the platform
    - `endpointHost` string, nullable, required
    - `bucket` string, nullable, required
    - `region` string, nullable, required
    - `retention` object, required
      - `daily` integer, required
      - `weekly` integer, required
      - `monthly` integer, required
  - `sources` object[], required
    - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
    - `lastRun` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
    - `lastOffsiteSuccess` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
    - `lastFailure` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
  - `restoreTests` object[], required
    - `source` 'control-db' | 'customer-db' | 'object-storage' | 'apps', required
    - `lastRun` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
    - `lastSuccess` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
  - `repository` object, required
    - `lastCheck` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
    - `lastPrune` object, nullable, required
      - `id` string, uuid, required
      - `host` string, required
      - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
      - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
      - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
      - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
      - `startedAt` string, required: ISO-8601 timestamp
      - `finishedAt` string, required: ISO-8601 timestamp
      - `snapshotId` string, nullable, required
      - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
      - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
      - `filesProcessed` integer, nullable, required
      - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
      - `localLatestBytes` integer, nullable, required
      - `localTotalBytes` integer, nullable, required
      - `localFiles` integer, nullable, required
      - `message` string, required
      - `details` object, required
  - `problems` object[], required: current conditions that also raise alerts (stale or failing backups)
    - `kind` 'run_failed' | 'no_recent_runs' | 'offsite_stale' | 'local_stale' | 'restore_test_stale', required
    - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
    - `message` string, required
    - `since` string, nullable, required: ISO-8601 timestamp
  - `recent` object[], required
    - `id` string, uuid, required
    - `host` string, required
    - `kind` 'backup' | 'check' | 'prune' | 'restore_test', required
    - `source` 'control-db' | 'customer-db' | 'wordpress' | 'mail' | 'host-config' | 'object-storage' | 'apps' | 'final-backups' | 'repository', required
    - `status` 'success' | 'failed' | 'skipped' | 'local_only', required: local_only: stored on this server only (no off-site target); skipped: nothing to back up or test yet
    - `offsite` boolean, required: the run used the off-site repository (upload, check, prune or restore from the bucket)
    - `startedAt` string, required: ISO-8601 timestamp
    - `finishedAt` string, required: ISO-8601 timestamp
    - `snapshotId` string, nullable, required
    - `bytesAdded` integer, nullable, required: new data uploaded by this snapshot (after deduplication)
    - `bytesProcessed` integer, nullable, required: total size of the source (backup) or of the repository (check)
    - `filesProcessed` integer, nullable, required
    - `localLatestAt` string, nullable, required: the newest local backup file of the source when the run started
    - `localLatestBytes` integer, nullable, required
    - `localTotalBytes` integer, nullable, required
    - `localFiles` integer, nullable, required
    - `message` string, required
    - `details` object, required

## Other responses

- `403`: Not a platform operator, or a bearer-authenticated request (code forbidden)

---

[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)
