---
title: "Get one card description version, as text and as raw state"
method: GET
path: "/api/cards/{cardId}/history/{versionId}"
tags: ["History"]
---

# Get one card description version, as text and as raw state

`GET /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

`text` is the plain description text of this version — read this to verify what was overwritten. `state` is the raw base64 Yjs snapshot the editor uses to restore; it is not human-readable.

## Response `200`

Success

- StateResponse
  - `text` string, required: Plain description text decoded from this version's CRDT snapshot — read this to see what the version said.
  - `state` string, required: Base64-encoded Yjs CRDT update. Opaque outside the editor, which uses it to render a preview of this version; restoring re-reads the snapshot server-side and needs no body. Use `text` to read the content.

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