# Get a sealed record revision

Returns what the record was at one revision: that revision's envelope fields and its sealed payload, with the wrapped data key that opens it.

`404 SEALED_REVISION_NOT_FOUND` for a delete revision, which has no content, and for one past the kept history (older than 30 days, or beyond the newest 100 for the record or 1,000 for the store).

#### Path Parameters

**`store`** string required

The store: `aitronos-browser`. Up to 64 characters; an unknown store is `404 SEALED_STORE_NOT_FOUND`.

**`record_id`** string required

The record's id, as the client minted it: 16 to 128 characters of `A-Z a-z 0-9 _ -`.

**`revision`** integer required

The revision number, at least 1, as [List a sealed record's revisions](/docs/api-reference/sealed-stores/list-revisions) returned it.

#### Headers

**`Authorization`** string required

`Bearer <access token>` from the person's own sign-in. API keys and service accounts are refused with `403 SEALED_STORE_PERSONAL_SESSION_REQUIRED`.

## Returns

`200 OK`:

- **`object`** string — `sealed_record_revision`.
- **`record_id`** string — the record's id.
- **`revision`** integer — the revision number.
- **`schema_version`** integer — as that write sent it.
- **`device_id`** string — the device that wrote it.
- **`written_at`** string — when it was written (ISO 8601 UTC).
- **`payload_bytes`** integer — the decoded size of its payload.
- **`wrapped_dek`** object — the data key that opens this revision's payload: `v` (always `1`), `aead`, `nonce`, `ct`, `epk`.
- **`payload`** string — the sealed bytes, standard padded base64.


## Errors

| Status | Code | When |
|  --- | --- | --- |
| 401 | `AUTHENTICATION_REQUIRED` | No access token, or one that is not valid. |
| 403 | `SEALED_STORE_PERSONAL_SESSION_REQUIRED` | The call used an API key or a service account. Only a person's own sign-in session reaches a sealed store. |
| 404 | `SEALED_STORE_NOT_FOUND` | No store with that name (`details.store`). |
| 404 | `SEALED_RECORD_NOT_FOUND` | No record with that id in the caller's store, or its tombstone has passed the 30-day retention. |
| 404 | `SEALED_REVISION_NOT_FOUND` | The revision is a delete (it has no content), or it is no longer in the kept history (`details.revision`). |
| 422 | `VALIDATION_ERROR` | `revision` is not a positive integer, or `record_id` does not match its pattern. |



```bash cURL
curl "https://api.aitronos.com/v1/sealed-stores/aitronos-browser/records/vSWmWbg9sDur336pnYgYzQ/revisions/1" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
```


```python Python
import os

import requests

response = requests.get(
    "https://api.aitronos.com/v1/sealed-stores/aitronos-browser/records/vSWmWbg9sDur336pnYgYzQ/revisions/1",
    headers={"Authorization": f"Bearer {os.environ['AITRONOS_TOKEN']}"},
    timeout=30,
)
body = response.json()
if response.status_code == 200:
    # Open body["wrapped_dek"] with the account's identity key, then body["payload"].
    print("revision", body["revision"], "written", body["written_at"])
else:
    print(response.status_code, body["error"]["code"])
```


```javascript JavaScript
const response = await fetch("https://api.aitronos.com/v1/sealed-stores/aitronos-browser/records/vSWmWbg9sDur336pnYgYzQ/revisions/1", {
  headers: { Authorization: `Bearer ${process.env.AITRONOS_TOKEN}` },
});
const body = await response.json();
if (response.ok) {
  // Open body.wrapped_dek with the account's identity key, then body.payload.
  console.log("revision", body.revision, "written", body.written_at);
} else {
  console.log(response.status, body.error.code);
}
```

**Response:**

200 OK

```json
{
  "object": "sealed_record_revision",
  "record_id": "vSWmWbg9sDur336pnYgYzQ",
  "revision": 1,
  "schema_version": 1,
  "device_id": "1f783def-2aa1-4b44-9c73-3c6b9102c06b",
  "written_at": "2026-10-10T08:41:17.204913Z",
  "payload_bytes": 96,
  "wrapped_dek": {
    "v": 1,
    "aead": "aes-256-gcm",
    "nonce": "gMFyLEjXkypUeolk",
    "ct": "XoS0w/WPA3TGVKgAD34pyWtRe5Cn1F6D96luS3Lb3FP/Ldhw6G7amge7Lsj25Z4r",
    "epk": "GwkxMcWIWVhWBXFK4FWOTDferBsgSPLB/LquF2r4/a0="
  },
  "payload": "8oejqfQSxiYbRt85f/f1olyTQ+FURmhC7j1Rrc62awq1jmIASqh7N38qLiXyF43bxLHtsAv2t+ChSkOSbPaL542Y8Z6T4bqGUfO1rlBP4RzizRSrcn8A1HDRmYeDgWMJ"
}
```

404 Delete revision

```json
{
  "success": false,
  "error": {
    "code": "SEALED_REVISION_NOT_FOUND",
    "message": "That earlier version is no longer kept.",
    "system_message": "revision 3 is not in the record's kept history",
    "type": "client_error",
    "status": 404,
    "details": {
      "revision": 3
    },
    "trace_id": "e9111162-eae2-44f7-985f-a1aafdaf12cb",
    "timestamp": "2026-10-10T10:21:44.508126Z"
  }
}
```

## Related Resources

- [Sealed stores](/docs/api-reference/sealed-stores/introduction)
- [List a sealed record's revisions](/docs/api-reference/sealed-stores/list-revisions)
- [Get a sealed record](/docs/api-reference/sealed-stores/get-record)
- [Undelete a sealed record](/docs/api-reference/sealed-stores/undelete-record)