---
title: "Persist the internal CRDT state"
method: PUT
path: "/api/cards/{cardId}/yjs-state"
tags: ["Internal"]
---

# Persist the internal CRDT state

`PUT /api/cards/{cardId}/yjs-state`

## Request

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

## Request body

- YjsStateUpdate
  - `state` string, required
  - `description` string
  - `epoch` integer, required

## Response `204`

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