---
title: "Re-verify AAP traces against updated card"
method: POST
path: "/agents/{agent_id}/reverify"
tags: ["Checkpoints"]
---

# Re-verify AAP traces against updated card

`POST /agents/{agent_id}/reverify`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/agents/{agent_id}/reverify`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Mnemom-Api-Key`

Re-runs AAP structural verification of the agent's stored traces against its currently-active alignment card. **Paginated, and a single call is not a full re-verification:** at most 40 traces are processed per call (Cloudflare Workers subrequest limit). Use `has_more` / `next_offset` to walk the remainder — a caller that stops after one page leaves later traces carrying verdicts from the previous card. `complete` is true only when the pass reached the end of the agent's traces with no write errors; the reputation score is recomputed only on such a pass, and `reputation_recompute_skipped_reason` says why it was not.

## Path parameters

- `agent_id` string, required

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Re-verification results

- object
  - `agent_id` string
  - `card_id` string
  - `total_traces_in_batch` integer
  - `offset` integer
  - `limit` integer
  - `reverified` integer
  - `still_violating` integer
  - `now_clean` integer
  - `total_traces` integer, nullable: Exact total number of traces stored for this agent, or null if the count could not be established. Null means coverage is UNKNOWN — not zero, and not complete.
  - `traces_scanned` integer: offset + rows processed in this call.
  - `has_more` boolean: True if traces beyond this page remain un-re-verified.
  - `next_offset` integer, nullable: Offset to pass to the next call, or null when there is no next page.
  - `complete` boolean: True only if this pass reached the end of the agent's traces with no write errors. False means the agent's history is NOT yet fully consistent with the current card.
  - `reputation_recomputed` boolean: Whether the agent's reputation score was recomputed. Only ever true on a complete pass that updated at least one trace.
  - `reputation_recompute_skipped_reason` 'incomplete_pass' | 'trace_total_unknown' | 'write_errors_in_batch' | 'no_traces_updated' | 'recompute_failed' | 'null', nullable
  - `errors` string[], nullable

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `403`: Forbidden
- `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)
