/systems/{id}/backups - List configuration backups for a system

GET /systems/{id}/backups

Returns the list of configuration backups stored for the system, together with aggregate usage counters. Backups are produced by the appliance itself (see collect ingest endpoint) and consumed here read-only.

Each entry carries size, sha256, and uploaded_at. The peer IP observed at ingest is intentionally not exposed: on traffic that transits the translation proxy the recorded value would be the proxy's IP, and even when it is accurate it is a reconnaissance aid for higher-tier admins.

Access is gated by the same RBAC rules as GET /systems/{id}: the caller must belong to the organization that currently owns the system. After a cross-org reassignment, the new owner sees the full backup list and the previous owner loses visibility.

Path parameters

  • id string Required

    System ID

Responses

  • 200 application/json

    Backups retrieved successfully

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object
      Hide data attributes Show data attributes object
      • backups array[object]
        Hide backups attributes Show backups attributes object

        Metadata describing a single configuration backup stored for a system.

        • id string

          Backup object ID (UUIDv7 plus original extension)

        • filename string

          User-facing filename as supplied by the appliance via X-Filename

        • size integer(int64)

          Object size in bytes

        • sha256 string

          Hex SHA-256 checksum computed at ingest; always present once the upload returns 201

        • mimetype string
        • uploaded_at string(date-time)

          Server-observed timestamp of the upload

      • quota_used_bytes integer(int64)

        Sum of backup sizes stored for this system

      • slots_used integer

        Number of backups currently stored

  • 401 application/json

    Unauthorized - invalid or missing token

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 403 application/json

    Forbidden - insufficient permissions

    Hide response attributes Show response attributes object
    • code integer
    • message string
    • data object | null
  • 404 application/json

    Resource not found

    Hide response attributes Show response attributes object
    • code integer

      HTTP error code

    • message string

      Error message

    • data object
      Hide data attributes Show data attributes object
      • type string

        Type of error

        Values are validation_error or external_api_error.

      • errors array[object]
        Hide errors attributes Show errors attributes object
        • key string

          Field name that failed validation

        • message string

          Error code or message

        • value string

          Value that failed validation

      • details

        Additional error details

  • 502

    Backup storage unreachable or returned an error

  • 503

    Backup storage is not configured

GET /systems/{id}/backups
curl \
 --request GET 'https://collect.your-domain.com/api/systems/sys_123456789/backups' \
 --header "Authorization: Bearer $ACCESS_TOKEN"
Response examples (200)
{
  "code": 200,
  "message": "backups retrieved successfully",
  "data": {
    "backups": [
      {
        "id": "01934fab-bc33-7890-a1b2-c3d4e5f6a7b8.tar.gz",
        "filename": "daily-backup-2026-04-12.tar.gz",
        "size": 82944000,
        "sha256": "3a7bd3e2360a3d29eea436fcfb7e44c735d117c42d1c1835420b6b9942dd4f1b",
        "mimetype": "application/gzip",
        "uploaded_at": "2026-04-12T02:15:00Z"
      }
    ],
    "quota_used_bytes": 314572800,
    "slots_used": 4
  }
}
Response examples (401)
{
  "code": 401,
  "message": "invalid token",
  "data": {}
}
Response examples (403)
{
  "code": 403,
  "message": "insufficient permissions",
  "data": {}
}
Response examples (404)
{
  "code": 400,
  "message": "validation failed",
  "data": {
    "type": "validation_error",
    "errors": [
      {
        "key": "username",
        "message": "required",
        "value": "string"
      }
    ]
  }
}