---
title: "List card amendment history"
method: GET
path: "/agents/{agent_id}/card-amendments"
tags: ["Reclassification"]
---

# List card amendment history

`GET /agents/{agent_id}/card-amendments`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/agents/{agent_id}/card-amendments`
- Auth: none required

Retrieve the history of all alignment card amendments for the specified agent. Card amendments are changes to the agent's alignment card that were triggered by reclassifications, policy changes, or manual edits. Public: members of the agent's org see the full records; every other caller (including anonymous) sees a redacted view with `id`, `agent_id`, `amendment_type`, `source` and `created_at` only. An unknown or deleted agent id returns 404, the same body as `GET /agents/{agent_id}`; a real agent with no records returns an empty list.

## Path parameters

- `agent_id` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Card amendment history, newest first, wrapped in an `amendments` envelope.

- object
  - `amendments` object[], required
    - `id` string
    - `agent_id` string: Repointed to a deterministic `del-<hash>` pseudonym once the agent's account is deleted (MNE-6375 — the signed record survives erasure; the person is stripped).
    - `amendment_type` 'bounded_action_added' | 'bounded_action_removed' | 'value_modified' | 'other'
    - `before_snapshot` object: The alignment card before the edit (tamper-evidence).
    - `after_snapshot` object: The alignment card after the edit (tamper-evidence).
    - `diff_summary` string, nullable
    - `reason` string, nullable
    - `source` 'ddr_auto' | 'manual' | 'policy_enforcement'
    - `created_by` string, nullable: Nulled on account deletion — the person is stripped while the record is retained (MNE-6375).
    - `created_at` string, date-time

## Other responses

- `404`: Resource not found
- `429`: Rate-limit exceeded. The global per-IP limiter (100 requests/minute, applied to every `/v1/*` route) rejected this request. Back off until the window resets — `Retry-After` carries the cooldown in seconds and `X-RateLimit-Reset` the absolute reset time.
- `500`: Server error — request was well-formed but the server failed to fulfill it. Typically a downstream dependency (DB / RPC / external API) returned an unexpected error.

---

[API](https://skmtc.dev/mnemom/apis/mnemom-api.md) · [All operations](https://skmtc.dev/mnemom/apis/mnemom-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemom/apis/mnemom-api/revisions/274b7a6ea182?raw)
