---
title: "Manage content ownership in Document Engine"
canonical_url: "https://www.nutrient.io/guides/document-engine/instant-synchronization/permissions/content-ownership/"
md_url: "https://www.nutrient.io/guides/document-engine/instant-synchronization/permissions/content-ownership.md"
last_updated: "2026-06-09T10:21:54.323Z"
description: "Explore how to handle collaboration permissions and content ownership using Document Engine APIs for efficient document management."
---

# Master collaboration permissions in Document Engine

Collaboration permissions allow you to define what actions are allowed on a piece of content in a document (annotations, Instant Comments, or form fields) based on [who created it and what its group is](https://www.nutrient.io/guides/document-engine/instant-synchronization/permissions/set-permissions.md#scope). Document Engine tracks this information for all annotations, comments, and form fields in every document.

This guide aims to describe both how you can manage this information via Document Engine APIs and how it changes during the document lifecycle.

## Creator

Creator is an immutable property of every piece of content created with Document Engine. When you specify a `user_id` in the [JSON Web Token](https://www.nutrient.io/guides/document-engine/viewer/client-authentication.md) (JWT) used to authenticate Nutrient Web SDK, each annotation, comment, and form field created is attributed to that user. If the JWT claims don’t include `user_id`, the creator of all content is set to `null`.

You can also pass the `user_id` parameter when creating [annotations](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Annotations/operation/create-document-annotation) and [comments](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Comments) through Document Engine’s API. As with the JWT, if you don’t provide `user_id` in either of these APIs, the default of `null` will be used.

To inspect which creator is assigned to each piece of content, see the `createdBy` property when fetching [annotations](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Annotations/operation/get-document-annotations) and [comments](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Comments/operation/fetch-document-annotation-comments).

Note that even though it’s possible to assign and fetch the creator of [form field values](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Forms), this information isn’t useful, because you can’t specify form field permissions based on their creator.

## Group

The group property was introduced to allow greater flexibility when declaring permissions and managing access to content. Unlike the creator, the group of each annotation, comment, and form field is mutable, which means it can be changed either with Document Engine’s APIs or Nutrient Web SDK. You can read more [in the group section](https://www.nutrient.io/guides/document-engine/instant-synchronization/permissions/set-permissions.md#group) of the guide on setting user collaboration permissions to find out more about the use of the group property with Nutrient Web SDK.

[Form field values](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Forms) and widget annotations always inherit the group of the associated form field, and thus it’s not possible to set or update it directly via the Document Engine API.

Comments, on the other hand, can have a completely different group than their [root annotation](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Comments).

With Document Engine’s APIs, similar to the `user_id`, you can specify the `group` when creating [annotations](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Annotations/operation/create-document-annotation) and [comments](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Comments). If you don’t provide the group, the default of `null` is used. You can also use the [annotation update](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Annotations/operation/update-document-annotation) API to change the group of the annotation.

You can see what group is assigned to content by looking at the `group` property when fetching [annotations](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Annotations/operation/get-document-annotations), [comments](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Comments/operation/fetch-document-annotation-comments), and [form field values](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Forms/operation/get-document-form-field).

## Creator and Group in a Document Lifecycle

Apart from APIs that directly create or modify content — like the annotation creation API — other functionality provided by Document Engine may also add and update content in the document. This is a reference for how these operations affect the ownership information of annotations, comments, and form fields:

1. When you [upload a document](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Documents/operation/upload-document), the creator and group of every piece of content is `null`.

2. [Copying a document](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Documents/operation/copy-document) copies the creator and group information from the original document.

3. [Creating a layer](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Layers/operation/create-new-layer) with a `source_layer_name` parameter copies the creator and group information from the source layer.

4. [Duplicating a page](https://www.nutrient.io/guides/document-engine/editor/page-manipulation/duplicate.md) copies the creator and group information of content on that page.

5. [Importing a document by ID](https://www.nutrient.io/api/reference/document-engine/upstream/#tag/Documents/operation/upload-document) (and optionally layer name) copies the creator and group information from that document.

## Supported client platforms

Collaboration Permissions is available in the following Nutrient frontend SDKs:

- [Nutrient Web SDK](https://www.nutrient.io/guides/web/collaboration-permissions/introduction-to-collaboration-permissions.md)

- [Nutrient iOS SDK](https://www.nutrient.io/guides/ios/collaboration-permissions/introduction-to-collaboration-permissions.md)
---

## Related pages

- [Manage document collaboration permissions securely](/guides/document-engine/instant-synchronization/permissions/overview.md)
- [Manage user permissions for instant synchronization](/guides/document-engine/instant-synchronization/permissions/edit-permissions.md)
- [Understanding collaboration permissions for documents](/guides/document-engine/instant-synchronization/permissions/example.md)
- [Setting user collaboration permissions effectively](/guides/document-engine/instant-synchronization/permissions/set-permissions.md)

