---
title: "Get Lab Detail"
method: GET
path: "/v1/metrics-lab/lab/{lab_id}"
tags: ["Metrics Lab"]
---

# Get Lab Detail

`GET /v1/metrics-lab/lab/{lab_id}`

Get a lab's full state: conversations, metrics, AI annotations, human labels,
and metric revisions with their AI evaluations.

This is the read side of the iterate loop: poll it after queueing evaluations to
observe results (each evaluation carries a ``status`` of QUEUED/EVALUATING/COMPLETED/…)
and to compare a revision's results against the base metric and human labels.

## Path parameters

- `lab_id` string, uuid, required

## Headers

- `X-API-Key` string, required

## Response `200`

Successful Response

- LabDetailResponse — Full state of a lab. Mirrors the frontend LabDetail shape.
  - `lab` LabSummary, required — The lab record itself.
    - `id` string, required — Lab ID (UUID as string)
    - `name` string, required — Name of the lab
    - `description` string, nullable — Description of the lab
    - `tags` string[], nullable — Tags on the lab
    - `created_at` string, date-time, nullable — When the lab was created
  - `conversations` LabConversationDetail[], required
    - `id` string, required — Stable id: call_id for obs_conversations, 'test_<id>' for sim_conversations
    - `type` 'obs_conversation' | 'sim_conversation', required — Conversation source type
    - `call_id` string, nullable — obs_conversation_id, stored in the call_id column (when type='obs_conversation')
    - `test_result_id` integer, nullable — sim_conversation_id, stored in the test_result_id column (when type='sim_conversation')
    - `agent_id` integer — Agent the conversation belongs to (0 if unresolved)
    - `start_time_utc` string, date-time, nullable — When the conversation started
    - `duration_ms` integer, nullable — Duration in ms (calls)
    - `duration_s` integer, nullable — Duration in seconds (test results)
    - `status` string, nullable — Conversation status
    - `tags` string[], nullable — Tags (calls only)
  - `metrics` LabMetricDetail[], required
    - `id` string, required — Custom metric ID (UUID as string)
    - `name` string, required — Metric name
    - `prompt` string, nullable — Metric LLM-judge prompt (legacy alias: description)
    - `response_type` string, nullable — Metric response type
    - `category` string, nullable — Metric category
    - `min_value` number, nullable — Minimum value (numeric metrics)
    - `max_value` number, nullable — Maximum value (numeric metrics)
    - `enum_options` string[], nullable — Enum options (enum metrics)
    - `eval_route` string, nullable — Evaluation route (renamed column: eval_modality)
    - `model` string, nullable — Model used for evaluation
    - `audio_model` string, nullable — Audio model used for evaluation
    - `temperature` number, nullable — Evaluation temperature
    - `allow_not_applicable` boolean, nullable — Whether 'not applicable' is allowed
  - `human_evaluations` LabHumanEvaluationDetail[], required
    - `id` string, required
    - `custom_metric_id` string, required
    - `call_id` string, nullable
    - `test_result_id` integer, nullable
    - `human_response_value` string, nullable
    - `human_reasoning` string, nullable
    - `created_at` string, date-time, nullable
  - `ai_evaluations` LabAnnotateAIEvaluationDetail[], required
    - `id` string, required
    - `custom_metric_id` string, required
    - `call_id` string, nullable
    - `test_result_id` integer, nullable
    - `response_value` string, nullable
    - `reasoning` string, nullable
    - `status` string, nullable
    - `created_at` string, date-time, nullable
  - `metric_revisions` LabMetricRevisionDetail[], required
    - `id` string, required
    - `custom_metric_id` string, required
    - `lab_id` string, required
    - `revision_number` integer, required
    - `description` string, nullable
    - `eval_route` string, nullable
    - `model` string, nullable
    - `audio_model` string, nullable
    - `temperature` number, nullable
    - `eval_enabled` string, nullable
    - `allow_not_applicable` boolean, nullable
    - `created_at` string, date-time, nullable
  - `lab_ai_evaluations` LabAIEvaluationDetail[], required
    - `id` string, required
    - `lab_metric_revision_id` string, required
    - `call_id` string, nullable
    - `test_result_id` integer, nullable
    - `response_value` string, nullable
    - `reasoning` string, nullable
    - `status` string, nullable
    - `created_at` string, date-time, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/getbluejay/apis/bluejay-api.md) · [All operations](https://skmtc.net/getbluejay/apis/bluejay-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/getbluejay/bluejay-api/versions/f48cef80963f/schema)
