# Get a sealed store's limits

Returns the store's published limits (the live-record cap of each kind, the sealed-payload ceiling, the history depth and the 30-day retention) and how many live records of each kind the caller holds.

A client checks a save against these before it starts. The payload ceiling counts the decoded bytes of `payload` alone, not `wrapped_dek`.

#### Path Parameters

**`store`** string required

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

#### 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_store`.
- **`store`** string — the store's name.
- **`kinds`** array — one entry per record kind the store holds:
  - **`kind`** string — `session` or `favourites`.
  - **`max_live_records`** integer — the most live records of this kind one person may hold.
  - **`live_records`** integer — how many the caller holds now. Deleted records do not count.
- **`limits`** object — the published limits:
  - **`payload_max_bytes`** integer — the most decoded bytes of one record's `payload` (524,288).
  - **`payload_min_bytes`** integer — the fewest decoded bytes of a sealed value: a 12-byte nonce plus a 16-byte tag (28).
  - **`payload_ceiling_counts`** string — always `payload`: the ceiling counts the payload only, not `wrapped_dek`.
  - **`superseded_payload_max_bytes`** integer — the most decoded bytes of one superseded entry's payload (65,536).
  - **`superseded_max_per_record`** integer — superseded entries one record holds within the retention (200).
  - **`superseded_max_per_store`** integer — superseded entries one store holds within the retention (2,000).
  - **`account_key_max_bytes`** integer — the most decoded bytes of the account key blob (2,048).
  - **`history_max_revisions`** integer — revisions kept per record, newest first (100).
  - **`history_max_per_store`** integer — revisions kept across all of the store's records, newest first (1,000).
  - **`tombstones_max_per_store`** integer — deleted records kept per store (500). Deleting past it removes the oldest tombstone early, and feed cursors from before that are then refused as expired.
  - **`operations_max_per_store`** integer — remembered `Idempotency-Key` answers per store, each also for at most the retention (50,000). A retry whose answer is gone is applied again under the record's own rules: its id, its revision or its key.
  - **`retention_days`** integer — how long tombstones, history, superseded entries, `Idempotency-Key` answers and feed cursors are kept (30).
  - **`feed_max_limit`** integer — the largest `limit` one feed page accepts (500).
  - **`feed_page_max_payload_bytes`** integer — the decoded payload bytes after which a feed page stops early (8,388,608).
- **`wrapped_key_version`** integer — the `v` of every wrapped key the store returns (1).


## 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`). |
| 422 | `VALIDATION_ERROR` | `store` is longer than 64 characters. |



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


```python Python
import os

import requests

response = requests.get(
    "https://api.aitronos.com/v1/sealed-stores/aitronos-browser",
    headers={"Authorization": f"Bearer {os.environ['AITRONOS_TOKEN']}"},
    timeout=30,
)
store = response.json()
limits = store["limits"]
for kind in store["kinds"]:
    print(kind["kind"], kind["max_live_records"] - kind["live_records"], "more allowed")
# The ceiling counts the decoded payload alone, not wrapped_dek.
print("largest payload:", limits["payload_max_bytes"], "bytes")
```


```javascript JavaScript
const response = await fetch("https://api.aitronos.com/v1/sealed-stores/aitronos-browser", {
  headers: { Authorization: `Bearer ${process.env.AITRONOS_TOKEN}` },
});
const store = await response.json();
for (const kind of store.kinds) {
  console.log(kind.kind, kind.max_live_records - kind.live_records, "more allowed");
}
// The ceiling counts the decoded payload alone, not wrapped_dek.
console.log("largest payload:", store.limits.payload_max_bytes, "bytes");
```

**Response:**

200 OK

```json
{
  "object": "sealed_store",
  "store": "aitronos-browser",
  "kinds": [
    {
      "kind": "session",
      "max_live_records": 500,
      "live_records": 37
    },
    {
      "kind": "favourites",
      "max_live_records": 1,
      "live_records": 1
    }
  ],
  "limits": {
    "payload_max_bytes": 524288,
    "payload_min_bytes": 28,
    "payload_ceiling_counts": "payload",
    "superseded_payload_max_bytes": 65536,
    "superseded_max_per_record": 200,
    "superseded_max_per_store": 2000,
    "account_key_max_bytes": 2048,
    "history_max_revisions": 100,
    "history_max_per_store": 1000,
    "tombstones_max_per_store": 500,
    "operations_max_per_store": 50000,
    "retention_days": 30,
    "feed_max_limit": 500,
    "feed_page_max_payload_bytes": 8388608
  },
  "wrapped_key_version": 1
}
```

403 Not a personal session

```json
{
  "success": false,
  "error": {
    "code": "SEALED_STORE_PERSONAL_SESSION_REQUIRED",
    "message": "Sign in on this device to sync your sessions.",
    "system_message": "sealed stores are reached with a person's own sign-in session; API keys and service accounts are refused",
    "type": "authorization_error",
    "status": 403,
    "details": {},
    "trace_id": "d5a2e7f9-2031-48e0-bf3f-ae7396726fce",
    "timestamp": "2026-10-10T08:12:55.640917Z"
  }
}
```

404 Unknown store

```json
{
  "success": false,
  "error": {
    "code": "SEALED_STORE_NOT_FOUND",
    "message": "That sync store doesn't exist.",
    "system_message": "no sealed store named 'browser'",
    "type": "client_error",
    "status": 404,
    "details": {
      "store": "browser"
    },
    "trace_id": "49bb20bd-2237-471d-8f4a-d4a5ce0d15f4",
    "timestamp": "2026-10-10T08:13:20.019372Z"
  }
}
```

## Related Resources

- [Sealed stores](/docs/api-reference/sealed-stores/introduction)
- [Create a sealed record](/docs/api-reference/sealed-stores/create-record)
- [List sealed store changes](/docs/api-reference/sealed-stores/list-changes)
- [List deleted sealed records](/docs/api-reference/sealed-stores/list-deleted)