---
title: "Restore a card description snapshot"
method: POST
path: "/api/cards/{cardId}/history/{versionId}"
tags: ["History"]
---

# Restore a card description snapshot

`POST /api/cards/{cardId}/history/{versionId}`

## Request

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

A whole-text write like PATCH: archives the current description first, an empty one included (as an empty version), then overwrites it with the snapshot. Restoring the text the card already shows is a no-op: no version, no event, no `Tre-Event-Seq`. On the workspace guidance card a Bearer token answers 403 FORBIDDEN with `details.reason: 'no_consent_path'` whatever guidance write grant it holds: restore it from the web app, or send the text through updateCard under a grant.

## Response `200`

Success

- SuccessResponse
  - `success` true, required

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