Admin Cancelled Audio Cleanup

Delete R2 audio orphaned by cancelled render_jobs for a publisher.

Pairs with scripts/cleanup_cancelled_audio.py — same core logic, same idempotency semantics, just exposed as HTTP so the operator can drive it without a fly-ssh session.

Auth: admin token (X-Storyflo-Email-Token).

Body: publisher_name_pattern: SQL LIKE pattern, default 'Google News%' dry_run: bool, default true (recommended first pass) limit: int, default 5000 (max render_job rows per call) batch_size: int, default 1000 (S3 delete_objects batch size)

Response: {rows_scanned, object_keys_targeted, deleted, rows_nulled, errors[], dry_run, publisher_name_pattern}.

post/v1/admin/cancelled-audio/cleanup

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/cancelled-audio/cleanup
  • Auth: none declared

Headers

x-storyflo-email-tokenstring nullable

Request body

publisher_name_patternstring
dry_runboolean
limitinteger
batch_sizeinteger

Response

Successful Response

object required

Changes

No recorded changes to this operation across all 1 revision of this API.