---
title: "Persist accepted terminal output"
method: POST
path: "/internal/agent_work/{work_id}/outcome"
tags: ["agent_works"]
---

# Persist accepted terminal output

`POST /internal/agent_work/{work_id}/outcome`

Atomically persist the accepted assistant message and work outcome after the runtime terminal claim. Internal service authentication required.

## Path parameters

- `work_id` string, required

## Request body

- object
  - `turn_uuid` string, required — Canonical Temporal turn UUID
  - `iteration` number, required — Runtime iteration number
  - `attempt` number, required — Temporal activity attempt
  - `outcome` 'completed' | 'needs_input' | 'failed', required — Accepted structured outcome
  - `text` string, required — Accepted final public answer
  - `content` object, required — Canonical complete assistant markdown message content

## 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-09-23** `765448cb74e4` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/rhythms/apis/rhythms-params-in-body/changes/internal/agent_work/:work_id/outcome/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/be444d98d5ff?raw)
