---
title: "Get Inference Detail"
method: GET
path: "/inferences/{inference_id}"
tags: ["inference-history"]
---

# Get Inference Detail

`GET /inferences/{inference_id}`

Get a single inference record by ID.

Args:
    inference_id: The inference record UUID
    auth: Authentication result with user_id

Returns:
    InferenceRecord with full details

Raises:
    HTTPException: 404 if inference not found or outside the caller's team

## Path parameters

- `inference_id` string, required

## Response `200`

Successful Response

- InferenceRecord — Stored inference record from the database. Attributes: status: Inference outcome -- 'success' or 'failed'. error_type: Failure category when status is 'failed'. error_message: Error detail when status is 'failed'.
  - `id` string, required — Unique inference ID
  - `user_id` string, required — User who made the inference
  - `model_id` string, required — Model ID used for inference
  - `model_name` string, nullable — Human-readable model name
  - `task` string, nullable — Task type (legacy; may be NULL for new inferences)
  - `input` string, required — Input text
  - `output` unknown
  - `latency_ms` integer, nullable — End-to-end latency in milliseconds
  - `ttft_ms` integer, nullable — Streaming time to first visible output chunk in milliseconds; null for non-streaming calls and streams with no visible payload.
  - `tokens` integer, nullable — Token count
  - `input_tokens` integer, nullable — Non-cached input/prompt tokens, sourced from the metered requests row. None when no billing row was recorded.
  - `output_tokens` integer, nullable — Output/completion tokens, sourced from the metered requests row.
  - `cache_read_tokens` integer, nullable — Input tokens served from the provider prompt cache (cache hit).
  - `cache_write_tokens` integer, nullable — Input tokens written into the provider prompt cache (cache creation). Zero for providers that bill writes as plain input.
  - `source` string — Source of the request (api or ui)
  - `status` string — Inference status: success or failed
  - `error_type` string, nullable — Failure category when status is failed (validation, timeout, model_not_ready, model_not_found, model_not_supported, capacity_exhausted, internal)
  - `error_message` string, nullable — Error detail when status is failed
  - `created_at` string, date-time, required — When the inference was made
  - `project_id` string, nullable — Project ID the model belongs to
  - `training_job_id` string, nullable — Training job UUID that produced the model
  - `provider` string, nullable — Inference provider (aws, modal, fireworks, etc.)
  - `base_model` string, nullable — HuggingFace base model ID
  - `metadata` object, nullable — Extensible metadata (e.g. LLM judge results)
  - `human_verdict` string, nullable — Human reviewer verdict (correct/incorrect)
  - `human_corrected_output` unknown
  - `human_feedback_notes` string, nullable — Optional reviewer notes
  - `human_feedback_at` string, date-time, nullable — When human feedback was submitted
  - `llmaj_verdict` 'pass' | 'fail' | 'uncertain', nullable — LLMAJ judge verdict ('pass', 'fail', or 'uncertain'); None until judged.
  - `llmaj_score` number, nullable — LLMAJ judge confidence score in [0.0, 1.0]; None until judged.
  - `llmaj_judged_at` string, date-time, nullable — Timestamp when LLMAJ judgment was recorded; None until judged.
  - `llmaj_reasoning` string, nullable — LLMAJ judge reasoning/explanation; None until judged.

## Other responses

- `404` — Inference not found.
- `422` — Validation Error
- `503` — Inference history dependency is temporarily unavailable.

---

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