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

---
id: 494e6128-ea79-4571-8daf-653d20183e24
---

# Templates API guide

> Create, read, update, and delete CMS templates via the legacy v2 API.

The templates API provides full CRUD access to CMS templates in the design manager, along with buffer management for draft edits and version history for restoring previous states.

<Warning>
  This is a legacy v2 API, which does not have a newer version available. It's recommended to use one of these modern alternatives instead:

  * **Local development:** use the [HubSpot CLI](https://developers.hubspot.com/docs/cms/tools/cli) (`hs fetch` and `hs upload`) to manage template files directly from your local file system.
  * **Programmatic access:** use the [CMS Source Code API](/docs/api-reference/legacy/cms/source-code/guide) to read and write template files via API.
</Warning>

## Endpoints

| Endpoint                                                                                      | Path                                                                |
| --------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |
| [List templates](/docs/api-reference/legacy/cms/v2/templates/get-Templates)                        | `GET /content/api/v2/templates`                                     |
| [Get template by ID](/docs/api-reference/legacy/cms/v2/templates/get-TemplateBy-id)                | `GET /content/api/v2/templates/{template_id}`                       |
| [Create template](/docs/api-reference/legacy/cms/v2/templates/create-Template)                     | `POST /content/api/v2/templates`                                    |
| [Update template](/docs/api-reference/legacy/cms/v2/templates/update-Template)                     | `PUT /content/api/v2/templates/{template_id}`                       |
| [Delete template](/docs/api-reference/legacy/cms/v2/templates/delete-Template)                     | `DELETE /content/api/v2/templates/{template_id}`                    |
| [Restore deleted template](/docs/api-reference/legacy/cms/v2/templates/restore-DeletedTemplate)    | `POST /content/api/v2/templates/{template_id}/restore-deleted`      |
| [Get auto-save buffer](/docs/api-reference/legacy/cms/v2/templates/get-TemplateBuffer)             | `GET /content/api/v2/templates/{template_id}/buffer`                |
| [Update auto-save buffer](/docs/api-reference/legacy/cms/v2/templates/update-TemplateBuffer)       | `PUT /content/api/v2/templates/{template_id}/buffer`                |
| [Check buffer for changes](/docs/api-reference/legacy/cms/v2/templates/checkTemplateBufferChanges) | `GET /content/api/v2/templates/{template_id}/has-buffered-changes`  |
| [Publish buffer](/docs/api-reference/legacy/cms/v2/templates/push-TemplateBufferLive)              | `POST /content/api/v2/templates/{template_id}/push-buffer-live`     |
| [List template versions](/docs/api-reference/legacy/cms/v2/templates/get-TemplateVersions)         | `GET /content/api/v2/templates/{template_id}/versions`              |
| [Get template version](/docs/api-reference/legacy/cms/v2/templates/get-TemplateVersion)            | `GET /content/api/v2/templates/{template_id}/versions/{version_id}` |
| [Restore template version](/docs/api-reference/legacy/cms/v2/templates/restore-TemplateVersion)    | `POST /content/api/v2/templates/{template_id}/versions/restore`     |
