---
title: "List Trained Models"
method: GET
path: "/felix/trained-models"
tags: ["felix"]
---

# List Trained Models

`GET /felix/trained-models`

List all completed/trained models for the authenticated user.

Args:
    project_id: Optional project filter. When supplied, only models
        assigned to that project are returned (still subject to the
        caller's visibility scope). Used by the agent to keep model
        discovery scoped to the user-selected project.

## Query parameters

- `project_id` string, nullable

## Response `200`

Successful Response

- TrainingJobListResponse — List of training jobs response.
  - `success` boolean, required
  - `training_jobs` TrainingJobResponse[], required
    - `id` string, required
    - `user_id` string, required
    - `project_id` string, nullable — Project ID this training job is associated with
    - `model_name` string, nullable
    - `datasets` DatasetReference[], required
      - `name` string, required — Dataset name
      - `version` string, nullable — Version (latest if omitted)
    - `base_model` string, required
    - `validation_data_percentage` number, required
    - `nr_epochs` integer, required
    - `learning_rate` number, required
    - `batch_size` integer, required
    - `trained_model_path` string, nullable
    - `job_reference` string, nullable
    - `instance_type` string, nullable
    - `status` string, required
    - `normalized_status` string, nullable — Canonical status alias for compatibility handling (requested, running, complete, deployed, failed, cancelled)
    - `is_terminal_status` boolean, nullable — Whether this status is terminal for polling loops
    - `error_message` string, nullable
    - `created_at` string, required
    - `updated_at` string, required
    - `started_at` string, nullable
    - `completed_at` string, nullable
    - `model_auto_selected` boolean, nullable
    - `model_selection_reason` string, nullable
    - `task_type` string, nullable — Task type derived from training datasets: 'ner', 'classification', 'custom', or 'decoder'
    - `labels` string[], nullable — Merged labels from training datasets (entity types for NER, class labels for classification)
    - `example` string, nullable — Sample text to pre-load into inference input
    - `metrics` object, nullable — Training and evaluation metrics dictionary. Contains final_training_loss, final_validation_loss, best_validation_loss from training logs, and optional evaluation metrics (f1_score, precision_score, recall_score, accuracy) if an evaluation has been run.
    - `version_number` string, nullable — Version number for this training job (e.g., '1', '2', '3')
    - `root_job_id` string, nullable — ID of the original/root training job this version derives from
    - `provider_deployments` object, nullable — Provider-specific deployment metadata written by the training monitor. For Fireworks: {"fireworks": {"deployment_name": ...}}.
    - `provider_name` string, nullable — Training provider that handled this job (e.g. 'fireworks', 'modal').
    - `progress_percent` integer, nullable — Overall training completion percentage (0-100). Updated live during training.
    - `current_epoch` integer, nullable — Epoch currently in progress (1-indexed). Updated live during training.
    - `deployment_status` string, nullable, required — Deprecated. Always returns None -- deployment_status no longer exists. Kept for backward compat with clients that read this field.
  - `count` integer, required
  - `total` integer — Total number of matching jobs (before pagination).
  - `has_more` boolean — True when more results exist beyond this page.

## Other responses

- `422` — Validation Error

---

[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)
