---
title: "Report job progress"
method: POST
path: "/api/v1/agent/jobs/{job_id}/update"
tags: ["Agent"]
---

# Report job progress

`POST /api/v1/agent/jobs/{job_id}/update`

## Request

- Base URL: `https://pcp.example.com`
- URL: `https://pcp.example.com/api/v1/agent/jobs/{job_id}/update`
- Auth: API key in header `Plakman-Agent-Token`

## Path parameters

- `job_id` string, required

## Request body

- JobUpdateRequest: JobUpdateRequest schema
  - `log` string
  - `state` object, nullable
    - `chunks` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer
    - `dirs` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer
    - `files` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer
    - `io` object
    - `latency` object[]
      - `at` integer
      - `avg` integer
      - `count` integer
      - `max` integer
      - `p50` integer
      - `p95` integer
    - `network` object[]
      - `at` integer
      - `read_bps` number, double
      - `write_bps` number, double
    - `num_cpu` integer
    - `objects` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer
    - `paths` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer
    - `phase` string
    - `processed` object
      - `bytes` integer
      - `items` integer
    - `recent_paths` object[]
      - `path` string
      - `status` string
    - `resources` object[]
      - `at` integer
      - `cpu_percent` number, double
      - `memory_bytes` integer
    - `result` object
      - `duration` number, double
      - `errors` integer
      - `size` integer
    - `snapshot_id` string
    - `summary` object
      - `directories` integer
      - `exists` boolean
      - `files` integer
      - `paths` integer
      - `size` integer
      - `symlinks` integer
      - `xattrs` integer
    - `symlinks` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer
    - `version` string
    - `xattrs` object
      - `cached` integer
      - `cached_size` integer
      - `error` integer
      - `ok` integer
      - `size` integer
      - `total` integer

## Response `200`

OK

- Job: Job schema
  - `at_id` string, uuid
  - `cron_id` string, uuid
  - `id` string, uuid
  - `identity_id` string, uuid
  - `schedule_at` string, date-time
  - `schedule_id` string, uuid
  - `scheduler_id` string, uuid
  - `started_at` string, date-time
  - `status` string
  - `stopped_at` string, date-time
  - `task_id` string, uuid

## Other responses

- `400`: Bad Request _(validation or deserialization error)_
- `401`: Missing, invalid or expired credentials
- `403`: The caller may not do this
- `500`: Internal Server Error _(panics)_
- `default`

---

[API](https://skmtc.dev/plakar/apis/plakar-control-plane-api-v1.md) - [All operations](https://skmtc.dev/plakar/apis/plakar-control-plane-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/plakar/apis/plakar-control-plane-api-v1/revisions/2ac049494a01?raw)
