---
title: "List fine-tuning checkpoints"
method: GET
path: "/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints"
tags: ["Fine-tuning"]
---

# List fine-tuning checkpoints

`GET /fine_tuning/jobs/{fine_tuning_job_id}/checkpoints`

## Request

- Base URL: `https://api.openai.com/v1`
- URL: `https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints`
- Auth: HTTP bearer

List checkpoints for a fine-tuning job.

## Path parameters

- `fine_tuning_job_id` string, required

## Query parameters

- `after` string
- `limit` integer

## Response `200`

OK

- ListFineTuningJobCheckpointsResponse
  - `data` FineTuningJobCheckpoint[], required
    - `id` string, required: The checkpoint identifier, which can be referenced in the API endpoints.
    - `created_at` integer, required: The Unix timestamp (in seconds) for when the checkpoint was created.
    - `fine_tuned_model_checkpoint` string, required: The name of the fine-tuned checkpoint model that is created.
    - `step_number` integer, required: The step number that the checkpoint was created at.
    - `metrics` object, required: Metrics at the step number during the fine-tuning job.
      - `step` number
      - `train_loss` number
      - `train_mean_token_accuracy` number
      - `valid_loss` number
      - `valid_mean_token_accuracy` number
      - `full_valid_loss` number
      - `full_valid_mean_token_accuracy` number
    - `fine_tuning_job_id` string, required: The name of the fine-tuning job that this checkpoint was created from.
    - `object` 'fine_tuning.job.checkpoint', required: The object type, which is always "fine_tuning.job.checkpoint".
  - `object` 'list', required
  - `first_id` string, nullable
  - `last_id` string, nullable
  - `has_more` boolean, required

## Other responses

- `400`: The query parameters are invalid.
- `404`: The fine-tuning job was not found or is not accessible.
- `429`: The request rate limit has been exceeded.

## Changes

- **2026-10-06** `487892d3954e`: 3 info
  - added the optional property `error/misalignment/review_target` to the response with the `400` status
  - added the optional property `error/misalignment/review_target` to the response with the `404` status
  - added the optional property `error/misalignment/review_target` to the response with the `429` status
- **2026-10-05** `7f654af7f94f`: 2 breaking, 3 info
  - response property `first_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `last_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - added the non-success response with the status `400`
  - added the non-success response with the status `404`
  - …1 more

[Operation history](https://skmtc.dev/omnistack-sh/apis/openai-api/changes/fine_tuning/jobs/:fine_tuning_job_id/checkpoints/get.md)

---

[API](https://skmtc.dev/omnistack-sh/apis/openai-api.md) - [All operations](https://skmtc.dev/omnistack-sh/apis/openai-api/llms.txt) - [OpenAPI document](https://skmtc.dev/omnistack-sh/apis/openai-api/revisions/0a26f104d35f?raw)
