Box Developer Documentation
 

    Update a metadata template

    Update a metadata template

    Let's look at how we can update an existing metadata template.

    Updates to metadata templates are performed through operations rather than directly changing the template itself. This method allows you to update any existing metadata instances that are already applied to files and folders.

    Learn more about updating templates

    In this case, let's assume that we realized that having a Name field is a bit ambiguous, and therefore, we want to change the Name field of the customerInfo template to Company Name instead. By using the editField operation we can change the displayName and the key of the field on the template and on every instance of the template that might be applied to a file or folder.

    cURL
    curl -X PUT https://api.box.com/2.0/metadata_templates/enterprise/blueprintTemplate/schema \
        -H "authorization: Bearer <ACCESS_TOKEN>" \
        -H "content-type: application/json" \
        -d '[
          {
            "op": "editField",
            "fieldKey": "name",
            "data": {
              "key": "company_name",
              "displayName": "Company Name"
            }
          }
        ]'
    

    The API will return the updated metadata template.

    {
      "id": "100ac693-a468-4b37-9535-05984b804dc2",
      "type": "metadata_template",
      "templateKey": "customerInfo",
      "scope": "enterprise_34567",
      "displayName": "Customer Info",
      "hidden": false,
      "copyInstanceOnItemCopy": false,
      "fields": [
        {
          "id": "5c6a5906-003b-4654-9deb-472583fc2930",
          "type": "string",
          "key": "company_name",
          "displayName": "Company Name",
          "hidden": false
        },
        {
          "id": "cf3eb5b8-52ef-456c-b175-44354a27e289",
          "type": "enum",
          "key": "industry",
          "displayName": "Industry",
          "options": [
            {"key": "Technology"},
            {"key": "Healthcare"},
            {"key": "Legal"}
          ],
          "hidden": false
        },
        {
          "id": "5c6a5906-4654-9deb-003b-472583fc2930",
          "type": "float",
          "key": "tav",
          "displayName": "Total account value",
          "hidden": false
        }
      ]
    }
    

    Updating the template through operations has the benefit that any instance of the template is automatically updated as well. In this case, the instance we created in previous steps would now look something like this.

    {
      "company_name": "Box",
      "industry": "Technology",
      "tav": 1000000,
      "$id": "01234500-12f1-1234-aa12-b1d234cb567e",
      "$parent": "folder_12345,",
      "$scope": "enterprise_34567",
      "$template": "customerInfo",
      "$type": "customerInfo-6bcba49f-ca6d-4d2a-a758-57fe6edf44d0",
      "$typeVersion": 2,
      "$version": 1,
      "$canEdit": true
    }