# GET /v1/conversations/{conversation_id}

> One conversation: status (idle, replying, working, waiting), its open work, its open approvals.

In [Conversations API](https://vestra.ai/developers/reference/api/conversations.md): Ask Bash in a conversation, follow its reply as it happens, and stop it.

Send `Authorization: Bearer vk_test_...` on every call.

One conversation: status (idle, replying, working, waiting), its open work, its open approvals.

Your API key, or a session's token, scope `runtime` or `all`. On the card: [`ask`](https://vestra.ai/developers/ask.md). Every call here is a checked sample.

## Request

Path:

- `conversation_id` (`string`, required): The conversation's id (`conv_...`).

## Answers 200

- `id` (`string`): The conversation (conv_...). Example: `conv_8f2k`.
- `object` (`"conversation"`): Always conversation.
- `user_id` (`string | null`): Your id for the user; null on your company's own Bash, and on an agent's conversation over A2A that names no user.
- `deployment_id` (`string | null`): The deployment that answers it (dep_...); null when it has none.
- `deployment_version` (`integer | null`): The version of the deployment it runs on: in test mode the one it started on, in live mode the one live at its last message. Null with no deployment.
- `status` (`"idle" | "replying" | "working" | "waiting"`): What the conversation is doing. idle: nothing. replying: Bash is writing its reply. working: work Bash started is running. waiting: Bash waits on an approval, a question or a call to one of your tools.
- `metadata` (`map of string`): Your labels, as you sent them; empty when you sent none.
- `created_at` (`string`): When it started, as an ISO 8601 time.
- `last_active_at` (`string`): When a message or its work last changed it, as an ISO 8601 time.
- `open_work` (`object[]`): Work Bash started that has not ended, oldest first.
  - `task_id` (`string`): The task (task_...).
  - `title` (`string | null`): What the work is, in a few words; null until Bash names it.
  - `status` (`"queued" | "working" | "waiting" | "done" | "failed"`): Where a piece of work is. queued: not started yet. working: running on the user's computer. waiting: it waits on an approval or a question. done or failed: it has ended.
- `open_interactions` (`object[]`): Approvals and questions Bash waits on.
  - `interaction_id` (`string`): The approval or question, to answer by its id (int_...).
  - `task_id` (`string`): The task that asked (task_...).
  - `kind` (`string`): What it asks for, as stored: such as tool_permission, ask_question or composio_auth.
- `pending_tool_calls` (`object[]`): Calls to your tools that wait on your answer.
  - `call_id` (`string`): The call, to answer by its id (call_...).
  - `name` (`string`): The tool Bash called.
  - `arguments` (`any`): What Bash passed, matching the input schema of the tool.
  - `task_id` (`string | null`): The task that made the call; null when Bash's reply made it.
- `last_event_seq` (`integer`): The seq of the newest event on its stream: read the conversation, then follow its events after this seq, and you miss nothing.
- `cost_usd` (`number`): What it has cost so far, in billed US dollars: Bash's replies, all its work and its voice calls. Example: `0.0412`.
- `cost_breakdown` (`object`): The same cost, by kind of spend.
  - `orchestrator` (`number`): Bash's own replies in the conversation, in billed US dollars; 0 on a piece of work.
  - `intelligence` (`number`): The thinking Bash did while it worked, in billed US dollars.
  - `tools` (`number`): The tools and apps Bash used, in billed US dollars.
  - `compute` (`number`): Time on Bash's computer, in billed US dollars.
  - `background` (`number`): Work Bash did in the background, such as remembering and tidying, in billed US dollars.
  - `voice` (`number`): Voice call time, in billed US dollars.

## Code

**HTTP**

```bash
# The conversation answers what it has cost so far.
curl "$VESTRA_BASE_URL/v1/conversations/conv_8f2k" \
  -H "Authorization: Bearer $VESTRA_API_KEY"

# The receipt: every charge behind it, newest first.
curl "$VESTRA_BASE_URL/v1/usage/line-items?conversation_id=conv_8f2k" \
  -H "Authorization: Bearer $VESTRA_API_KEY"
```

**TypeScript, Python, CLI, MCP**: No sample in your language for this route, so here it is over HTTP.
