Session archive
A Tauric application you use, such as the Tauric app, keeps a complete record of its sessions in your Tauric account, per application, so you can find, read, and restore them on another device.
Access
The archive needs the sessions entitlement, which comes with your tier
(entitlements). What you can do depends on how you connect:
| credential | allows |
|---|---|
| an API key | list and find sessions, read a session and its content, delete it |
| your website session | list, read, and delete the sessions of every application on your account |
| a connected app (MCP client) | nothing: the archive is not reachable |
- Any key on the account reaches the archives of every application.
- The usage page (tauric.ai/settings/usage) shows the bytes your sessions hold against your allowance.
- Revoking a key stops its future access; the sessions stay on your account.
- Another account's sessions are never visible: a session id you do not own is
404 not_found.
Sessions
The application id is the Tauric product id, for example tauric; GET /v1/applications lists the applications
enabled for your account. The session id is the application's own id for the session: 1–128 characters of
A–Z a–z 0–9 . _ -, the first a letter or digit.
| call | meaning |
|---|---|
GET /v1/applications | the applications you can reach, with session counts, the bytes they hold, and your allowance |
GET /v1/applications/{application}/sessions | sessions, newest first, optionally filtered (find sessions); limit and after (lists) |
GET /v1/applications/{application}/sessions/{session_id} | the session without its content: metadata, size (the bytes it holds), parent, and its timestamps |
GET /v1/applications/{application}/sessions/{session_id}/content | the record (application/octet-stream), uncompressed; one Range: bytes=a-b or bytes=a- answers 206 with Content-Range |
DELETE /v1/applications/{application}/sessions/{session_id} | delete the session (delete a session); 204 |
Sizes and ranges count the bytes of the uncompressed record. A record's content is the application's own.
parent ({"session_id", "offset"}) marks a fork: the session
continues another one from that byte offset. A session's parent never changes.
Metadata
metadata describes a session in key-value pairs, for example {"ticker": "MSFT", "status": "completed"}. An
application keeps any status it wants there, and the list can filter on it.
Find sessions
The session list takes three optional filters, which combine:
| filter | keeps |
|---|---|
created_after | sessions created at or after this instant (RFC 3339) |
created_before | sessions created before this instant (RFC 3339) |
metadata=key=value | sessions whose metadata holds the pair; repeat it for several pairs, all of which must hold (metadata=experiment=e1) |
Allowance
The archive allowance is set by your tier (tiers). Archive calls are limited
by your per-minute rate; they draw on no credit pool. When the allowance is full, reading and deleting still work.
GET /v1/applications and GET /v1/account/usage (account.storage) show what is used.
Delete a session
Sessions are kept until you delete them. Deleting removes the content and metadata at once. Afterwards the session
answers 410 session_deleted, and its id stays reserved and is not reused. Deleting again answers 204.
Deleting a session does not delete its forks, but a fork's history before its fork point is then unavailable.
Example
Find an application's sessions and restore one's record:
import os
import httpx
app = "tauric"
api = httpx.Client(base_url="https://api.tauric.ai", timeout=30.0,
headers={"Authorization": f"Bearer {os.environ['TAURIC_API_KEY']}"})
page = api.get(f"/v1/applications/{app}/sessions",
params={"created_after": "2026-10-01T00:00:00Z", "metadata": "ticker=MSFT"}).raise_for_status().json()
session_id = page["data"][0]["session_id"]
restored = api.get(f"/v1/applications/{app}/sessions/{session_id}/content").content
print(len(restored), "bytes restored")