Appearance
Assistant API
5 operations. Paths are relative to the API host (http://localhost:5080 in local development). Every operation accepts an OIDC bearer token (Authorization: Bearer …) or a workspace API key (X-Api-Key: keel_live_…); errors are RFC 9457 Problem Details with a code (error codes). Permissions: matrix.
| Method | Path | Summary |
|---|---|---|
| GET | /api/v1/workspaces/{workspaceId}/assistant/conversations | Your conversations in this workspace, most recent first. |
| GET | /api/v1/workspaces/{workspaceId}/assistant/conversations/{conversationId} | One of your conversations: questions, answers, citations and tool calls (result rows are not stored). |
| DELETE | /api/v1/workspaces/{workspaceId}/assistant/conversations/{conversationId} | Delete one of your conversations. |
| POST | /api/v1/workspaces/{workspaceId}/assistant/conversations/{conversationId}/turns/{turnId}:propose-metric | Draft the answer's proposed metric in a change request (EditModels): a branch, a commit and an open change request. |
| POST | /api/v1/workspaces/{workspaceId}/assistant/messages | Ask a question: the assistant answers through the semantic tools (no SQL), citing the metrics it used. |
ListAssistantConversations
http
GET /api/v1/workspaces/{workspaceId}/assistant/conversationsYour conversations in this workspace, most recent first.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes |
| Status | Description | Body |
|---|---|---|
| 200 | OK | AssistantConversationSummaryDto[] |
GetAssistantConversation
http
GET /api/v1/workspaces/{workspaceId}/assistant/conversations/{conversationId}One of your conversations: questions, answers, citations and tool calls (result rows are not stored).
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
conversationId | path | uuid | yes |
| Status | Description | Body |
|---|---|---|
| 200 | OK | AssistantConversationDto |
Response 200: AssistantConversationDto
| Field | Type | Notes |
|---|---|---|
createdAt | date-time | |
id | uuid | |
lastActivityAt | date-time | |
modelId | uuid | |
title | string | |
turns | AssistantTurnDto[] |
DeleteAssistantConversation
http
DELETE /api/v1/workspaces/{workspaceId}/assistant/conversations/{conversationId}Delete one of your conversations.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
conversationId | path | uuid | yes |
| Status | Description | Body |
|---|---|---|
| 204 | No Content | — |
ProposeAssistantMetric
http
POST /api/v1/workspaces/{workspaceId}/assistant/conversations/{conversationId}/turns/{turnId}:propose-metricDraft the answer's proposed metric in a change request (EditModels): a branch, a commit and an open change request.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes | |
conversationId | path | uuid | yes | |
turnId | path | uuid | yes |
| Status | Description | Body |
|---|---|---|
| 200 | OK | MetricDraftedDto |
| 422 | Unprocessable Entity | ProblemDetails |
Response 200: MetricDraftedDto
| Field | Type | Notes |
|---|---|---|
branch | string | |
modelId | uuid | |
number | int32 |
AskAssistant
http
POST /api/v1/workspaces/{workspaceId}/assistant/messagesAsk a question: the assistant answers through the semantic tools (no SQL), citing the metrics it used.
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
workspaceId | path | uuid | yes |
Request body (application/json): AssistantMessageRequest
| Field | Type | Notes |
|---|---|---|
conversationId | uuid? | Continue a conversation; omit to start one. |
modelId | uuid? | New conversations: the model to ask about (default: the workspace's first released model). |
text | string |
| Status | Description | Body |
|---|---|---|
| 200 | OK | AssistantReplyDto |
| 422 | Unprocessable Entity | ProblemDetails |
Response 200: AssistantReplyDto
| Field | Type | Notes |
|---|---|---|
conversationId | uuid | |
modelId | uuid | |
turn | AssistantTurnDto |