---
title: "List Agent Config History"
method: GET
path: "/agents/{job_id}/config/history"
tags: ["Agents"]
---

# List Agent Config History

`GET /agents/{job_id}/config/history`

List a config-based agent's config-change history, newest first.

Response is bounded by the server-side retention window (50 rows per
agent by default) and carries a per-row ``summary.changedFields`` so
the FE sidebar stays cheap - full before/after diffs come from two
``GET /history/{version}`` detail reads.

## Path parameters

- `job_id` string, required

## Query parameters

- `limit` integer
- `before_version` integer, nullable

## Response `200`

Successful Response

- AgentConfigHistoryListResponse — Response for ``GET /agents/{id}/config/history``.
  - `items` AgentConfigHistoryItem[]
    - `version` integer, required
    - `changedByEmail` string, nullable — Admin's email in admin-app mode; tenant user's otherwise. ``None`` when the row predates author capture (legacy / migrated).
    - `changedTimestamp` string, date-time, required
    - `changeKind` 'create' | 'update' | 'rollback', required
    - `rollbackSourceVersion` integer, nullable — For change_kind='rollback': the version whose config was copied. None otherwise.
    - `changeNote` string, nullable
    - `summary` AgentConfigHistorySummary — Cheap diff preview stored on every history row at write time. The list endpoint returns this without shipping the full config blobs. ``changedFields`` is a sorted list of dotted paths at depth ≤ 2 (e.g. ``["prompts.customInstructions", "tools"]``). A deeper change inside ``tools[].config.headers`` collapses to ``"tools"``. The FE computes a full before/after diff from two ``GET /history/{version}`` detail reads when the user opens a specific version.
      - `changedFields` string[] — Sorted depth-2 dotted paths that differ from the previous version
  - `total` integer, required — Total rows for this agent (bounded by retention)
  - `nextBeforeVersion` integer, nullable — Cursor for the next page - pass as ``?before_version=…``. Null if no more rows.

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/streamkap/apis/streamkap-rest-api.md) · [All operations](https://skmtc.net/streamkap/apis/streamkap-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/streamkap/streamkap-rest-api/revisions/e9ce8221bac6/schema)
