# Purge generation content

> Clears the generation's content — metadata, error, extraction, and the internal recovery state of a paused run — and stamps content_redacted_at.

Clears the generation's content — `metadata`, `error`, `extraction`, and the internal recovery state of a paused run — and stamps `content_redacted_at`.

The usage and audit skeleton is preserved: ids, timestamps, status, stop reason, and the attribution fields (`action_id`, `trigger_id`, `orchestration_run_id`, `node_id`, `node_attempt`, `agent_version`, `routing`) the billing ledger reads. A purged generation reads back as that skeleton, not a 404.

This does **not** delete the parent trace's steps object, which holds this generation's content alongside its siblings'. To erase the run's content completely, purge the trace (`DELETE /api/v1/traces/{trace_id}/content`), which cascades here.

Idempotent — purging an already-purged generation succeeds and leaves the original `content_redacted_at` in place.

  Request

<ParamsDetails
  {...require("./purge-generation-content.ParamsDetails.json")}
>

<RequestSchema
  {...require("./purge-generation-content.RequestSchema.json")}
>

<StatusCodes
  {...require("./purge-generation-content.StatusCodes.json")}
>
