# GET /v1/conversations

> Conversations, newest first: one user's with user_id, or every one of the company's without it (the company's own Bash shows user_id null).

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.

Conversations, newest first: one user's with user_id, or every one of the company's without it (the company's own Bash shows user_id null).

Your API key, scope `runtime` or `all`. On the card: [`ask`](https://vestra.ai/developers/ask.md). Over HTTP it is made from the contract: fill in every value.

## Request

Query:

- `limit` (`integer`): How many items per page, 1 to 100. Default 20.
- `cursor` (`string`): Where to go on from: the `next_cursor` of the page before, unchanged. Absent: the first page.
- `user_id` (`string`): Only this user's conversations, by your id for them. Absent: every conversation of your company.

## Answers 200

- `data` (`object[]`): The items on this page.
  - `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.
- `next_cursor` (`string | null`): Send it as `cursor` for the next page; null on the last page.

## Code

**HTTP**

```bash
curl "$VESTRA_BASE_URL/v1/conversations" \
  -H "Authorization: Bearer $VESTRA_API_KEY"
```

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