---
title: "Get progress for the current user's running full-account backup"
method: GET
path: "/BackupInfo/progress"
tags: ["BackupInfo"]
---

# Get progress for the current user's running full-account backup

`GET /BackupInfo/progress`

Returns telemetry for a full-account backup. When the PkgAcct::Create hook is installed it anchors the run's start and finish; 'complete' is reported only once the published archive is confirmed in the homedir (returning its exact final size), so a run that never publishes an archive is never reported complete. Otherwise it falls back to the on-disk marker. While running, estimatedPercent is an ESTIMATE (the final archive is gzipped, so the byte total is multiplied by a heuristic compression factor) clamped to 99. Degrades to zeros when nothing is running or when quota data is unavailable. Read-only and safe to poll.

## Response `200`

HTTP Request was successful.

- object
  - `apiversion` integer
  - `func` string
  - `module` string
  - `result` object
    - `data` object
      - `state` 'inprogress' | 'timeout' | 'complete' | 'none' — Current run state. 'inprogress' or 'timeout' while a run is active or finalizing, 'complete' once the published archive is confirmed in the homedir, or 'none' when nothing is running. A confirmed hook 'complete' is sticky - it persists across polls until a new run starts or the reset endpoint is called.
      - `stateSource` 'hook' | 'marker' | 'none' — Origin of 'state'. 'hook' is the authoritative PkgAcct::Create record (definitive start/finish); 'marker' is the estimated, marker-derived fallback; 'none' when nothing is running.
      - `startedAtEpoch` integer, nullable — Start epoch (hook record when available, otherwise the marker file). Null when not running.
      - `finishedAtEpoch` integer, nullable — Finish epoch. Set only on a confirmed hook 'complete' (published archive present); null otherwise.
      - `elapsedSeconds` integer — Seconds since the run started. 0 when not running.
      - `currentBytes` integer — Current size in bytes of the growing .tar.gz archive.
      - `estimatedTotalBytes` integer — Estimated final archive size in bytes, (homedir + DB + mailman bytes) multiplied by the gzip compression factor. 0 when quota data is unavailable.
      - `estimatedPercent` number — Completion percent (0-100). An ESTIMATE while running (clamped to 99; the UI must label it "estimated"); an exact 100 only on a confirmed 'complete' (published archive present).
    - `errors` string[]
    - `messages` string[]
    - `status` integer
    - `warnings` string[]

---

[API](https://skmtc.net/cpanel/apis/cpanel-uapi.md) · [All operations](https://skmtc.net/cpanel/apis/cpanel-uapi/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cpanel/cpanel-uapi/revisions/632e2f8e6d04/schema)
