Skip to content

Free tier cleanup: what it would delete of one tier owner

GET
/v1/admin/retention
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.

subject
required
string
Example
company:co_northwind

user:<id> or company:<id>

What the cleanup would delete of the owner’s projects

Media type application/json
object
subject
required
object
kind
required
string
Allowed values: user company
id
required
string
at
required

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).

string format: date-time
runs
required
integer
results
required

The results of those runs.

integer
fileBytes
required

The files of those results, in the database and in the customer’s bucket alike.

integer
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>

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

An admin token without the retention door (code: door_not_granted)

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

Not found

Media type application/json
object
error
required
string
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.

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}
Retry-After
integer

Seconds until the window rolls over