REST API
Restore a note from the trash
Brings a trashed note back and returns it. Needs notes:delete, the scope that trashed it. Restoration succeeds even above the file or storage limit. Restored files count toward the limits on the next upload.
Required scopes: notes:delete
AuthorizationBearer <token>
In: header
Path Parameters
noteId*string
Note id, scoped to the key's user.
Match
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Format
uuidHeader Parameters
Idempotency-Key?string
A client-generated key (1 to 255 visible ASCII characters) that makes this POST safe to retry. A retry with the same key and body replays the original response; the same key with a different body returns 409 idempotency_conflict. Stored for 24 hours.
Match
^[\x21-\x7E]{1,255}$Length
1 <= length <= 255Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/notes/497f6eca-6276-4993-bfeb-53cbbbba6f08/restore"{ "data": { "id": "3c2b1a09-8f7e-4d6c-9b5a-4f3e2d1c0b9a", "name": "Photosynthesis", "folder": { "id": "9a8b7c6d-5e4f-4a3b-8c2d-1e0f9a8b7c6d", "name": "Biology", "subjectId": null }, "subjectId": null, "createdAt": "2026-01-15T09:30:00.000Z", "updatedAt": "2026-02-01T12:00:00.000Z", "fullWidth": false, "contentFormat": "tiptap", "contentUnstable": true, "content": { "type": "doc", "content": [ { "type": "paragraph", "attrs": { "id": "6d5c4b3a-2f1e-4d0c-9b8a-7f6e5d4c3b2a" }, "content": [ { "type": "text", "text": "Light becomes chemical energy." } ] } ] }, "markdown": "Light becomes chemical energy.", "markdownLosses": [], "version": 3, "pinned": false, "summary": { "summary": "How plants turn light into sugar.", "keywords": [ "chlorophyll", "glucose", "light reactions" ], "createdAt": "2026-02-01T12:00:00.000Z" } }}