# Purge trace content

> Deletes the trace's steps object from storage and clears its content columns (file_id, error), cascading to every descendant trace and to all of their…

Deletes the trace's steps object from storage and clears its content columns (`file_id`, `error`), cascading to every descendant trace and to all of their generations. A descendant holds its own steps object covering the same run, so the cascade is what makes the erasure complete rather than merely partial.

The rows survive as auditable skeletons with `content_redacted_at` set — ids, timestamps, step counts, and the generations' usage-attribution fields are preserved, because the billing and audit ledger must outlive a tenant's erasure of the content. A purged trace therefore reads back as a skeleton, not a 404: a 404 would prove nothing.

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

  Request

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

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

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