---
title: "GET /api/v1/admin/ai/conversations/{conversationId}"
method: GET
path: "/api/v1/admin/ai/conversations/{conversationId}"
tags: ["Administration", "AI Operations"]
---

# GET /api/v1/admin/ai/conversations/{conversationId}

`GET /api/v1/admin/ai/conversations/{conversationId}`

Returns canonical PostgreSQL metadata plus independently available turn, guardrail, execution, and evaluation telemetry for one conversation without loading its transcript. Canonical metadata remains available when a telemetry source is unavailable.

## Path parameters

- `conversationId` string, uuid, required

## Cookies

- `billing_session` string

## Response `200`

PII-free conversation execution metadata.

- object
  - `conversation` object, required
    - `activityAt` string, date-time, required
    - `agentMode` 'keyword' | 'triage', required
    - `archivedAt` string, date-time, nullable
    - `attachmentCount` integer, nullable, required
    - `blockedTurnCount` integer, nullable, required
    - `contentAvailable` boolean, required
    - `configuredModel` string, required
    - `conversationId` string, uuid, required
    - `createdAt` string, date-time, required
    - `estimatedCostMicrousd` integer, nullable, required
    - `evaluationFailCount` integer, nullable, required
    - `evaluationReviewCount` integer, nullable, required
    - `firstTurnAt` string, date-time, nullable, required
    - `highestRiskLevel` 'low' | 'medium' | 'high' | 'critical' | 'null', nullable, required
    - `lastTurnAt` string, date-time, nullable, required
    - `models` string[], nullable, required
    - `productId` integer, required
    - `source` 'dashboard' | 'landing', required
    - `subscriberUserId` integer, required
    - `shareActive` boolean
    - `telemetry` object, required
      - `expectedTurnCount` integer, required
      - `missingTurnCount` integer, required
      - `observedTurnCount` integer, required
      - `status` 'complete' | 'missing' | 'not_expected' | 'partial' | 'unavailable', required
      - `unexpectedTurnCount` integer, required
    - `toolCallCount` integer, nullable, required
    - `totalTokens` integer, nullable, required
    - `turnCount` integer, nullable, required
  - `evaluations` object[], required
    - `actor` 'expert_ai' | 'triage', required
    - `agentTurnEventId` string, required
    - `attachmentUseScore` integer, nullable, required
    - `conversationId` string, uuid, required
    - `correctnessScore` integer, nullable, required
    - `evaluationDurationMs` integer, required
    - `evaluationCodes` string[], required
    - `evaluationTrigger` 'error' | 'sample' | 'security' | 'tool', required
    - `evaluationVersion` string, required
    - `evaluatorModel` string, required
    - `engineVersion` string, nullable, required
    - `eventId` string, required
    - `groundednessScore` integer, nullable, required
    - `handoffScore` integer, nullable, required
    - `helpfulnessScore` integer, nullable, required
    - `instructionFollowingScore` integer, nullable, required
    - `occurredAt` string, date-time, required
    - `outcome` 'pass' | 'fail' | 'review', required
    - `policyVersion` string, nullable, required
    - `promptVersion` string, nullable, required
    - `sampleBucket` integer, required
    - `safetyScore` integer, nullable, required
    - `toneScore` integer, nullable, required
    - `targetModel` string, nullable, required
    - `telemetryVersion` integer, nullable, required
    - `traceId` string, required
    - `triageScore` integer, nullable, required
    - `uncertaintyScore` integer, nullable, required
  - `executions` object[], required
    - `containerStarted` boolean, required
    - `durationMs` integer, required
    - `escalationReason` 'justbash_file_count_exceeded' | 'justbash_input_format_unsupported' | 'justbash_input_size_exceeded' | 'justbash_operation_unsupported' | 'justbash_output_format_unsupported' | 'worker_output_format_unsupported' | 'null', nullable, required
    - `eventId` string, required
    - `executionTier` 'direct_model' | 'worker' | 'justbash' | 'linux', required
    - `inputBytes` integer, required
    - `occurredAt` string, date-time, required
    - `operation` 'answer' | 'analyze_attachment' | 'web_search' | 'generate_csv' | 'generate_json' | 'generate_markdown' | 'generate_text' | 'generate_xlsx' | 'combine_csv' | 'filter_csv' | 'filter_text' | 'query_json' | 'transform_text' | 'browser_render' | 'convert_document' | 'imagemagick' | 'native_tool' | 'ocr' | 'pandas', required
    - `outputBytes` integer, required
    - `result` 'escalated' | 'failed' | 'started' | 'success', required
    - `sandboxAvoided` boolean, required
    - `submissionId` string, nullable, required
    - `traceId` string, required
  - `generatedAt` string, date-time, required
  - `period` object, required
    - `from` string, date-time, required
    - `to` string, date-time, required
  - `provenance` object, required
    - `conversationTelemetry` 'exact_app' | 'unavailable', required
    - `evaluations` 'model_judgment' | 'unavailable', required
    - `executions` 'exact_app' | 'unavailable', required
    - `inventory` 'exact_postgres', required
    - `securityEvents` 'exact_app' | 'unavailable', required
    - `turns` 'exact_app' | 'unavailable', required
  - `securityEvents` object[], required
    - `actor` 'expert_ai' | 'triage', required
    - `agentTurnEventId` string, required
    - `blockedReason` string, nullable, required
    - `buffered` boolean, required
    - `conversationId` string, uuid, required
    - `eventId` string, required
    - `executionTier` 'direct_model' | 'worker' | 'justbash' | 'linux' | 'null', nullable, required
    - `granularity` 'guardrail_decision', required
    - `guardrailDecision` 'allow' | 'rewrite' | 'block', required
    - `judgeLatencyMs` integer, required
    - `judgeModel` string, nullable, required
    - `messageId` string, uuid, required
    - `occurredAt` string, date-time, required
    - `policyCodes` string[], required
    - `policyVersion` string, required
    - `requiresJudge` boolean, required
    - `requiresBufferedResponse` boolean, required
    - `reviewCount` integer, required
    - `riskCategories` string[], required
    - `riskLevel` 'low' | 'medium' | 'high' | 'critical', required
    - `stage` 'input' | 'pre_tool' | 'tool_result' | 'output' | 'attachment', required
    - `submissionId` string, nullable, required
    - `toolName` string, nullable, required
    - `traceId` string, required
    - `rewriteCount` integer, required
  - `truncation` object, required
    - `evaluations` object, required
      - `hasMore` boolean, required
      - `limit` 500, required
    - `executions` object, required
      - `hasMore` boolean, required
      - `limit` 1000, required
    - `securityEvents` object, required
      - `hasMore` boolean, required
      - `limit` 500, required
    - `turns` object, required
      - `hasMore` boolean, required
      - `limit` 500, required
  - `turns` object[], required
    - `actor` 'expert_ai' | 'triage', required
    - `attachmentCount` integer, required
    - `durationMs` integer, required
    - `engineVersion` string, required
    - `estimatedCostMicrousd` integer, required
    - `eventId` string, required
    - `executionTier` 'direct_model' | 'worker' | 'justbash' | 'linux', required
    - `guardrailDecision` 'allow' | 'rewrite' | 'block', required
    - `messageId` string, uuid, required
    - `model` string, required
    - `occurredAt` string, date-time, required
    - `operation` 'answer' | 'analyze_attachment' | 'web_search' | 'generate_csv' | 'generate_json' | 'generate_markdown' | 'generate_text' | 'generate_xlsx' | 'combine_csv' | 'filter_csv' | 'filter_text' | 'query_json' | 'transform_text' | 'browser_render' | 'convert_document' | 'imagemagick' | 'native_tool' | 'ocr' | 'pandas', required
    - `policyVersion` string, required
    - `promptVersion` string, required
    - `riskLevel` 'low' | 'medium' | 'high' | 'critical', required
    - `submissionId` string, required
    - `telemetryVersion` integer, required
    - `toolNames` string[], required
    - `totalTokens` integer, required
    - `traceId` string, required

## Other responses

- `400` — The conversation identifier, query, or session cookie is invalid.
- `401` — No valid global administrator session exists.
- `404` — The conversation does not exist.
- `503` — The canonical conversation store is unavailable.

---

[API](https://skmtc.dev/expertschat/apis/billing-core-api.md) · [All operations](https://skmtc.dev/expertschat/apis/billing-core-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/expertschat/billing-core-api/revisions/c6d0e986ce32/schema)
