---
title: "List card description versions"
method: GET
path: "/api/cards/{cardId}/history"
tags: ["History"]
---

# List card description versions

`GET /api/cards/{cardId}/history`

## Request

- Base URL: `https://tre-app.com`
- URL: `https://tre-app.com/api/cards/{cardId}/history`
- Auth: HTTP bearer

## Response `200`

Success

- HistoryResponse
  - `versions` VersionMeta[], required
    - `id` string, uuid, required
    - `cardId` string, uuid, required
    - `createdAt` string, date-time, required
    - `createdBy` string, uuid, nullable, required
    - `origin` 'checkpoint' | 'replace', required: How the version came to exist: 'checkpoint' = periodic capture of the editor's pre-save state; 'replace' = content an external rewrite or a restore was about to overwrite.
    - `authorName` string, nullable, required
    - `authorEmail` string, email, nullable, required
    - `actorVia` 'ui' | 'rest' | 'mcp', required: Surface that archived this version.
    - `actorToken` string, nullable, required: API token name snapshot for agent writers; null for UI.
    - `statusDate` string, date, nullable, required: The date of the STATUS/STATO (or UPDATED/AGGIORNATO) line this version's text carried, read as the summary view reads statusDate; null when the text had no dated line. Locate the version valid on a date from the list, then read that one.

## Other responses

- `400`: Invalid request
- `401`: Unauthenticated
- `403`: Forbidden: insufficient role or token scope; scope denials name the held scope and the operation
- `404`: Not found
- `409`: Conflict
- `429`: Rate limited
- `500`: Internal server error
- `503`: Temporarily unavailable

---

[API](https://skmtc.dev/tre-app/apis/tre-rest-api.md) · [All operations](https://skmtc.dev/tre-app/apis/tre-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tre-app/apis/tre-rest-api/revisions/26a7187a05fc?raw)
