Skip to main content

Retention management

Use stable media primitives when you need to inspect retention metadata, lock media, or delete unused uploads.

Inspect retention​

const media = await conduitClient.primitives.media.get("media_123")

console.log(media.retention)
// {
// expiresAt: "2026-07-17T12:00:00.000Z",
// daysRemaining: 181,
// locked: false
// }

Lock important media​

await conduitClient.primitives.media.setRetentionLock("media_123", true)

Use locks for:

  • training or QA reference recordings
  • compliance-sensitive recordings
  • long-lived assets you know you must retain

Unlock when no longer needed​

await conduitClient.primitives.media.setRetentionLock("media_123", false)

Delete unused media​

await conduitClient.primitives.media.delete("media_123")

Audit expiring media​

conduitClient.primitives.media.list(...) uses cursor pagination with latests first ordering.

const page = await conduitClient.primitives.media.list({
limit: 100,
includeDeleted: false,
})

const expiringSoon = page.files.filter((file) => {
if (file.retention.locked) return false
return file.retention.daysRemaining !== null && file.retention.daysRemaining < 30
})

Best practices​

  • lock only what you truly need to retain
  • review daysRemaining for important media
  • reuse mediaId instead of re-uploading when possible
  • keep your own business metadata in your database, not in media labels alone