--- title: "system.tag.copy" description: "Copies Tags from one folder to another." --- # system.tag.copy > Copies Tags from one folder to another. This function is used in **Python Scripting**. ## Description Copies tags from one folder to another. Multiple Tag and folder paths may be passed to a single call of this function. The new destination can be a separate tag provider. #### Copying UDTs Across Tag Providers When copying UDTs to a different provider, the destination provider must have a matching UDT definition. The function copies Tags sequentially, so definitions can be placed earlier in the list, with instances following after: ``` # The '_types_' part of the path denotes the Data Types folder. You can retrieve the path to your UDT definition with right-click on # on the Tag in the Tag Browser > Copy Tag Path. udtDef = '[default]_types_/Motor' udtInstances = '[default]UDT_Instances_Folder' # When building the Tag list, place the definitions in list before the instances. tags = [udtDef, udtInstances] ``` #### Tag Groups Tag Groups will not be copied to the new provider, so the copied Tags may not initially execute. This can be remedied by creating a matching Tag Group in the destination provider, either before or after the Tags have been copied. #### Remote Tag Providers This function can move Tags to or from a [Remote Tag provider](platform\tags\tag-providers\tag-providers.md#remote-tag-provider). In this case, the Tag Access [Service Security](platform\security\security-zones\security-zones.md) settings on both providers must be set to ReadWriteEdit. ## Client Permission Restrictions [Permission Type](../../../ignition-modules/vision/vision-project-properties/vision-project-properties.md#vision-permissions-properties): Tag Editing Client access to this scripting function is blocked to users that do not meet the role/zone requirements for the above permission type. This function is unaffected when run in the Gateway scope. ## Syntax `system.tag.copy(tags, destination, [collisionPolicy])` ### Parameters Type | Parameter | Description ------- | ------- | ------ List| `tags` | A List of tag paths to move. String| `destination` | The destination to copy the tags to. All specified tags will be copied to the same destination. The destination tag provider must be specified. String| `collisionPolicy` | The action to take when a tag or folder with the same path and name is encountered. Defaults to Abort. [optional]. Possible values include:a - Abort and throw an exceptiono - Overwrite and replace existing tag's configurationi - Ignore that item in the list. ### Returns **List** - A List of QualityCode objects, one for each tag in the list, that is representative of the result of the operation. See [Scripting Object Reference](appendix\reference-pages\scripting-object-reference\scripting-object-reference.md#qualitycode). ### Scope Gateway, Vision Client, Perspective Session ## Code Examples ```python title="Example #1 - Copy a Tag or Folder" # Define the tag/folder path(s). tags = ['[default]Old_Tags/Subfolder' ] # We'll move the tag/folder above to the new path. destination = '[default]New_Tags' # If there is a collision with the destination, we'll abort the process. policy = 'a' # Copy the Tags. system.tag.copy(tags, destination, policy) ```