---
title: "Update run status"
method: POST
path: "/api/runs/status/update"
tags: ["Runs"]
---

# Update run status

`POST /api/runs/status/update`

## Request

- Base URL: `https://pluto-api.trainy.ai`
- URL: `https://pluto-api.trainy.ai/api/runs/status/update`
- Auth: HTTP bearer

Updates the status of an existing run (e.g., RUNNING, COMPLETED, FAILED).

## Request body

- UpdateStatusRequest
  - `runId` number, required: Numeric ID of the run
  - `status` 'RUNNING' | 'COMPLETED' | 'FAILED' | 'TERMINATED' | 'CANCELLED', required: New status
  - `statusMetadata` string, nullable: Status metadata as JSON string
  - `loggerSettings` string, nullable: Logger settings to merge
  - `statusUpdated` integer, nullable: Status-change timestamp in epoch milliseconds (backfill/migration). When omitted, the server stamps now(). Migration tooling replaying a finished run should pass the run's original finish time so its Duration reflects the historical run length, not time-since-import.

## Response `200`

Status updated successfully

- Success
  - `success` boolean, required

## Other responses

- `400`: Invalid JSON in request
- `404`: Run not found

---

[API](https://skmtc.dev/trainy/apis/mlop-api.md) - [All operations](https://skmtc.dev/trainy/apis/mlop-api/llms.txt) - [OpenAPI document](https://skmtc.dev/trainy/apis/mlop-api/revisions/5d2c0b0baecb?raw)
