---
title: "Save an interactive training job's training state"
method: POST
path: "/v1/training/jobs/{job_id}/save-weights"
tags: ["training"]
---

# Save an interactive training job's training state

`POST /v1/training/jobs/{job_id}/save-weights`

## Request

- Base URL: `https://api.fastino.ai`
- URL: `https://api.fastino.ai/v1/training/jobs/{job_id}/save-weights`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Save the LoRA weights and optimizer state under a name, to load later or start a new job from (Tinker's `save_state`). Read the result at GET /v1/training/jobs/{job_id}/futures/{future_id}.

## Path parameters

- `job_id` string, required

## Headers

- `Idempotency-Key` string, nullable: Client-generated key (a UUID is ideal; it must be URL-safe to look it up) that makes the call safe to send again after a lost response. A repeat with the same key and body from the same caller returns the first call's answer (the same job and future) without running or billing it again, or a 409 while the first call still runs; the same key with another route, job, body or caller is a 422. Look a key up with GET /v1/training/operations/{idempotency_key}.

## Request body

- SaveWeightsBody: ``POST .../save-weights``: save the training state (which a job can load or start from) under a name.
  - `name` string, required: 1-128 characters from [A-Za-z0-9._-].
  - `overwrite` boolean: Replace a state of the same name.
  - `ttl_seconds` integer, nullable: 1 hour to 10 years; none keeps it until deleted.
  - `user_metadata` object, nullable

## Response `200`

Successful Response

- SaveWeightsAccepted: A queued save, and the checkpoint it writes.
  - `checkpoint_id` string, required: `weights/<name>` or `sampler_weights/<name>`.
  - `future_id` string, required
  - `job_id` string, required
  - `path` string, required: The checkpoint's `tinker://` path.
  - `type` string, required: The call: create, load, forward, forward_backward, optim_step, save, sample.

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-17** `81465e18c1d2`: 1 info
  - added the new optional `header` request parameter `Idempotency-Key`
- **2026-10-15** `eef86c1497c1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/changes/v1/training/jobs/:job_id/save-weights/post.md)

---

[API](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api.md) - [All operations](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fastino-ai/apis/pioneer-inference-api/revisions/81465e18c1d2?raw)
