Box · Schema

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.

Cloud StorageCollaborationContent ManagementDocumentsEnterpriseFile Sharing
View JSON Schema on GitHub

JSON Schema

box-retentionpolicy-schema.json Raw ↑
{
  "$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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/box-retentionpolicy"
All schemas
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.