# Application templates
URL: https://docs.datarobot.com/en/docs/api/reference/public-api/application_templates.html

> Use the endpoints described below to manage application templates.

# Application templates

Use the endpoints described below to manage application templates.

## List the application templates the user has access to

Operation path: `GET /api/v2/applicationTemplates/`

Authentication requirements: `BearerAuth`

List the application templates the user has access to.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| offset | query | integer | false | This many results will be skipped. |
| limit | query | integer | false | At most this many results are returned. |

### Example responses

> 200 Response

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The list of templates.",
      "items": {
        "properties": {
          "createdAt": {
            "description": "The ISO timestamp indicating when the template was created.",
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "description": "The user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of the user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of the user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of the user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The short description of the template.",
            "type": "string"
          },
          "editedAt": {
            "description": "The ISO timestamp indicating when the template was last edited.",
            "type": [
              "string",
              "null"
            ]
          },
          "editedBy": {
            "description": "The user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "editorFirstName": {
            "description": "The first name of the user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "editorLastName": {
            "description": "The last name of the user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "editorUserhash": {
            "description": "The Gravatar hash of the user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The ID of the template.",
            "type": "string"
          },
          "isGlobal": {
            "description": "Whether the template is a global template created by DataRobot.",
            "type": "boolean"
          },
          "isPremium": {
            "description": "Whether the template is a premium template.",
            "type": [
              "boolean",
              "null"
            ],
            "x-versionadded": "v2.36"
          },
          "mediaUrl": {
            "description": "The link to the media URL if there is media associated with the application.",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "The name of the template.",
            "maxLength": 256,
            "type": "string"
          },
          "orderIndex": {
            "description": "The order index of the template.",
            "type": [
              "integer",
              "null"
            ],
            "x-versionadded": "v2.39"
          },
          "ports": {
            "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
            "items": {
              "properties": {
                "description": {
                  "description": "The optional description of the port.",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "port": {
                  "description": "The port number to expose.",
                  "maximum": 65535,
                  "minimum": 1024,
                  "type": "integer"
                }
              },
              "required": [
                "port"
              ],
              "type": "object",
              "x-versionadded": "v2.38"
            },
            "maxItems": 5,
            "type": "array",
            "x-versionadded": "v2.38"
          },
          "readme": {
            "description": "A long-form Markdown readme to be included with the template.",
            "maxLength": 256000,
            "type": "string"
          },
          "repository": {
            "description": "The repository the template is stored in.",
            "properties": {
              "branch": {
                "description": "Optional branch name used when a tag is not provided.",
                "maxLength": 256,
                "type": [
                  "string",
                  "null"
                ],
                "x-versionadded": "v2.4"
              },
              "isPublic": {
                "description": "Sets whether the repository is public or requires authentication.",
                "type": "boolean"
              },
              "softPin": {
                "description": "Optional semantic version constraint (for example, '~=1.1.0') used to resolve tags dynamically.",
                "maxLength": 256,
                "type": [
                  "string",
                  "null"
                ],
                "x-versionadded": "v2.4"
              },
              "tag": {
                "description": "A reference pointing to where to check out the repository, from either a branch or a commit SHA.",
                "maxLength": 256,
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "description": "The URL to the GitHub repository (e.g., https://github.com/my-org/my-project/).",
                "format": "uri",
                "type": "string"
              }
            },
            "required": [
              "isPublic",
              "url"
            ],
            "type": "object",
            "x-versionadded": "v2.35"
          },
          "tags": {
            "description": "All tags of the repository.",
            "items": {
              "description": "A single tag on the repository such as GenAI or Time Series.",
              "maxLength": 256,
              "type": "string"
            },
            "maxItems": 256,
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "createdBy",
          "description",
          "editedAt",
          "editedBy",
          "editorFirstName",
          "editorLastName",
          "editorUserhash",
          "id",
          "isGlobal",
          "isPremium",
          "mediaUrl",
          "name",
          "orderIndex",
          "readme",
          "repository",
          "tags"
        ],
        "type": "object",
        "x-versionadded": "v2.35"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ApplicationTemplateListResponse |

## Create an application template

Operation path: `POST /api/v2/applicationTemplates/`

Authentication requirements: `BearerAuth`

Create an application template.

### Body parameter

```
{
  "properties": {
    "description": {
      "description": "The short description of the template.",
      "type": "string"
    },
    "media": {
      "description": "The image (.png, .jpg, .svg, .gif) that is displayed alongside the template.",
      "format": "binary",
      "type": "string"
    },
    "name": {
      "description": "The name of the template.",
      "maxLength": 256,
      "type": "string"
    },
    "ports": {
      "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
      "type": "string",
      "x-versionadded": "v2.38"
    },
    "readme": {
      "description": "A long-form Markdown readme to be included with the template.",
      "format": "binary",
      "type": "string"
    },
    "repository": {
      "description": "The repository the template is stored in.",
      "type": "string"
    },
    "tags": {
      "description": "All tags of the repository.",
      "maxLength": 256,
      "type": "string"
    }
  },
  "required": [
    "description",
    "name",
    "readme",
    "repository",
    "tags"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| body | body | ApplicationTemplateCreate | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 201 | Created | none | None |
| 403 | Forbidden | Permission settings do not allow creating templates. | None |

## Delete an application template by application template ID

Operation path: `DELETE /api/v2/applicationTemplates/{applicationTemplateId}/`

Authentication requirements: `BearerAuth`

Delete an application template.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | none | None |
| 403 | Forbidden | Permission settings do not allow deleting templates. | None |
| 404 | Not Found | The template is either global, preventing deletion, or does not exist. | None |

## Update an application template by application template ID

Operation path: `PATCH /api/v2/applicationTemplates/{applicationTemplateId}/`

Authentication requirements: `BearerAuth`

Update an application template.

### Body parameter

```
{
  "properties": {
    "description": {
      "description": "The short description of the template.",
      "type": "string"
    },
    "name": {
      "description": "The name of the template.",
      "maxLength": 256,
      "type": "string"
    },
    "ports": {
      "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
      "type": "string",
      "x-versionadded": "v2.38"
    },
    "readme": {
      "description": "A long-form Markdown readme to be included with the template.",
      "format": "binary",
      "type": "string"
    },
    "repository": {
      "description": "The repository the template is stored in.",
      "type": "string"
    },
    "tags": {
      "description": "All tags of the repository.",
      "maxLength": 256,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |
| body | body | ApplicationTemplateUpdate | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | none | None |
| 403 | Forbidden | Permission settings do not allow updating templates. | None |
| 404 | Not Found | The template is either global, preventing updates, or does not exist. | None |

## Clone an application template into a codespace by application template ID

Operation path: `POST /api/v2/applicationTemplates/{applicationTemplateId}/clone/`

Authentication requirements: `BearerAuth`

Clone an application template into a codespace.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |

### Example responses

> 200 Response

```
{
  "properties": {
    "notebookId": {
      "description": "The ID of the newly created codespace.",
      "type": "string"
    },
    "useCaseId": {
      "description": "The ID of the newly created Use Case.",
      "type": "string"
    }
  },
  "required": [
    "notebookId",
    "useCaseId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ApplicationTemplateCloneResponse |
| 403 | Forbidden | Permission settings do not allow cloning templates. | None |
| 404 | Not Found | The template does not exist. | None |
| 422 | Unprocessable Entity | An error ocurred when creating the codespace. | None |

## Delete an application template image/gif. by application template ID

Operation path: `DELETE /api/v2/applicationTemplates/{applicationTemplateId}/media/`

Authentication requirements: `BearerAuth`

Delete an application template image/gif.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 204 | No Content | none | None |
| 403 | Forbidden | Permission settings do not allow allow deleting media from templates. | None |
| 404 | Not Found | The template is either global, preventing media deletion, or does not exist. | None |

## Retrieve an application template image by application template ID

Operation path: `GET /api/v2/applicationTemplates/{applicationTemplateId}/media/`

Authentication requirements: `BearerAuth`

Retrieve an application template image.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |

### Example responses

> 200 Response

```
{
  "properties": {
    "data": {
      "description": "The media file returned as a FileObject.",
      "format": "binary",
      "type": "string"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ApplicationTemplateMediaResponse |
| 404 | Not Found | The template media does not exist or the template does not exist. | None |

## Upload an application template image/gif. by application template ID

Operation path: `POST /api/v2/applicationTemplates/{applicationTemplateId}/media/`

Authentication requirements: `BearerAuth`

Upload an application template image/gif.

### Body parameter

```
{
  "properties": {
    "media": {
      "description": "The image (.png, .jpg, .svg, .gif) that is displayed alongside the template.",
      "format": "binary",
      "type": "string"
    }
  },
  "required": [
    "media"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |
| body | body | ApplicationTemplateMediaUpload | false | none |

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 202 | Accepted | none | None |
| 403 | Forbidden | Permission settings do not allow allow uploading media to templates. | None |
| 404 | Not Found | The template is either global, preventing media upload, or does not exist. | None |

## Get the resolved clone URL by application template ID

Operation path: `GET /api/v2/applicationTemplates/{applicationTemplateId}/repositoryUrls/`

Authentication requirements: `BearerAuth`

Get the resolved clone URL for an application template repository.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| applicationTemplateId | path | string | true | The ID of the template. |

### Example responses

> 200 Response

```
{
  "properties": {
    "repositoryUrl": {
      "description": "The resolved clone URL for the template repository with any configured git base URL override applied.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "repositoryUrl"
  ],
  "type": "object",
  "x-versionadded": "v2.43"
}
```

### Responses

| Status | Meaning | Description | Schema |
| --- | --- | --- | --- |
| 200 | OK | none | ApplicationTemplateRepositoryUrlResponse |
| 404 | Not Found | The template does not exist. | None |

# Schemas

## ApplicationTemplateCloneResponse

```
{
  "properties": {
    "notebookId": {
      "description": "The ID of the newly created codespace.",
      "type": "string"
    },
    "useCaseId": {
      "description": "The ID of the newly created Use Case.",
      "type": "string"
    }
  },
  "required": [
    "notebookId",
    "useCaseId"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| notebookId | string | true |  | The ID of the newly created codespace. |
| useCaseId | string | true |  | The ID of the newly created Use Case. |

## ApplicationTemplateCreate

```
{
  "properties": {
    "description": {
      "description": "The short description of the template.",
      "type": "string"
    },
    "media": {
      "description": "The image (.png, .jpg, .svg, .gif) that is displayed alongside the template.",
      "format": "binary",
      "type": "string"
    },
    "name": {
      "description": "The name of the template.",
      "maxLength": 256,
      "type": "string"
    },
    "ports": {
      "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
      "type": "string",
      "x-versionadded": "v2.38"
    },
    "readme": {
      "description": "A long-form Markdown readme to be included with the template.",
      "format": "binary",
      "type": "string"
    },
    "repository": {
      "description": "The repository the template is stored in.",
      "type": "string"
    },
    "tags": {
      "description": "All tags of the repository.",
      "maxLength": 256,
      "type": "string"
    }
  },
  "required": [
    "description",
    "name",
    "readme",
    "repository",
    "tags"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| description | string | true |  | The short description of the template. |
| media | string(binary) | false |  | The image (.png, .jpg, .svg, .gif) that is displayed alongside the template. |
| name | string | true | maxLength: 256 | The name of the template. |
| ports | string | false |  | A list of ports that the application template exposes. Each port has a port number and an optional description. |
| readme | string(binary) | true |  | A long-form Markdown readme to be included with the template. |
| repository | string | true |  | The repository the template is stored in. |
| tags | string | true | maxLength: 256 | All tags of the repository. |

## ApplicationTemplateListResponse

```
{
  "properties": {
    "count": {
      "description": "The number of items returned on this page.",
      "type": "integer"
    },
    "data": {
      "description": "The list of templates.",
      "items": {
        "properties": {
          "createdAt": {
            "description": "The ISO timestamp indicating when the template was created.",
            "type": [
              "string",
              "null"
            ]
          },
          "createdBy": {
            "description": "The user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorFirstName": {
            "description": "The first name of the user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorLastName": {
            "description": "The last name of the user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "creatorUserhash": {
            "description": "The Gravatar hash of the user who created the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "description": "The short description of the template.",
            "type": "string"
          },
          "editedAt": {
            "description": "The ISO timestamp indicating when the template was last edited.",
            "type": [
              "string",
              "null"
            ]
          },
          "editedBy": {
            "description": "The user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "editorFirstName": {
            "description": "The first name of the user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "editorLastName": {
            "description": "The last name of the user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "editorUserhash": {
            "description": "The Gravatar hash of the user who last edited the template.",
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "description": "The ID of the template.",
            "type": "string"
          },
          "isGlobal": {
            "description": "Whether the template is a global template created by DataRobot.",
            "type": "boolean"
          },
          "isPremium": {
            "description": "Whether the template is a premium template.",
            "type": [
              "boolean",
              "null"
            ],
            "x-versionadded": "v2.36"
          },
          "mediaUrl": {
            "description": "The link to the media URL if there is media associated with the application.",
            "format": "uri",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "The name of the template.",
            "maxLength": 256,
            "type": "string"
          },
          "orderIndex": {
            "description": "The order index of the template.",
            "type": [
              "integer",
              "null"
            ],
            "x-versionadded": "v2.39"
          },
          "ports": {
            "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
            "items": {
              "properties": {
                "description": {
                  "description": "The optional description of the port.",
                  "maxLength": 500,
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "port": {
                  "description": "The port number to expose.",
                  "maximum": 65535,
                  "minimum": 1024,
                  "type": "integer"
                }
              },
              "required": [
                "port"
              ],
              "type": "object",
              "x-versionadded": "v2.38"
            },
            "maxItems": 5,
            "type": "array",
            "x-versionadded": "v2.38"
          },
          "readme": {
            "description": "A long-form Markdown readme to be included with the template.",
            "maxLength": 256000,
            "type": "string"
          },
          "repository": {
            "description": "The repository the template is stored in.",
            "properties": {
              "branch": {
                "description": "Optional branch name used when a tag is not provided.",
                "maxLength": 256,
                "type": [
                  "string",
                  "null"
                ],
                "x-versionadded": "v2.4"
              },
              "isPublic": {
                "description": "Sets whether the repository is public or requires authentication.",
                "type": "boolean"
              },
              "softPin": {
                "description": "Optional semantic version constraint (for example, '~=1.1.0') used to resolve tags dynamically.",
                "maxLength": 256,
                "type": [
                  "string",
                  "null"
                ],
                "x-versionadded": "v2.4"
              },
              "tag": {
                "description": "A reference pointing to where to check out the repository, from either a branch or a commit SHA.",
                "maxLength": 256,
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "description": "The URL to the GitHub repository (e.g., https://github.com/my-org/my-project/).",
                "format": "uri",
                "type": "string"
              }
            },
            "required": [
              "isPublic",
              "url"
            ],
            "type": "object",
            "x-versionadded": "v2.35"
          },
          "tags": {
            "description": "All tags of the repository.",
            "items": {
              "description": "A single tag on the repository such as GenAI or Time Series.",
              "maxLength": 256,
              "type": "string"
            },
            "maxItems": 256,
            "type": "array"
          }
        },
        "required": [
          "createdAt",
          "createdBy",
          "description",
          "editedAt",
          "editedBy",
          "editorFirstName",
          "editorLastName",
          "editorUserhash",
          "id",
          "isGlobal",
          "isPremium",
          "mediaUrl",
          "name",
          "orderIndex",
          "readme",
          "repository",
          "tags"
        ],
        "type": "object",
        "x-versionadded": "v2.35"
      },
      "maxItems": 100,
      "type": "array"
    },
    "next": {
      "description": "The URL of the next page (if null, there is no next page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "previous": {
      "description": "The URL of the previous page (if null, there is no previous page).",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "totalCount": {
      "description": "The total number of items across all pages.",
      "type": "integer"
    }
  },
  "required": [
    "data",
    "next",
    "previous",
    "totalCount"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| count | integer | false |  | The number of items returned on this page. |
| data | [ApplicationTemplateResponse] | true | maxItems: 100 | The list of templates. |
| next | string,null(uri) | true |  | The URL of the next page (if null, there is no next page). |
| previous | string,null(uri) | true |  | The URL of the previous page (if null, there is no previous page). |
| totalCount | integer | true |  | The total number of items across all pages. |

## ApplicationTemplateMediaResponse

```
{
  "properties": {
    "data": {
      "description": "The media file returned as a FileObject.",
      "format": "binary",
      "type": "string"
    }
  },
  "required": [
    "data"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| data | string(binary) | true |  | The media file returned as a FileObject. |

## ApplicationTemplateMediaUpload

```
{
  "properties": {
    "media": {
      "description": "The image (.png, .jpg, .svg, .gif) that is displayed alongside the template.",
      "format": "binary",
      "type": "string"
    }
  },
  "required": [
    "media"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| media | string(binary) | true |  | The image (.png, .jpg, .svg, .gif) that is displayed alongside the template. |

## ApplicationTemplateRepositoryUrlResponse

```
{
  "properties": {
    "repositoryUrl": {
      "description": "The resolved clone URL for the template repository with any configured git base URL override applied.",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "repositoryUrl"
  ],
  "type": "object",
  "x-versionadded": "v2.43"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| repositoryUrl | string(uri) | true |  | The resolved clone URL for the template repository with any configured git base URL override applied. |

## ApplicationTemplateResponse

```
{
  "properties": {
    "createdAt": {
      "description": "The ISO timestamp indicating when the template was created.",
      "type": [
        "string",
        "null"
      ]
    },
    "createdBy": {
      "description": "The user who created the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorFirstName": {
      "description": "The first name of the user who created the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorLastName": {
      "description": "The last name of the user who created the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "creatorUserhash": {
      "description": "The Gravatar hash of the user who created the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "description": "The short description of the template.",
      "type": "string"
    },
    "editedAt": {
      "description": "The ISO timestamp indicating when the template was last edited.",
      "type": [
        "string",
        "null"
      ]
    },
    "editedBy": {
      "description": "The user who last edited the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "editorFirstName": {
      "description": "The first name of the user who last edited the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "editorLastName": {
      "description": "The last name of the user who last edited the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "editorUserhash": {
      "description": "The Gravatar hash of the user who last edited the template.",
      "type": [
        "string",
        "null"
      ]
    },
    "id": {
      "description": "The ID of the template.",
      "type": "string"
    },
    "isGlobal": {
      "description": "Whether the template is a global template created by DataRobot.",
      "type": "boolean"
    },
    "isPremium": {
      "description": "Whether the template is a premium template.",
      "type": [
        "boolean",
        "null"
      ],
      "x-versionadded": "v2.36"
    },
    "mediaUrl": {
      "description": "The link to the media URL if there is media associated with the application.",
      "format": "uri",
      "type": [
        "string",
        "null"
      ]
    },
    "name": {
      "description": "The name of the template.",
      "maxLength": 256,
      "type": "string"
    },
    "orderIndex": {
      "description": "The order index of the template.",
      "type": [
        "integer",
        "null"
      ],
      "x-versionadded": "v2.39"
    },
    "ports": {
      "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
      "items": {
        "properties": {
          "description": {
            "description": "The optional description of the port.",
            "maxLength": 500,
            "type": [
              "string",
              "null"
            ]
          },
          "port": {
            "description": "The port number to expose.",
            "maximum": 65535,
            "minimum": 1024,
            "type": "integer"
          }
        },
        "required": [
          "port"
        ],
        "type": "object",
        "x-versionadded": "v2.38"
      },
      "maxItems": 5,
      "type": "array",
      "x-versionadded": "v2.38"
    },
    "readme": {
      "description": "A long-form Markdown readme to be included with the template.",
      "maxLength": 256000,
      "type": "string"
    },
    "repository": {
      "description": "The repository the template is stored in.",
      "properties": {
        "branch": {
          "description": "Optional branch name used when a tag is not provided.",
          "maxLength": 256,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.4"
        },
        "isPublic": {
          "description": "Sets whether the repository is public or requires authentication.",
          "type": "boolean"
        },
        "softPin": {
          "description": "Optional semantic version constraint (for example, '~=1.1.0') used to resolve tags dynamically.",
          "maxLength": 256,
          "type": [
            "string",
            "null"
          ],
          "x-versionadded": "v2.4"
        },
        "tag": {
          "description": "A reference pointing to where to check out the repository, from either a branch or a commit SHA.",
          "maxLength": 256,
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "description": "The URL to the GitHub repository (e.g., https://github.com/my-org/my-project/).",
          "format": "uri",
          "type": "string"
        }
      },
      "required": [
        "isPublic",
        "url"
      ],
      "type": "object",
      "x-versionadded": "v2.35"
    },
    "tags": {
      "description": "All tags of the repository.",
      "items": {
        "description": "A single tag on the repository such as GenAI or Time Series.",
        "maxLength": 256,
        "type": "string"
      },
      "maxItems": 256,
      "type": "array"
    }
  },
  "required": [
    "createdAt",
    "createdBy",
    "description",
    "editedAt",
    "editedBy",
    "editorFirstName",
    "editorLastName",
    "editorUserhash",
    "id",
    "isGlobal",
    "isPremium",
    "mediaUrl",
    "name",
    "orderIndex",
    "readme",
    "repository",
    "tags"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| createdAt | string,null | true |  | The ISO timestamp indicating when the template was created. |
| createdBy | string,null | true |  | The user who created the template. |
| creatorFirstName | string,null | false |  | The first name of the user who created the template. |
| creatorLastName | string,null | false |  | The last name of the user who created the template. |
| creatorUserhash | string,null | false |  | The Gravatar hash of the user who created the template. |
| description | string | true |  | The short description of the template. |
| editedAt | string,null | true |  | The ISO timestamp indicating when the template was last edited. |
| editedBy | string,null | true |  | The user who last edited the template. |
| editorFirstName | string,null | true |  | The first name of the user who last edited the template. |
| editorLastName | string,null | true |  | The last name of the user who last edited the template. |
| editorUserhash | string,null | true |  | The Gravatar hash of the user who last edited the template. |
| id | string | true |  | The ID of the template. |
| isGlobal | boolean | true |  | Whether the template is a global template created by DataRobot. |
| isPremium | boolean,null | true |  | Whether the template is a premium template. |
| mediaUrl | string,null(uri) | true |  | The link to the media URL if there is media associated with the application. |
| name | string | true | maxLength: 256 | The name of the template. |
| orderIndex | integer,null | true |  | The order index of the template. |
| ports | [Ports] | false | maxItems: 5 | A list of ports that the application template exposes. Each port has a port number and an optional description. |
| readme | string | true | maxLength: 256000 | A long-form Markdown readme to be included with the template. |
| repository | Repository | true |  | The repository the template is stored in. |
| tags | [string] | true | maxItems: 256 | All tags of the repository. |

## ApplicationTemplateUpdate

```
{
  "properties": {
    "description": {
      "description": "The short description of the template.",
      "type": "string"
    },
    "name": {
      "description": "The name of the template.",
      "maxLength": 256,
      "type": "string"
    },
    "ports": {
      "description": "A list of ports that the application template exposes. Each port has a port number and an optional description.",
      "type": "string",
      "x-versionadded": "v2.38"
    },
    "readme": {
      "description": "A long-form Markdown readme to be included with the template.",
      "format": "binary",
      "type": "string"
    },
    "repository": {
      "description": "The repository the template is stored in.",
      "type": "string"
    },
    "tags": {
      "description": "All tags of the repository.",
      "maxLength": 256,
      "type": "string"
    }
  },
  "type": "object",
  "x-versionadded": "v2.35"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| description | string | false |  | The short description of the template. |
| name | string | false | maxLength: 256 | The name of the template. |
| ports | string | false |  | A list of ports that the application template exposes. Each port has a port number and an optional description. |
| readme | string(binary) | false |  | A long-form Markdown readme to be included with the template. |
| repository | string | false |  | The repository the template is stored in. |
| tags | string | false | maxLength: 256 | All tags of the repository. |

## Ports

```
{
  "properties": {
    "description": {
      "description": "The optional description of the port.",
      "maxLength": 500,
      "type": [
        "string",
        "null"
      ]
    },
    "port": {
      "description": "The port number to expose.",
      "maximum": 65535,
      "minimum": 1024,
      "type": "integer"
    }
  },
  "required": [
    "port"
  ],
  "type": "object",
  "x-versionadded": "v2.38"
}
```

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| description | string,null | false | maxLength: 500 | The optional description of the port. |
| port | integer | true | maximum: 65535minimum: 1024 | The port number to expose. |

## Repository

```
{
  "description": "The repository the template is stored in.",
  "properties": {
    "branch": {
      "description": "Optional branch name used when a tag is not provided.",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.4"
    },
    "isPublic": {
      "description": "Sets whether the repository is public or requires authentication.",
      "type": "boolean"
    },
    "softPin": {
      "description": "Optional semantic version constraint (for example, '~=1.1.0') used to resolve tags dynamically.",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ],
      "x-versionadded": "v2.4"
    },
    "tag": {
      "description": "A reference pointing to where to check out the repository, from either a branch or a commit SHA.",
      "maxLength": 256,
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "description": "The URL to the GitHub repository (e.g., https://github.com/my-org/my-project/).",
      "format": "uri",
      "type": "string"
    }
  },
  "required": [
    "isPublic",
    "url"
  ],
  "type": "object",
  "x-versionadded": "v2.35"
}
```

The repository the template is stored in.

### Properties

| Name | Type | Required | Restrictions | Description |
| --- | --- | --- | --- | --- |
| branch | string,null | false | maxLength: 256 | Optional branch name used when a tag is not provided. |
| isPublic | boolean | true |  | Sets whether the repository is public or requires authentication. |
| softPin | string,null | false | maxLength: 256 | Optional semantic version constraint (for example, '~=1.1.0') used to resolve tags dynamically. |
| tag | string,null | false | maxLength: 256 | A reference pointing to where to check out the repository, from either a branch or a commit SHA. |
| url | string(uri) | true |  | The URL to the GitHub repository (e.g., https://github.com/my-org/my-project/). |

---
