Skip to content

Keeping files

We delete a project’s files 30 days after it’s completed. Keep holds on to them for good, for a one-time fee in credits: its outputs (the zip, each output file and the manifest) and the files it was made from, so you can process it again at any time. The fee is a share of what the project cost: 10%, at least 1 minute (GET /v1/keep-settings says the current numbers). Test projects are kept for free.

When you create the project:

{ "keep": true, "files": [{ "fileName": "host.wav" }] }

Or later, while its files still exist:

POST /v1/projects/{id}/keep (projects:write; live keys also need credits:spend)
  • A project that isn’t completed yet is kept when it completes, and the fee is charged then.
  • A completed project is kept at once. Without enough credits for the fee you get 402 insufficient_credits, with the shortfall in error.details. More than 30 days after completion its files are gone (409 files_gone).
  • The fee is charged once. Asking again does nothing, and a project our team reprocesses stays kept at no extra cost.

The project’s keep says where it stands:

"keep": { "requested": true, "keptAt": "2026-10-06T18:40:12Z", "inputsKeptAt": "2026-10-06T18:40:12Z",
"feeSeconds": 180, "error": null }

feeSeconds is what was charged, or what will be once the project is priced (at submit). If keeping fails at completion, error says why: not enough credits, files gone, or the app that asked was disconnected or is over its monthly cap. A project.keep_failed event goes out, and asking again retries. A project.kept event follows each project that’s kept.

Kept files are downloaded the same way as any other output, through the project’s links. A kept project’s input files stop expiring (their expiresAt is null), and inputsKeptAt says when they were kept; it stays null if they were already gone when the project was kept (its outputs are kept all the same). Deleting a project’s outputs (DELETE /v1/projects/{id}/outputs) deletes their kept copies too; deleting a file (DELETE /v1/files/{id}) deletes its kept copy.

Leave keep out and the project follows its show, then the account:

  • a show’s defaults.keep (true or false) applies to its projects (Shows and usage);
  • the account’s default, GET /v1/keep-settings (defaultKeep), is set by owners and admins on the account page.

Keep’s fee appears in GET /v1/ledger as a keep_fee line with the project’s id. GET /v1/usage counts it with the project’s own credits.