Skip to content

List deleted sealed records

The recovery read: the records deleted within the last 30 days (at most the store's newest 500), newest delete first, each as its envelope-only tombstone.

Undelete one by naming its revision. To see what a tombstone held before deciding, read it from its revision history: while it is still kept, the newest revision listed there holds the content an undelete restores.

GEThttps://api.aitronos.com/v1/sealed-stores/{store}/deleted

Path Parameters

store string required

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

Query Parameters

kind string optional

Only records of this kind: session or favourites. Up to 32 characters.

cursor string optional

The next_cursor of an earlier page, up to 512 characters.

limit integer optional

The most records in this page, 1 to 500. Defaults to 100.

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 — list.
  • data array — tombstones, newest delete first. Each is a sealed_record with deleted: true and no content (see below).
  • has_more boolean — whether more tombstones follow this page.
  • next_cursor string or null — send it as cursor for the next page; null when there is none. Opaque.

Each entry of data:

  • object string — sealed_record.
  • id string — the client's record id.
  • kind string — session or favourites.
  • schema_version integer — as the last accepted write sent it.
  • revision integer — server-assigned; rises by 1 on every accepted write.
  • created_at string — when the record was created (ISO 8601 UTC).
  • last_touched_at string — set by the server on every accepted write. Sort by it, ties by id.
  • deleted boolean — whether the record is a tombstone.
  • deleted_at string or null — when it was deleted.
  • device_id string — the device of the last accepted write.
  • wrapped_dek object or null — the data key that opens payload: v, aead, nonce, ct, epk. v is always the integer 1. null for a tombstone.
  • payload string or null — the sealed bytes, standard padded base64. null for a tombstone.
  • payload_bytes integer or null — the decoded payload size. null for a tombstone.

Errors

StatusCodeWhen
401AUTHENTICATION_REQUIREDNo access token, or one that is not valid.
403SEALED_STORE_PERSONAL_SESSION_REQUIREDThe call used an API key or a service account. Only a person's own sign-in session reaches a sealed store.
404SEALED_STORE_NOT_FOUNDNo store with that name (details.store).
422SEALED_KIND_INVALIDkind is not a kind this store holds (details.kind, details.allowed).
422SEALED_CURSOR_INVALIDThe cursor was not issued by this store.
422VALIDATION_ERRORlimit is outside 1 to 500, or kind or cursor is too long.
cURL
curl "https://api.aitronos.com/v1/sealed-stores/aitronos-browser/deleted?kind=session&limit=50" \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Response:

{
  "object": "list",
  "data": [
    {
      "object": "sealed_record",
      "id": "vSWmWbg9sDur336pnYgYzQ",
      "kind": "session",
      "schema_version": 1,
      "revision": 3,
      "created_at": "2026-10-10T08:41:17.204913Z",
      "last_touched_at": "2026-10-10T09:30:05.551390Z",
      "deleted": true,
      "deleted_at": "2026-10-10T09:30:05.551390Z",
      "device_id": "1f783def-2aa1-4b44-9c73-3c6b9102c06b",
      "wrapped_dek": null,
      "payload": null,
      "payload_bytes": null
    },
    {
      "object": "sealed_record",
      "id": "z4rSQRGzUlRnQMJmA0W1Uw",
      "kind": "session",
      "schema_version": 1,
      "revision": 2,
      "created_at": "2026-10-06T14:22:31.845570Z",
      "last_touched_at": "2026-10-09T21:14:50.093318Z",
      "deleted": true,
      "deleted_at": "2026-10-09T21:14:50.093318Z",
      "device_id": "1f783def-2aa1-4b44-9c73-3c6b9102c06b",
      "wrapped_dek": null,
      "payload": null,
      "payload_bytes": null
    }
  ],
  "has_more": false,
  "next_cursor": null
}