> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plainid.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Import Identity Template

> This API call is designed to support CREATE and UPDATE operations to the indicated Environment. An **import** operation occurs when a *new* `identityAttributeId` is used. An **update** operation occurs if the `identityTemplateId` *already exists* or templateId already in use.
<br> <br>
<h2>Notice</h2>Accessing the API call is through a dedicated domain/URL, according to your PlainID Tenant Location<li><b>United States (US)</b> - `https://api.us1.plainid.io`</li><li><b>Canada (CA)</b> - `https://api.ca1.plainid.io`</li><li><b>Europe (EU)</b> - `https://api.eu1.plainid.io`</li> <br> <h2>Using HTML Encoded Special Characters</h2> <p>Use HTML encoded patterns when working with values that contain special characters like spaces, dashes, etc. Refer to this <a href="https://www.w3schools.com/tags/ref_urlencode.ASP" target="_blank">HTML URL Encoding Reference</a> for a full list.</p> <br>

<h2>Important note about headers</h2> <p>Refer to the headers below to modify your cURL sample. Check if the following headers are in the sample, if not, ensure you add it to your cURL sample before pasting into your API tool. </p> <h3>Headers</h3> *Required <table><thead> <tr> <th>Header</th> <th>Value</th> <th>cURL Line</th> </tr></thead> <tbody> <tr> <td>Accept</td> <td>`application/json`</td> <td> `-H "Accept:application/json"`</td> </tr> <tr> <td>Content-Type</td> <td>`application/json`</td> <td> `-H "Content-Type:application/json"`</td> </tr> </tbody> </table> <br> <h3>cURL Sample Guidelines</h3> <p>In order for the relevant parameters to appear in the cURL sample, you can input the values in the interactive API console on the right in the Try It or Code Sample tabs. You can then copy the cURL sample from the Code Sample tab in the correct format.</p>

## OpenAPI

````json POST /api/2.0/identity-templates/{envId}
{
  "openapi": "3.0.3",
  "info": {
    "title": "Management APIs",
    "version": "1.0.0",
    "contact": {
      "name": "PlainID",
      "url": "https://plainid.com",
      "email": "contact@plainid.com"
    },
    "license": {
      "name": "Commercial",
      "url": "https://plainid.com/license"
    },
    "termsOfService": "https://www.plainid.com/terms/",
    "description": "<h3>The PlainID Authorization Platform provides Management capabilities through the APIs below.</h3><h4> To access the Management APIs, make sure to enter your dedicated domain according to your PlainID Tenant Location:<table><thead><tr><th>Region</th><th>Base URL</th></tr></thead><tbody><tr><td>United States (US)</td><td>https://api.us1.plainid.io</td></tr><tr><td>Canada (CA)</td><td>https://api.ca1.plainid.io</td></tr><tr><td>Europe (EU)</td><td>https://api.eu1.plainid.io</td></tr><tr><td>Local PAA</td><td>https://api.plainid.local</td></tr></tbody></table>"
  },
  "servers": [
    {
      "description": "United States",
      "url": "https://api.us1.plainid.io"
    },
    {
      "description": "Europe",
      "url": "https://api.eu1.plainid.io"
    },
    {
      "description": "Canada",
      "url": "https://api.ca1.plainid.io"
    },
    {
      "description": "Local PAA",
      "url": "https://api.plainid.local"
    }
  ],
  "paths": {
    "/api/2.0/identity-templates/{envId}": {
      "post": {
        "summary": "Import Identity Template",
        "operationId": "importIdentityTemplateV2",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "description": "This API call is designed to support CREATE and UPDATE operations to the indicated Environment. An **import** operation occurs when a *new* `identityAttributeId` is used. An **update** operation occurs if the `identityTemplateId` *already exists* or templateId already in use.\n<br> <br>\n<h2>Notice</h2>Accessing the API call is through a dedicated domain/URL, according to your PlainID Tenant Location<li><b>United States (US)</b> - `https://api.us1.plainid.io`</li><li><b>Canada (CA)</b> - `https://api.ca1.plainid.io`</li><li><b>Europe (EU)</b> - `https://api.eu1.plainid.io`</li> <br> <h2>Using HTML Encoded Special Characters</h2> <p>Use HTML encoded patterns when working with values that contain special characters like spaces, dashes, etc. Refer to this <a href=\"https://www.w3schools.com/tags/ref_urlencode.ASP\" target=\"_blank\">HTML URL Encoding Reference</a> for a full list.</p> <br>\n\n<h2>Important note about headers</h2> <p>Refer to the headers below to modify your cURL sample. Check if the following headers are in the sample, if not, ensure you add it to your cURL sample before pasting into your API tool. </p> <h3>Headers</h3> *Required <table><thead> <tr> <th>Header</th> <th>Value</th> <th>cURL Line</th> </tr></thead> <tbody> <tr> <td>Accept</td> <td>`application/json`</td> <td> `-H \"Accept:application/json\"`</td> </tr> <tr> <td>Content-Type</td> <td>`application/json`</td> <td> `-H \"Content-Type:application/json\"`</td> </tr> </tbody> </table> <br> <h3>cURL Sample Guidelines</h3> <p>In order for the relevant parameters to appear in the cURL sample, you can input the values in the interactive API console on the right in the Try It or Code Sample tabs. You can then copy the cURL sample from the Code Sample tab in the correct format.</p>",
        "tags": [
          "Identity Template V2"
        ],
        "parameters": [
          {
            "name": "idWsId",
            "in": "query",
            "required": "true",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Identity Workspace ID. This can be found in your Identity Workspace Settings under Workspace ID."
          },
          {
            "name": "envId",
            "in": "path",
            "required": "true",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "The Environment ID can be found under the Details Tab in the Environment Settings."
          }
        ],
        "requestBody": {
          "description": "Identity Template to import.",
          "required": "true",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IdentityTemplateV2"
              },
              "examples": {
                "example": {
                  "value": {
                    "templateId": "CaCIdentity",
                    "attributes": [
                      {
                        "attributeId": "userAccount",
                        "displayName": "userAccount",
                        "description": "user account id",
                        "type": "NUMERIC",
                        "isAvailableForPolicies": "true",
                        "isUsedInAccessRequest": "false"
                      },
                      {
                        "attributeId": "userRole",
                        "displayName": "User Role",
                        "description": "user role name",
                        "type": "STRING",
                        "isAvailableForPolicies": "true",
                        "isUsedInAccessRequest": "false"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful operation",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IdentityTemplateResponseV2"
                },
                "examples": {
                  "example": {
                    "value": {
                      "data": {
                        "templateId": "CaCIdentity",
                        "attributes": [
                          {
                            "attributeId": "userAccount",
                            "displayName": "userAccount",
                            "description": "user account id",
                            "type": "NUMERIC",
                            "isAvailableForPolicies": "true",
                            "isUsedInAccessRequest": "false"
                          },
                          {
                            "attributeId": "userRole",
                            "displayName": "User Role",
                            "description": "user role name",
                            "type": "STRING",
                            "isAvailableForPolicies": "true",
                            "isUsedInAccessRequest": "false"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "validationError": {
                    "$ref": "#/components/examples/IdentityAttributeUserIdCannotBeEdited"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          },
          "404": {
            "description": "Object not found",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          },
          "422": {
            "description": "Payload Validation Error",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "IdentityTemplateV2": {
        "type": "object",
        "description": "Identity Template V2",
        "required": [
          "templateId"
        ],
        "properties": {
          "templateId": {
            "type": "string",
            "maxLength": "128",
            "minLength": "1",
            "description": "A unique string for the Identity Template."
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/IdentityAttributeV2"
            }
          }
        }
      },
      "IdentityTemplateResponseV2": {
        "type": "object",
        "description": "Identity template",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/IdentityTemplateV2"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "string"
          }
        }
      },
      "IdentityAttributeV2": {
        "type": "object",
        "description": "Attribute",
        "required": [
          "attributeId",
          "displayName",
          "type",
          "isUsedInAccessRequest"
        ],
        "properties": {
          "displayName": {
            "type": "string",
            "minLength": "1",
            "maxLength": "100",
            "description": "A display name that acts as a label for your Attribute."
          },
          "description": {
            "type": "string",
            "minLength": "1",
            "maxLength": "200",
            "description": "Attribute description."
          },
          "attributeId": {
            "type": "string",
            "maxLength": "128",
            "minLength": "1",
            "description": "The Attribute ID. This can be found in your Identity Settings."
          },
          "attributeType": {
            "type": "string",
            "enum": [
              "STRING",
              "NUMERIC"
            ],
            "description": "Attribute Data Type"
          },
          "isAvailableForPolicies": {
            "type": "boolean",
            "description": "Indicates if the Attribute is allowed for Policies."
          },
          "isUsedInAccessRequest": {
            "type": "boolean",
            "description": "Indicates if the Attribute is used in an Access Request."
          }
        }
      }
    },
    "examples": {
      "IdentityAttributeUserIdCannotBeEdited": {
        "value": {
          "errors": [
            {
              "code": "EMIT-007",
              "id": "EQ7CMX",
              "status": "400",
              "name": "IdentityAttributeUserIdCannotBeEdited",
              "message": "Default Identity Template Attribute ID: [attribueKeyNew] Display name cannot be edited. Hint: Revert back to: [attribueKeyOld]"
            }
          ]
        }
      }
    }
  }
}
````

