---
title: "Recent transparency-log entries for an agent."
method: GET
path: "/transparency/log/{agent_id}/recent"
tags: ["Transparency"]
---

# Recent transparency-log entries for an agent.

`GET /transparency/log/{agent_id}/recent`

## Request

- Base URL: `https://api.mnemom.ai/v1`
- URL: `https://api.mnemom.ai/v1/transparency/log/{agent_id}/recent`
- Auth: none required

Returns the last N transparency-log entries for the agent, newest first (`log_index.desc`), each with a freshly-computed Merkle inclusion proof. Public + unauthenticated like its siblings; the per-agent filter is the leak defense (data scoping, not org authz). Bounded by a server-clamped `limit` (default 10, max 100). `card_kind` defaults to `alignment`. An agent with no attestations returns `200 { data: [] }`. cards-as-primitive Phase 5 A2.

## Path parameters

- `agent_id` string, required

## Query parameters

- `limit` integer
- `card_kind` 'alignment' | 'protection'

## Response `200`

Recent log entries + inclusion proofs (newest first).

- object
  - `data` object[], required
    - `entry` object, required
      - `log_index` integer, required
      - `agent_id` string, required
      - `card_kind` 'alignment' | 'protection', required
      - `content_hash` string, required
      - `version` integer, required
      - `composed_at` string, date-time, required
      - `signed_attestation` string, required: JWS Compact serialization signed by Mnemom over the canonical identity tuple.
      - `signing_key_id` string, required
      - `merkle_leaf_hash` string, required
      - `tree_size_after` integer, required
      - `integrated_time` string, date-time, required
    - `inclusion_proof` object, required
      - `leaf_hash` string, required
      - `log_index` integer, required
      - `tree_size` integer, required
      - `hashes` object[], required
        - `sibling` string, required
        - `position` 'left' | 'right', required

## Other responses

- `400`: Bad request
- `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.
- `503`: An upstream dependency is currently unavailable. The request was not processed; retry after the cooldown window.

---

[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)
