---
title: "Finalize a durable replay run"
method: POST
path: "/internal/replay/runs/{run_id}/status"
tags: ["results"]
---

# Finalize a durable replay run

`POST /internal/replay/runs/{run_id}/status`

## Request

- Base URL: `https://api.rhythms.ai`
- URL: `https://api.rhythms.ai/internal/replay/runs/{run_id}/status`
- Auth: none required

Reconciles retry-exhausted units as failed and freezes the final R-star aggregate after the Temporal workflow completes.

## Path parameters

- `run_id` string, required

## Request body

- object
  - `tenant_uuid` string, required
  - `status` 'completed' | 'partial' | 'failed', required
  - `completed` number, required
  - `failed` number, required

## Other responses

- `400`: Bad Request - Invalid parameters or malformed request
- `401`: Unauthorized - Invalid or missing authentication
- `403`: Forbidden - User lacks permission to access this resource
- `404`: Not Found - Resource does not exist
- `422`: Unprocessable Entity - Invalid request parameters or validation errors
- `429`: Too Many Requests - Rate limit exceeded
- `500`: Internal Server Error - Unexpected server error

## Changes

- **2026-08-20** `35a74726695d`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/changes/internal/replay/runs/:run_id/status/post.md)

---

[API](https://skmtc.dev/rhythms/apis/rhythms-params-in-body.md) - [All operations](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/llms.txt) - [OpenAPI document](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/revisions/3776068254ff?raw)
