---
title: "Past sessions · intentic sandbox API"
description: "Conversations that have finished, and their transcripts. Every route in the past sessions group of the intentic sandbox API."
url: "https://intentic.dev/api/sessions/"
---

Agents

# Past sessions

Conversations that have finished, and their transcripts

Two reads. The list of past conversations, and one conversation's full record by id.

**GET`/sessions` Past conversations in this workspace**

Summaries for a history menu, filtered when you pass a search. Covers conversations that worked in their own private copies too, so nothing is hidden just because it happened on a branch.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `query` | string | query |
| `caseSensitive` | string | query |

### What comes back

| Field | Type |
| --- | --- |
| `sessions` Past conversations, newest first | object[] |
| `id` Its id | string |
| `title` What it is called | string |
| `updatedAt` When it last moved, in milliseconds | number |
| `snippet` Why a search matched: the line… | object |
| `text` The matching line, with a little… | string |
| `speaker` Who said it | "user" | "agent" |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/sessions" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.sessions.list();
```

**GET`/sessions/{id}` Read one past conversation**

The full record of a single conversation, restored for display.

### What you send

| Field | Type | Where |
| --- | --- | --- |
| `id` required Which past conversation | string | address |

### What comes back

| Field | Type |
| --- | --- |
| `messages` The conversation, in order | object[] |
| `role` Who said it | "user" | "assistant" | "notice" |
| `text` The words | string |
| `run` The run that produced this row | string |
| `sentAt` When it was sent, in milliseconds | number |
| `messageId` The message's own id, on the… | string |
| `attachments` Files attached to this message, as… | string[] |
| `checkpointId` The saved point this message can… | string |
| `rewindIndex` This message's position in the conversation's… | integer |
| `thinking` What the agent was reasoning about | string |
| `tools` The tool calls this part of… | object[] |
| `id` The call's id | string |
| `name` Which tool | string |
| `category` What kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
| `status` How it went | "pending" | "in_progress" | "completed" | "failed" |
| `target` What it acted on, in one… | string |
| `locations` The files it touched | object[] |
| `path` The file, as a workspace path,… | string |
| `line` Which line, counting from one | number |
| `content` What it produced: text, a change… | object[] |
| `type` Plain output | "text" |
| `text` What the tool said | string |
| `children` Calls a delegated subagent made, nested… | object[] |
| `id` The call's id | string |
| `name` Which tool | string |
| `category` What kind of thing it does:… | "read" | "edit" | "delete" | "move" … (9) |
| `status` How it went | "pending" | "in_progress" | "completed" | "failed" |
| `target` What it acted on, in one… | string |
| `locations` The files it touched | object[] |
| `content` What it produced: text, a change… | object[] |
| `children` Calls a delegated subagent made, nested… | object[] |
| `nested` How many calls sit under this… | integer |
| `thinking` What the agent was reasoning about… | string |
| `subagent` The helper this call started, as… | object |
| `nested` How many calls sit under this… | integer |
| `thinking` What the agent was reasoning about… | string |
| `subagent` The helper this call started, as… | object |
| `id` Its own id, where that is… | string |
| `kind` | "subagent" | "spawned" |
| `agentType` | string |
| `description` | string |
| `model` | string |
| `provider` | string |
| `background` | boolean |
| `status` | "pending" | "running" | "blocked" | "completed" … (7) |
| `tokens` | number |
| `toolUses` | number |
| `lastTool` | string |
| `summary` | string |
| `error` | string |
| `verification` | object |
| `todos` The agent's task checklist, as of… | object[] |
| `content` The item, as the agent wrote… | string |
| `status` Where it is | "pending" | "in_progress" | "completed" |
| `activeForm` How to phrase it while it… | string |
| `usage` What the turn cost, on the… | object |
| `costUsd` | number |
| `inputTokens` | number |
| `outputTokens` | number |
| `durationMs` | number |
| `numTurns` | number |
| `notes` What the sandbox added to this… | object[] |
| `title` The one line a reader sees,… | string |
| `text` The note itself, which is also… | string |
| `speaker` Who sent this message, as the… | object |
| `when kind is "person"` | shape |
| `email` The signed-in member, as the sandbox… | string |
| `name` Their display name, where the sign-in… | string |
| `when kind is "program"` | shape |
| `token` The label of the control token… | string |
| `when kind is "agent"` | shape |
| `conversationId` The conversation whose agent is speaking:… | string |
| `when kind is "sandbox"` | shape |
| `source` What in the sandbox spoke: an… | string |
| `errand` What this message is for, when… | "land-conflict" | "verify-nudge" | "land-breakage" | "land-fix" … (10) |
| `placed` A person wrote this in the… | boolean |
| `noticeAction` A one-press follow-up this notice offers,… | "landHold" | "depsInstall" | "watchStop" | "sandboxMemory" … (6) |
| `sandboxHeld` The sandbox kept this refused turn… | boolean |
| `noticeWait` The wait this notice describes, by… | "credentialRenewal" | "chatRoute" | "watch" |
| `noticeWaitId` Which instance of the wait this… | string |
| `noticeCode` Which of the sandbox's own notices… | object |
| `code` Which of the sandbox's notices this… | string |
| `params` The facts the notice was worded… | object |
| `agentNotice` This notice was said by the… | object |
| `level` How loud it was said: a… | "info" | "warning" | "error" |
| `source` Who said it, when the runtime… | string |
| `plan` The plan this row asked approval… | object |
| `requestId` What to send back when you… | string |
| `text` The plan itself | string |
| `document` The write-up this plan refers to,… | object |
| `path` Where it lives, as a workspace… | string |
| `title` What it is called: its opening… | string |
| `markdown` The document itself | string |
| `truncated` It was clipped at the wire… | boolean |
| `plan` It is one of the CLI's… | boolean |
| `status` Where the decision stands | "pending" | "approved" | "rejected" | "cancelled" |
| `question` The questions this row asked, and… | object |
| `requestId` What to send back when you… | string |
| `questions` What it wants to know | object[] |
| `question` What the agent is asking | string |
| `header` A short label for the question | string |
| `multiSelect` Whether more than one answer can… | boolean |
| `options` The choices offered | object[] |
| `document` The document this turn wrote and… | object |
| `path` Where it lives, as a workspace… | string |
| `title` What it is called: its opening… | string |
| `markdown` The document itself | string |
| `truncated` It was clipped at the wire… | boolean |
| `plan` It is one of the CLI's… | boolean |
| `status` Where the answer stands | "pending" | "answered" | "cancelled" |
| `answers` What was chosen, keyed by the… | object |
| `attachments` Files the user attached to their… | object |
| `permission` The tool this row asked permission… | object |
| `toolName` Which tool it wants to use | string |
| `title` The whole question, as a sentence,… | string |
| `displayName` A short phrase for the button,… | string |
| `description` More about what it is asking… | string |
| `reason` Why it is asking at all:… | string |
| `path` Which file it concerns, when it… | string |
| `alwaysLabel` The wording for an always-allow answer | string |
| `alwaysAsks` This request asks every time: an… | true |
| `program` The program this request is holding,… | object |
| `text` What would run | string |
| `language` Which of the two backends it… | "bash" | "javascript" |
| `truncated` Whether this is an excerpt of… | boolean |
| `spans` Which fragments of the text the… | object[] |
| `child` The subagent this request would start… | object |
| `provider` Which provider serves it | string |
| `model` Which of that provider's models | string |
| `harness` Which agentic loop runs it | "native" | "claude-code" |
| `account` Which of that provider's connected accounts… | string |
| `effort` How hard it thinks, where the… | string |
| `thinking` Whether it reasons before it answers,… | boolean |
| `fast` Whether it asks for the faster… | boolean |
| `move` What the parent asks to do:… | "spawn" | "send" | "answer" |
| `child` The child's id, for one that… | string |
| `task` What the child is for, in… | string |
| `message` What the parent would say to… | string |
| `on` Which machine it runs on, when… | string |
| `proposed` What the agent asked to start… | object |
| `explain` One plain sentence saying what the… | string |
| `requestId` What to send back when you… | string |
| `status` Where the decision stands | "pending" | "allowed" | "always" | "everything" … (6) |
| `browserHelp` The browser hand-over this row asked… | object |
| `requestId` | string |
| `session` | string |
| `account` | string |
| `message` | string |
| `status` How the hand-over ended | "pending" | "helped" | "declined" | "cancelled" |
| `terminalHelp` The terminal hand-over this row asked… | object |
| `requestId` | string |
| `session` | string |
| `message` | string |
| `status` How the hand-over ended | "pending" | "helped" | "declined" | "cancelled" |
| `capabilityOffer` The capability setup this row asked… | object |
| `requestId` | string |
| `offer` | object |
| `entry` Which catalog entry is being asked… | string |
| `name` What it is called, as the… | string |
| `why` The agent's case for connecting it,… | string |
| `status` Where the decision stands | "pending" | "connecting" | "skipped" | "cancelled" |
| `outcome` How an accepted ask's setup ended… | object |
| `outcome` | "connected" | "unfinished" |
| `id` | string |
| `paymentOffer` The payment this row asked for,… | object |
| `requestId` | string |
| `offer` | object |
| `url` What is being paid for | string |
| `description` What the endpoint says it is | string |
| `payTo` Where the money goes, taken verbatim… | string |
| `network` On which network | string |
| `asset` In which token | string |
| `assetName` That token's name | string |
| `amountUsd` The exact price | string |
| `spentTodayUsd` What has already gone out today | string |
| `dailyCapUsd` What may go out in a… | string |
| `why` The agent's case for paying, and… | string |
| `status` Where the decision stands | "pending" | "approved" | "skipped" | "cancelled" |
| `receipt` How the approved payment ended (the… | object |
| `outcome` | "paid" | "failed" |
| `amountUsd` | string |
| `transaction` | string |
| `network` | string |
| `watchWake` The condition watch that woke this… | object |
| `outcome` How the watch ended: the condition… | "met" | "timeout" | "restart-expired" | "broken" |
| `note` The agent's own line on what… | string |
| `elapsed` How long the watch stood, already… | string |
| `sent` The whole prompt the model was… | string |
| `need` Something the agent asked a person… | object |
| `id` The need's handle, the one `needs… | string |
| `conversationId` The conversation that asked, and the… | string |
| `subject` What exactly is asked for | object |
| `kind` | "capability" |
| `entry` The catalog entry, as the catalog… | string |
| `name` What the catalog calls it, never… | string |
| `mode` Connect something new, give a connected… | "connect" | "reconnect" | "change" |
| `instance` The connection a reconnect or a… | string |
| `target` The site, host or address the… | string |
| `prefill` Settings the agent could fill in… | object |
| `changes` For a change: each setting and… | object |
| `reason` The daemon's own sentence on why… | string |
| `reported` The agent reported the credential refused… | boolean |
| `title` The one line it leads with,… | string |
| `why` The agent's case for it, and… | string |
| `status` Where it stands: open (waiting on… | "open" | "working" | "met" | "declined" … (5) |
| `createdAt` When it was raised, in milliseconds | number |
| `updatedAt` When it last moved, in milliseconds | number |
| `answeredBy` Who answered it, as the sandbox… | string |
| `outcome` How it ended, in the daemon's… | string |
| `told` How the agent heard the outcome,… | "call" | "turn" | "queued" |
| `unattended` Raised by a turn nobody was… | boolean |
| `needWake` The answered need that reached this… | object |
| `outcome` How the need ended: a person… | "met" | "declined" |
| `title` The need, as its card leads… | string |
| `id` The need's handle, which its live… | string |
| `sent` The whole prompt the model received,… | string |
| `agentWords` Another agent's words that reached this… | object |
| `kind` Who sent it: another conversation in… | "peer" | "child" |
| `from` The sending conversation's id | string |
| `title` The sender's title, when it had… | string |
| `failed` A child's report on a turn… | boolean |
| `sent` The whole prompt the model received,… | string |
| `backgroundJob` The background job this row marks… | object |
| `id` The daemon's handle for the job,… | string |
| `label` What the job is, in the… | string |
| `command` The command as the agent wrote… | string |
| `startedAt` When it started, in milliseconds | number |
| `credentialOffer` The gated credential this row asked… | object |
| `requestId` | string |
| `offer` | object |
| `subject` Which credential is being asked for | string |
| `kind` Whether this gate covers one stored… | "secret" | "capability" |
| `lane` What the credential was about to… | "shell" | "code" | "browser" | "session" … (5) |
| `detail` Where it would go: the start… | string |
| `why` The agent's case for using it,… | string |
| `approvers` Who may release it | string[] |
| `scope` How far one release goes: `use`… | "use" | "conversation" |
| `status` Where the decision stands | "pending" | "approved" | "skipped" | "cancelled" |
| `receipt` Who released it, or that somebody… | object |
| `outcome` | "released" | "refused" |
| `approvedBy` | string |

Try it answered in this tab

curl

```bash
curl "$SANDBOX/sessions/a1b2c3d4" \
 -H "x-intentic-control: $INTENTIC_TOKEN"
```

TypeScript

```typescript
import { sandbox } from "@intentic/sandbox-client";

const result = await sandbox.sessions.get({
 "id": "a1b2c3d4"
});
```

More in Agents

[Previous ← The fleet](https://intentic.dev/api/agents/)[Next Workflows →](https://intentic.dev/api/workflows/)
