Retention policy
A retention policy blocks permanent deletion of content for a specified amount of time. Admins can create retention policies and then later assign them to specific folders, metadata templates, or their entire enterprise. To use this feature, you must have the manage retention policies scope enabled for your API key via your application management console.
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/RetentionPolicy",
"title": "Retention policy",
"type": "object",
"x-box-resource-id": "retention_policy",
"x-box-tag": "retention_policies",
"x-box-variant": "standard",
"description": "A retention policy blocks permanent deletion of content\nfor a specified amount of time. Admins can create retention\npolicies and then later assign them to specific folders, metadata\ntemplates, or their entire enterprise. To use this feature, you must\nhave the manage retention policies scope enabled\nfor your API key via your application management console.",
"allOf": [
{
"$ref": "#/components/schemas/RetentionPolicy--Mini"
},
{
"properties": {
"description": {
"type": "string",
"example": "Policy to retain all reports for at least one month",
"description": "The additional text description of the retention policy."
},
"policy_type": {
"type": "string",
"example": "finite",
"description": "The type of the retention policy. A retention\npolicy type can either be `finite`, where a\nspecific amount of time to retain the content is known\nupfront, or `indefinite`, where the amount of time\nto retain the content is still unknown.",
"enum": [
"finite",
"indefinite"
]
},
"retention_type": {
"type": "string",
"example": "non_modifiable",
"description": "Specifies the retention type:\n\n* `modifiable`: You can modify the retention policy. For example,\n you can add or remove folders, shorten or lengthen\n the policy duration, or delete the assignment.\n Use this type if your retention policy\n is not related to any regulatory purposes.\n\n* `non-modifiable`: You can modify the retention policy\n only in a limited way: add a folder, lengthen the duration,\n retire the policy, change the disposition action\n or notification settings. You cannot perform other actions,\n such as deleting the assignment or shortening the\n policy duration. Use this type to ensure\n compliance with regulatory retention policies.",
"enum": [
"modifiable",
"non_modifiable"
]
},
"status": {
"type": "string",
"example": "active",
"description": "The status of the retention policy. The status of\na policy will be `active`, unless explicitly retired by an\nadministrator, in which case the status will be `retired`.\nOnce a policy has been retired, it cannot become\nactive again.",
"enum": [
"active",
"retired"
]
},
"created_by": {
"allOf": [
{
"$ref": "#/components/schemas/User--Mini"
},
{
"description": "A mini user object representing the user that\ncreated the retention policy."
}
]
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "When the retention policy object was created.",
"example": "2012-12-12T10:53:43-08:00"
},
"modified_at": {
"type": "string",
"format": "date-time",
"description": "When the retention policy object was last modified.",
"example": "2012-12-12T10:53:43-08:00"
},
"can_owner_extend_retention": {
"type": "boolean",
"description": "Determines if the owner of items under the policy\ncan extend the retention when the original\nretention duration is about to end.",
"example": false
},
"are_owners_notified": {
"type": "boolean",
"description": "Determines if owners and co-owners of items\nunder the policy are notified when\nthe retention duration is about to end.",
"example": false
},
"custom_notification_recipients": {
"type": "array",
"description": "A list of users notified when the retention policy duration is about to end.",
"items": {
"$ref": "#/components/schemas/User--Mini"
}
},
"assignment_counts": {
"type": "object",
"description": "Counts the retention policy assignments for each item type.",
"properties": {
"enterprise": {
"description": "The number of enterprise assignments this policy has. The maximum value is 1.",
"format": "int64",
"type": "integer",
"example": 1
},
"folder": {
"description": "The number of folder assignments this policy has.",
"format": "int64",
"type": "integer",
"example": 1
},
"metadata_template": {
"description": "The number of metadata template assignments this policy has.",
"format": "int64",
"type": "integer",
"example": 1
}
}
}
}
}
]
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/box-retentionpolicy"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.