Free tier cleanup: what it would delete of one tier owner
const url = 'https://beta-api.plune.ai/v1/admin/retention?subject=company%3Aco_northwind';const options = {method: 'GET', headers: {cookie: 'plune_session=<plune_session>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://beta-api.plune.ai/v1/admin/retention?subject=company%3Aco_northwind' \ --cookie plune_session=<plune_session>The dry run of the pass above for ONE account or company on at, the day the cleanup first reaches it, whatever it is on (#1054): the numbers of the dialog that ends or switches off a tier (#1053). Nothing is deleted and nothing is written to a project’s log; the call is a row of the admin journal. The figures are counted as of at over the runs there are now (see OnFree); at is the end of the 14 days in grace or disabled, 14 days from now on an active paid tier, now on Free. An owner that is not there has nothing to delete (zeros), as GET /v1/admin/tier-grants answers an empty history. The owner’s session or an admin token with the retention door; anyone else is told 404. Ten a minute.
Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Query Parameters
Section titled “Query Parameters ”Example
company:co_northwinduser:<id> or company:<id>
Responses
Section titled “ Responses ”What the cleanup would delete of the owner’s projects
object
object
When the cleanup first reaches the owner: the end of its 14 days in grace or disabled (tierGraceEndsAt); for an active paid tier, 14 days from now (the day it would start, were the tier switched off now); for Free, now (the next nightly pass).
The results of those runs.
The files of those results, in the database and in the customer’s bucket alike.
Example
{ "subject": { "kind": "company", "id": "co_northwind" }, "at": "2026-11-03T00:00:00.000Z", "runs": 1284, "results": 1004556, "fileBytes": 2576980378}subject is missing, or not user:<id> / company:<id>
object
Example generated
{ "error": "example"}An admin token without the retention door (code: door_not_granted)
object
Example generated
{ "error": "example"}Not found
object
Example generated
{ "error": "example"}Rate-limited: the per-route throttle, or the per-minute request limit of the plan an API token counts by (#1442; the body names the plan, #2092). Retry-After carries the seconds until the window rolls over.
object
Example generated
{ "error": "example"}Headers
Section titled “Headers ”Seconds until the window rolls over