---
title: "Get progress for the current user's running archive extraction"
method: GET
path: "/ExtractInfo/progress"
tags: ["ExtractInfo"]
---

# Get progress for the current user's running archive extraction

`GET /ExtractInfo/progress`

Returns telemetry for an in-progress archive extraction started via ExtractInfo.start. currentBytes is how much the destination directory has grown since the start baseline; totalBytes is the uncompressed archive size recorded at start, exact for archives under 4 GiB and a best-effort estimate for larger ones (the gzip trailer stores the uncompressed size modulo 2**32, so it wraps at 4 GiB). totalBytesEstimated reports which of those two cases applies. percent is derived from currentBytes and totalBytes and clamped to 99; it is approximate whenever totalBytesEstimated is true. Degrades to zeros when no run is active. Read-only and safe to poll.

## Response `200`

HTTP Request was successful.

- object
  - `apiversion` integer
  - `func` string
  - `module` string
  - `result` object
    - `data` object
      - `currentBytes` integer — Bytes the destination directory has grown by since the start baseline. Never negative.
      - `elapsedSeconds` integer — Seconds since the run started. 0 when not running.
      - `percent` number — Completion percent (0-99), derived from currentBytes / totalBytes and clamped to 99 until finish is called. Approximate whenever totalBytesEstimated is 1; even when the total is exact the destination-directory delta can carry noise.
      - `startedAtEpoch` integer, nullable — Start epoch recorded by start. Null when not running.
      - `state` 'inprogress' | 'timeout' | 'none' — Current run state. 'inprogress' while a run is active and within the timeout, 'timeout' once it has run past the timeout ceiling, or 'none' when nothing is running (including after finish).
      - `totalBytes` integer — The uncompressed archive size recorded at start. Exact for archives under 4 GiB; a best-effort estimate for archives of 4 GiB or more, because the gzip trailer stores the uncompressed size modulo 2**32. See totalBytesEstimated.
      - `totalBytesEstimated` integer — 1 when totalBytes is an estimate (the gzip trailer wrapped because the archive is 4 GiB or larger), 0 when totalBytes is exact.
    - `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/versions/632e2f8e6d04/schema)
