properties
Endpoints for the property system, which attaches typed attributes to objects such as users, channels and posts. Properties are organized in groups; each group holds fields, which define an attribute and its type, and values, which hold a field's value for one object. A field's object type says what kind of object it applies to, and in the access_control group a template field defines a global attribute that user and channel fields link to. These endpoints replace the custom profile attributes endpoints for managing user attributes.
In the access_control group, every endpoint requires an Entry, Enterprise or Enterprise Advanced license (403 otherwise). Channel fields and their values, and templates that channel fields link to, require an Entry or Enterprise Advanced license (501 otherwise).
Create a property field
Create a new property field for a specific group and object type.
Get property fields
Get a list of property fields for a specific group and object type. Uses cursor-based pagination.
Search property fields across multiple object types
Returns matching fields across every requested object type in one response. The request body is a `PropertyFieldSearch` object whose `object_types` field lists the object types to include.
Search the Global Attributes listing
Returns every row of the Global Attributes listing matching the search term, source, and resource type: every system-level access_control template, plus every system-level user, channel, or post field linked to no template. Each row carries the values derived from the fields linked to it (the resources it applies to, its owners, its source, and any user attribute whose name it collides with).
Update a property field
Partially update a property field by providing only the fields you want to update. Omitted fields will not be updated. The `attrs` object uses merge semantics: only the keys present in the patch are updated; omitted keys are preserved. Setting a key to `null` removes it from attrs.
Delete a property field
Deletes a property field and all its associated values.
Get property field options
Get one page of a property field's options in creation order, including options inherited from a linked template. Use it to read a field with more than 1000 options, which is returned without `attrs.options`.
Create property field options
Add options to a property field. Either every option in the request is created or none is. On a hierarchical (`graph`) field, an option's `parents` can name options the field already has or other options in the same request.
Update property field options
Update options that a property field owns. Identify each option by its `id` and include its `name`, even if the name isn't changing. Options inherited from a template (`read_only`) can only be changed on the template.
Delete property field options
Delete options that a property field owns, together with their parent links. Values that refer to a deleted option are kept but ignored. On a hierarchical (`graph`) field, an option with options below it must be deleted together with them in the same request.
Get property values for a target
Get all property values for a specific target within a group. Uses cursor-based pagination. Values of the `system` object type are read through the dedicated `/api/v4/properties/groups/{group_name}/system/values` endpoint.
Update property values for a target
Update one or more property values for a specific target within a group. Uses upsert semantics: creates the value if it doesn't exist, updates it if it does. A request sets up to 50 values, each for a different field in the group. Values of the `system` object type are set through the dedicated `/api/v4/properties/groups/{group_name}/system/values` endpoint.
Get property values for the system
Get all property values attached to the Mattermost instance itself within a group. System-scoped values are readable by any authenticated user. This endpoint is the dedicated route for `system` object type; the `{object_type}/values/{target_id}` route returns 400 for `system`.
Update property values for the system
Update one or more property values attached to the Mattermost instance itself. Uses upsert semantics: creates the value if it doesn't exist, updates it if it does. A request sets up to 50 values, each for a different `system` object-type field in the specified group.