> ## 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.

# List Asset Templates

> List Asset Templates from the indicated Environment, grouped by Authorization Workspace using filters. <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> </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 GET /api/1.0/asset-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/1.0/asset-templates/{envId}": {
      "get": {
        "summary": "List Asset Templates",
        "operationId": "listAssetTemplates",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "description": "List Asset Templates from the indicated Environment, grouped by Authorization Workspace using filters. <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>\n<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<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> </tbody> </table> <br>\n<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": [
          "Asset Template"
        ],
        "parameters": [
          {
            "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."
          },
          {
            "name": "filter[authWsId]",
            "in": "query",
            "required": "false",
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Authorization Workspace ID to filter by a single workspace. If omitted and `filter[authWsId][in]` is not provided, results are scoped by the caller's permissions: <br> - Admins see all workspaces. <br> - Non-admins see only permitted workspaces. <br> <br>When `filter[authWsId][in]` is provided with at least one value, this parameter is ignored.\n",
            "example": "272b7414-83bf-402a-bf9f-aa0d3c4fbb7b"
          },
          {
            "name": "filter[authWsId][in]",
            "in": "query",
            "required": "false",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "uuid"
              }
            },
            "style": "form",
            "explode": "true",
            "description": "Filter for multiple Authorization Workspace IDs. Takes precedence over `filter[authWsId]` when an input is detected.\n",
            "example": [
              "272b7414-83bf-402a-bf9f-aa0d3c4fbb7b",
              "9a1b2c3d-4e5f-6789-abcd-ef0123456789"
            ]
          },
          {
            "name": "detailed",
            "in": "query",
            "required": "false",
            "schema": {
              "type": "boolean",
              "default": "false"
            },
            "description": "When set to `true`, retrieves the full Asset Template data for each template.<br> When set to false (default), only the `templateId` is returned per Template."
          },
          {
            "name": "offset",
            "in": "query",
            "required": "false",
            "schema": {
              "type": "integer",
              "minimum": "0",
              "default": "0"
            },
            "description": "Zero-based index of the first template to return from the filtered, ordered template list. Defaults to `0` if omitted.\n"
          },
          {
            "name": "limit",
            "in": "query",
            "required": "false",
            "schema": {
              "type": "integer",
              "minimum": "1",
              "maximum": "100",
              "default": "50"
            },
            "description": "Maximum number of template rows to return per page. Defaults to \\`50` if omitted. Maximum allowed value is `100`.\n"
          }
        ],
        "responses": {
          "200": {
            "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/AssetTemplateListResponse"
                },
                "examples": {
                  "summaryMode": {
                    "summary": "Response when `detailed=false`(default)",
                    "value": {
                      "data": [
                        {
                          "authWsId": "272b7414-83bf-402a-bf9f-aa0d3c4fbb7b",
                          "assetTemplates": [
                            {
                              "templateId": "Bank Accounts"
                            },
                            {
                              "templateId": "User Roles"
                            }
                          ]
                        },
                        {
                          "authWsId": "9a1b2c3d-4e5f-6789-abcd-ef0123456789",
                          "assetTemplates": [
                            {
                              "templateId": "Servers"
                            }
                          ]
                        }
                      ],
                      "meta": {
                        "total": "3",
                        "limit": "50",
                        "offset": "0"
                      }
                    }
                  },
                  "detailedMode": {
                    "summary": "Response when `detailed=true`",
                    "value": {
                      "data": [
                        {
                          "authWsId": "272b7414-83bf-402a-bf9f-aa0d3c4fbb7b",
                          "assetTemplates": [
                            {
                              "templateId": "Bank Accounts",
                              "displayName": "Bank Accounts",
                              "description": "This Asset Template describes the bank accounts",
                              "logoUrl": "url",
                              "source": "EXTERNAL",
                              "isAttributeSentInRequest": "false",
                              "isUsedForFiltering": "false",
                              "paaGroupId": "my_paa_group",
                              "viewName": "accounts",
                              "attributes": [
                                {
                                  "attributeId": "accountnum",
                                  "displayName": "accountNum",
                                  "type": "STRING",
                                  "maxLength": "21",
                                  "isRequired": "false",
                                  "isMultiValue": "false",
                                  "canBeUpdated": "ONLY_ON_CREATE",
                                  "isAvailableForPolicies": "true",
                                  "nameForRequest": "accountNum",
                                  "sourceAttribute": "accountNumber"
                                }
                              ],
                              "actions": [
                                {
                                  "actionId": "Approve",
                                  "value": "Approve"
                                }
                              ]
                            }
                          ]
                        }
                      ],
                      "meta": {
                        "total": "1",
                        "limit": "50",
                        "offset": "0"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Validation Error",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          },
          "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"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                },
                "examples": {
                  "validationError": {
                    "$ref": "#/components/examples/assetTemplateNotFound"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "headers": {
              "x-request-id": {
                "schema": {
                  "type": "string",
                  "format": "uuid"
                },
                "description": "The ID of the request"
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AssetTemplateListResponse": {
        "type": "object",
        "description": "Grouped list of Asset Templates by Authorization Workspace",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetTemplateWorkspaceGroup"
            }
          },
          "meta": {
            "type": "object",
            "required": [
              "total",
              "limit",
              "offset"
            ],
            "properties": {
              "total": {
                "type": "integer",
                "description": "Total number of asset templates matching the request across all pages."
              },
              "limit": {
                "type": "integer",
                "description": "Effective page size used for this response."
              },
              "offset": {
                "type": "integer",
                "description": "Effective offset into the ordered template stream."
              }
            }
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "details": {
            "type": "string"
          }
        }
      },
      "AssetTemplateWorkspaceGroup": {
        "type": "object",
        "description": "Asset Templates grouped under an Authorization Workspace",
        "required": [
          "authWsId",
          "assetTemplates"
        ],
        "properties": {
          "authWsId": {
            "type": "string",
            "format": "uuid",
            "description": "Authorization Workspace ID"
          },
          "assetTemplates": {
            "type": "array",
            "description": "Asset Templates in this workspace. In summary mode (detailed=false), each item contains only templateId. In detailed mode (detailed=true), each item is a full AssetTemplate object.\n",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/AssetTemplateSummary"
                },
                {
                  "$ref": "#/components/schemas/AssetTemplate"
                }
              ]
            }
          }
        }
      },
      "AssetTemplateSummary": {
        "type": "object",
        "description": "Summary representation of an Asset Template.",
        "required": [
          "templateId"
        ],
        "properties": {
          "templateId": {
            "type": "string",
            "description": "Asset template ID."
          }
        }
      },
      "AssetTemplate": {
        "type": "object",
        "description": "Asset Type",
        "required": [
          "templateId",
          "displayName",
          "source"
        ],
        "properties": {
          "displayName": {
            "type": "string",
            "maxLength": "100",
            "minLength": "1",
            "description": "A display name that acts as a label for your Asset Template."
          },
          "templateId": {
            "type": "string",
            "maxLength": "128",
            "minLength": "1",
            "description": "A unique string for the Asset Template."
          },
          "description": {
            "type": "string",
            "description": "A description for your Asset Template."
          },
          "logoUrl": {
            "type": "string",
            "description": "Logo URL for the Asset Template."
          },
          "source": {
            "type": "string",
            "enum": [
              "EXTERNAL",
              "PLAINID",
              "REQUEST"
            ],
            "description": "Repository type. This parameter refers to the location of your Assets.<br> **Note that some parameters are required based on the repository type.**"
          },
          "isAttributeSentInRequest": {
            "type": "boolean",
            "description": "**Required if using `\"source\": \"EXTERNAL\"` or `\"source\": \"PLAINID\"`* <br> Indicates if Asset Attributes in the request can override the source."
          },
          "isUsedForFiltering": {
            "type": "boolean",
            "description": "Indicates if the Asset Template is used for data filtering."
          },
          "paaGroupId": {
            "type": "string",
            "maxLength": "128",
            "description": "**Required if using `\"source\": \"EXTERNAL\"`.* <br> PAA Group ID. PAA Groups at the Tenant level have a suffix of `_GLOBAL`"
          },
          "viewName": {
            "type": "string",
            "description": "**Required if using `\"source\": \"EXTERNAL\"`.* <br> Asset Template View name. The View Name that supports the External Asset as predefined in the PIP Settings"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attribute"
            }
          },
          "actions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Action"
            }
          }
        }
      },
      "Attribute": {
        "type": "object",
        "description": "Attribute",
        "required": [
          "attributeId",
          "displayName",
          "type",
          "nameForRequest"
        ],
        "properties": {
          "displayName": {
            "type": "string",
            "minLength": "1",
            "maxLength": "100",
            "description": "A display name that acts as a label for your Attribute."
          },
          "attributeId": {
            "type": "string",
            "maxLength": "128",
            "minLength": "1",
            "description": "A unique string for the Attribute."
          },
          "type": {
            "type": "string",
            "enum": [
              "STRING",
              "NUMERIC"
            ],
            "description": "Attribute Data Type"
          },
          "isCalculated": {
            "type": "boolean",
            "description": "Set whether the Attribute is calculated."
          },
          "calculationFunction": {
            "type": "string",
            "description": "Calculated Attribute calculation function. See [Working with Calculated Attributes](/apidocs/working-with-calculated-attributes){target=`_blank`} for more information."
          },
          "sourceAttribute": {
            "type": "string",
            "description": "**Required if using `\"source\": \"EXTERNAL\"`.* <br> Source Attribute name for the Attribute as defined in the View."
          },
          "isAvailableForPolicies": {
            "type": "boolean",
            "description": "Indicates if the Attribute is allowed for Policies."
          },
          "nameForRequest": {
            "type": "string",
            "minLength": "1",
            "description": "The name of the Attribute as it should appear in an Authorization Request."
          },
          "isMultiValue": {
            "type": "boolean",
            "description": "**Required if using `\"source\": \"EXTERNAL\"` or `\"source\": \"PLAINID\"`.* <br> Indicates if the Attribute accepts either a single or multi value. If set to `false`, the Attribute accepts a single value. If set to `true`, the Attribute accepts a multivalue."
          },
          "defaultValue": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "integer"
                }
              ]
            },
            "description": "**Required if using `\"source\": \"PLAINID\"`.* <br>  Default Values for the Attribute."
          },
          "maxLength": {
            "type": "integer",
            "minimum": "1",
            "maximum": "9999",
            "description": "**Required if using `\"source\": \"PLAINID\"`.* <br> Attribute maximum length"
          },
          "isRequired": {
            "type": "boolean",
            "description": "**Required if using `\"source\": \"PLAINID\"`.* <br> Indicates if the Attribute is required."
          },
          "canBeUpdated": {
            "type": "string",
            "enum": [
              "false",
              "ONLY_ON_CREATE",
              "ALWAYS"
            ],
            "description": "**Required if using `\"source\": \"PLAINID\"`.* <br> Indicates if the PlainID Attribute can be updated."
          }
        }
      },
      "Action": {
        "type": "object",
        "description": "Action",
        "required": [
          "actionId",
          "value"
        ],
        "properties": {
          "actionId": {
            "type": "string",
            "maxLength": "100",
            "minLength": "1",
            "description": "Action ID"
          },
          "value": {
            "type": "string",
            "maxLength": "1000",
            "description": "Action Value"
          },
          "type": {
            "type": "string",
            "description": "Action Type. This parameter is *only relevant for Orchestration Asset Templates.*"
          }
        }
      }
    },
    "examples": {
      "assetTemplateNotFound": {
        "value": {
          "errors": [
            {
              "code": "ATV-001",
              "id": "EQ7CMX",
              "status": "404",
              "name": "AssetTemplateNotFoundError",
              "message": "Asset Template: [non-existing-id] not found in Environment: [2d4a0591-dfe4-45fb-8a69-d183f5c75c0d]"
            }
          ]
        }
      }
    }
  }
}
````

