---
title: "Complete a checkpoint upload."
method: POST
path: "/v1/checkpoints/{id}/complete"
tags: ["checkpoints"]
---

# Complete a checkpoint upload.

`POST /v1/checkpoints/{id}/complete`

## Request

- Base URL: `https://api.smolmachines.com`
- URL: `https://api.smolmachines.com/v1/checkpoints/{id}/complete`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/smolmachines/apis/smolfleet-api/docs/v1/checkpoints/:id/complete/post.ts> (a function with typed inputs; its response is checked against the schema)

Joins the uploaded parts and reads the checkpoint's manifest. The checkpoint
is then `available` and can be restored. Requires the `machine:create` scope.

## Path parameters

- `id` string, required

## Response `200`

Checkpoint ready to restore

- PortableCheckpointInfo: Portable live-state capture; only `available` denotes a completed upload.
  - `arch` string, required
  - `createdAt` string, required
  - `downloadUrl` string, required: Authenticated endpoint that downloads the `.smolcheckpoint` file.
  - `engineVersion` string, nullable: smolvm version of the node that captured it. A restore is only placed on a node at this version or newer. Absent for older checkpoints, which restore anywhere.
  - `id` string, required
  - `machineDeleted` boolean: The machine it was captured from has been deleted. The checkpoint stays until it is deleted itself, and can still be restored or downloaded.
  - `machineId` string, required
  - `sizeBytes` integer, required
  - `status` string, required: `creating`, `uploading`, `available`, `failed`, or `deleting`.

## Other responses

- `401`: Missing or invalid API key
- `403`: Key lacks the required scope
- `404`: Not found
- `409`: Checkpoint is not an upload in progress
- `422`: Upload incomplete or not a restorable checkpoint
- `429`: Rate limited; retry after the Retry-After header
- `500`: Internal error

## Changes

- **2026-10-16** `bc31fc04a568`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smolmachines/apis/smolfleet-api/changes/v1/checkpoints/:id/complete/post.md)

---

[API](https://skmtc.dev/smolmachines/apis/smolfleet-api.md) - [All operations](https://skmtc.dev/smolmachines/apis/smolfleet-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smolmachines/apis/smolfleet-api/revisions/bc31fc04a568?raw)
