---
title: "Admin Pii Backfill"
method: POST
path: "/v1/admin/intake/backfill-pii-scrub"
---

# Admin Pii Backfill

`POST /v1/admin/intake/backfill-pii-scrub`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/admin/intake/backfill-pii-scrub`
- Auth: none declared

SEV-1 backfill — re-scrub stored articles whose body_text matched
the leak detector, enqueue fresh render jobs, surface affected
publishers for outreach. See ``app.pii_backfill`` for the matcher +
scrub semantics.

Body params:
  - dry_run (default True): report counts without writing
  - limit (default 1000, max 5000): cap rows scanned per call
  - also_delete_old_audio (default False): currently logged as TODO;
    re-render writes the new audio to the same R2 key so listeners
    get the clean version on next play anyway.

## Headers

- `x-storyflo-email-token` string, nullable

## Request body

- PIIBackfillBody
  - `dry_run` boolean
  - `limit` integer
  - `also_delete_old_audio` boolean

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
