---
title: "Persist replay results"
method: POST
path: "/internal/replay/results"
tags: ["results"]
---

# Persist replay results

`POST /internal/replay/results`

Idempotently stores report-only candidate, evaluator, fidelity, latency, cost, and error data for one frozen target/model unit.

## Request body

- object
  - `tenant_uuid` string, required
  - `run_id` string, required
  - `target_message_uuid` string, required
  - `target` object, required
    - `target_type` string, required
    - `target_uuid` string, required
    - `source_message_uuid` string, required
    - `thread_uuid` string
    - `playbook_uuid` string
    - `playbook_run_uuid` string
    - `trigger_type` string
  - `results` object[], 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

---

[API](https://skmtc.net/rhythms/apis/rhythms-params-in-body.md) · [All operations](https://skmtc.net/rhythms/apis/rhythms-params-in-body/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/rhythms/rhythms-params-in-body/revisions/35a74726695d/schema)
