---
updatedAt: 2026-05-14T21:43:24.000Z
agentTools:
  siteIndex: https://techdocs.akamai.com/llms.txt
  projectIndex: https://techdocs.akamai.com/powershell/llms.txt
---

# Property

Copy-Property

## Synopsis

Create or clone a property.

## Syntax

```powershell Name & attributes (Default)
Copy-Property -Name <String> -ProductID <String> [-RuleFormat <String>] -ClonePropertyName <String> -ClonePropertyVersion <String> [-ClonePropertyVersionEtag <String>] [-CopyHostnames] [-UseHostnameBucket] -GroupID <String> -ContractID <String> [-EdgeRCFile <String>] [-Section <String>] [-AccountSwitchKey <String>] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```
```powershell ID & attributes
Copy-Property -Name <String> -ProductID <String> [-RuleFormat <String>] -ClonePropertyID <String> -ClonePropertyVersion <String> [-ClonePropertyVersionEtag <String>] [-CopyHostnames] [-UseHostnameBucket] -GroupID <String> -ContractID <String> [-EdgeRCFile <String>] [-Section <String>] [-AccountSwitchKey <String>] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```
```powershell Body
Copy-Property -Body <Object> -GroupID <String> -ContractID <String> [-EdgeRCFile <String>] [-Section <String>] [-AccountSwitchKey <String>] [-ProgressAction <ActionPreference>] [<CommonParameters>]
```

## Description

This operation either creates a new property from scratch or bases one on another property's rule tree and optionally its set of assigned hostnames.

Version 1 of a new property is created automatically.

PAPI's ability to create and clone new properties means that you can design a system of rule templates targeted to specific domains, rather than maintain a single set of rules with conditional logic for your full range of domains.

Maintaining properties manually within the Control Center interface limited you to that more consolidated approach, but you can deploy rules more efficiently using PAPI.

In either case, PAPI makes it much easier for you to support a large, flexible set of domains.

## Parameters

<table>
  <tbody>
    <tr>
      <td class="ps-td"><code>&#8209;AccountSwitchKey</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>An account credential key that lets you move between accounts when using an API client enabled for multiple accounts. To find account switch keys, use <a href="https://techdocs.akamai.com/powershell/docs/get-accountswitchkey">Get-AccountSwitchKey</a>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;Body</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Conditionally required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">Object</span>
          <span class="ps-param-metadata">Parameter sets: <code>Body</code></span>
          <span class="ps-param-metadata">Pipeline input: ByValue</span>
        </div>
        <div>
          <p>A request body, either as a <code>PSCustomObject</code> or a string. This parameter supports pipelining.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;ClonePropertyID</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Conditionally required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>The ID of the property to clone. If cloning a property, provide this or the <code>-ClonePropertyName</code>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;ClonePropertyName</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Conditionally required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>The name of the property to clone. If cloning a property, provide this or the <code>-ClonePropertyID</code>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;ClonePropertyVersion</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Conditionally required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>The version of the property to clone. Can be an integer or the word <code>latest</code>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;ClonePropertyVersionEtag</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>Performs an ETag data integrity check on the original property version to ensure no edits have occurred since your last check.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;ContractID</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>Your contract's ID. The parameter is optional if a property belongs to only one contract; otherwise, you need to specify it along with the <code>-GroupID</code>. This parameter is optional except for the create requests.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;CopyHostnames</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">Switch</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>Assigns the same set of hostnames to the new property.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;EdgeRCFile</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>Your EdgeGrid resource file to authenticate your command. Defaults to <code>~/.edgerc</code>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;GroupID</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>Your group's ID. The parameter is optional if a property belongs to only one group, otherwise you need to specify it along with the <code>-ContractID</code>. This parameter is optional except for the create requests.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;Name</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Conditionally required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>A human-readable name you give to identify your property.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;ProductID</code><br/><span style="color: red; padding-left: 11px; font-size: 13px;"><em>Conditionally required</em></span></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>The product's ID.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;RuleFormat</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>The name of the rule format. The rule format can be frozen to a specific version, or represent the <code>latest</code> set of behaviors and criteria. You can retrieve rule formats with <code>Get-RuleFormat</code>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;Section</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">String</span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>The section name in your EdgeGrid resource file to retrieve authentication credentials from. Defaults to <code>default</code>.</p>
        </div>
      </td>
    </tr>
    <tr>
      <td class="ps-td"><code>&#8209;UseHostnameBucket</code></td>
      <td class="ps-tableinner">
        <div class="ps-metadata">
          <span class="ps-param-metadata">Switch</span>
          <span class="ps-param-metadata">Parameter sets: <code>ID & attributes</code>, <code>Name & attributes</code></span>
          <span class="ps-param-metadata">Pipeline input: False</span>
        </div>
        <div>
          <p>When the switch is present, this creates a special type of property where you can add or remove property hostnames without incrementing property versions. Generally used for properties with > 1000 hostnames.</p>
        </div>
      </td>
    </tr>
  </tbody>
</table>

## Related Links

* [User Guide: Property](https://techdocs.akamai.com/powershell/docs/property-manager)
* [API Reference](https://techdocs.akamai.com/property-mgr/reference/post-properties)

# Sibling pages

* [Include](https://techdocs.akamai.com/powershell/docs/copy-propertyinclude.md)