---
title: "Cron Platform Data Retention"
method: POST
path: "/v2/import/cron/platform-data-retention"
tags: ["v2 - Import"]
---

# Cron Platform Data Retention

`POST /v2/import/cron/platform-data-retention`

## Request

- Base URL: `https://api.jubjubapp.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.jubjubapp.com/v2/import/cron/platform-data-retention`
- Auth: HTTP bearer

Refresh or redact platform-supplied text on imported content.

YouTube's Developer Policies require stored titles, channel names and
descriptions to be DELETED or REFRESHED within 30 calendar days. Rows are
selected on AGE (`platform_data_fetched_at`, absent = stale), refreshed via
videos.list where the creator still has an active credential, and REDACTED
where they do not — a row nothing can refresh must lose the data, and
skipping it is how it stays non-compliant forever.

DAILY, not hourly. The threshold is 23 days against a 30-day limit, so a
daily run leaves seven days of margin: a week of failures, a deploy freeze
or a quota exhaustion is survivable without falling out of policy. Hourly
would buy nothing and re-stream the corpus 24x.

`dry_run=true` reports what it WOULD do and writes nothing. Redaction is
irreversible, so the first pass over the backlog is worth reading before it
is trusted. `limit` overrides the per-run cap (0 = the default).

Returns counts for every outcome — examined, selected, skipped_fresh,
refreshed, redacted, deferred, capped, unprocessed — so a run can be
checked rather than assumed. `deferred` is the honest one: rows left alone
because a transient API or credential error made them unreadable this
time. Those are NOT redacted; destroying a creator's titles over a brief
outage is unrecoverable. `unprocessed` is the budget's: rows never reached
at all, which a continuation hop picks up.

`hop` is the continuation counter. 0 is the scheduled run; each hop the
run queues for itself carries one more.

## Query parameters

- `dry_run` boolean
- `limit` integer
- `hop` integer

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/jubjubapp/apis/jubjub-api.md) - [All operations](https://skmtc.dev/jubjubapp/apis/jubjub-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jubjubapp/apis/jubjub-api/revisions/353157b296f2?raw)
