---
title: "List Inference History"
method: GET
path: "/inferences"
tags: ["inference-history"]
---

# List Inference History

`GET /inferences`

List inference history for the authenticated user.

Returns all inference records across all model types (NER, classification,
JSON extraction, decoder) sorted by most recent first.

Args:
    auth: Authentication result with user_id
    limit: Maximum number of records to return (default 100, max 500)
    offset: Number of records to skip for pagination
    model_id: Optional filter by model ID
    task: Optional filter by task type
    project_id: Optional filter by project ID
    training_job_id: Optional filter by training job ID
    latency_min/latency_max: Inclusive latency window in ms.
    llmaj_score_min/llmaj_score_max: Inclusive LLMAJ-score window
        in [0.0, 1.0].
    since: Optional inclusive lower bound on ``created_at`` (ISO 8601).
    until: Optional exclusive upper bound on ``created_at`` (ISO 8601).

Returns:
    InferenceListResponse with paginated inference records.

Raises:
    HTTPException: 422 when ``min`` is greater than its paired
        ``max`` — returning an empty page would silently mask the
        caller's misordered query.

## Query parameters

- `limit` integer — Maximum records to return
- `offset` integer — Number of records to skip
- `model_id` string, nullable — Filter by model ID
- `task` string, nullable — Filter by task type
- `project_id` string, nullable — Filter by project ID
- `training_job_id` string, nullable — Filter by training job ID
- `latency_min` number, nullable — Minimum latency in ms (must be >= 0).
- `latency_max` number, nullable — Maximum latency in ms (must be >= 0).
- `llmaj_score_min` number, nullable — Minimum LLM-as-Judge score in [0.0, 1.0].
- `llmaj_score_max` number, nullable — Maximum LLM-as-Judge score in [0.0, 1.0].
- `since` string, nullable — Inclusive lower bound on created_at (ISO 8601, UTC).
- `until` string, nullable — Exclusive upper bound on created_at (ISO 8601, UTC).

## Response `200`

Successful Response

- InferenceListResponse — Response for listing inference history.
  - `inferences` InferenceRecord[], required — List of inference records
    - `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.
  - `total` integer, required — Total count of inferences matching filters
  - `limit` integer, required — Page size limit
  - `offset` integer, required — Current offset

## Other responses

- `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/revisions/31dfe831e079/schema)
