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

# Шаблоны

> Сохраняйте повторно используемые дизайны QR-кодов и применяйте их к новым QR-кодам.

> [!NOTE]
>
> GetQR API находится в бета-версии и доступен для отдельных рабочих пространств. До общего релиза детали могут измениться.

Шаблон хранит повторно используемый дизайн: `styles`, `frameOptions` и `logoOptions`. В нём никогда нет содержимого или ссылки. Шаблоны общие для всех участников рабочего пространства.

| Метод | Путь | Описание |
| - | - | - |
| `GET` | `/api/v1/templates` | [Список шаблонов](#список-шаблонов) |
| `POST` | `/api/v1/templates` | [Создание шаблона](#создание-шаблона) |
| `GET` | `/api/v1/templates/{templateId}` | [Получение шаблона](#получение-шаблона) |
| `PATCH` | `/api/v1/templates/{templateId}` | [Обновление шаблона](#обновление-шаблона) |
| `DELETE` | `/api/v1/templates/{templateId}` | [Удаление шаблона](#удаление-шаблона) |
| `POST` | `/api/v1/templates/{templateId}/duplicate` | [Дублирование шаблона](#дублирование-шаблона) |

## Применение шаблона

Передайте `templateId`, когда [создаёте QR-код](https://docs.getqr.com/ru/api/endpoints/qr-codes.md). Дизайн шаблона применяется к новому QR-коду. Любой из трёх объектов дизайна, переданных в том же запросе, накладывается поверх него.

* **Копия, а не связь.** QR-код хранит собственную копию дизайна. Последующее изменение или удаление шаблона на него не влияет.
* **Только Custom designs.** Шаблон с `designKind` `branded` или `ai` нельзя применить через API: запрос возвращает `422` (`art_template_unsupported`).
* **Только ваше рабочее пространство.** Неизвестный шаблон или шаблон из другого рабочего пространства возвращает `404`.

## Заголовки

**Authorization** `string` *required*

`Bearer` и ваш API-ключ. См. [Аутентификация](https://docs.getqr.com/ru/api/authentication.md).

**Content-Type** `string`

`application/json`. Обязателен в запросах с телом.

## Объект шаблона

**id** `string`

ID шаблона, например `qrt_8Hs2mQvKpLd4RtYw`.

**name** `string`

Название, которое видно при выборе шаблона.

**designKind** `string`

Только для чтения. `custom` — дизайн, который API может полностью изменять. `branded` и `ai` — Branded design или AI design, созданный в панели управления: его изображение нельзя изменить через API, и оно сохраняется, когда вы меняете другие поля дизайна.

**design** `object`

Сохранённый дизайн. Каждое поле имеет ту же структуру, что и одноимённое поле запроса, поэтому его можно отправить обратно.

**properties**

**styles** `object | null`

Формы и цвета точек и углов.

**frameOptions** `object | null`

Рамка вокруг QR-кода и текст призыва к действию.

**logoOptions** `object | null`

Логотип в центре.

**createdAt** `string`

Дата создания, ISO 8601.

**updatedAt** `string`

Дата последнего обновления, ISO 8601.

## Список шаблонов

`GET /api/v1/templates`

Возвращает шаблоны вашего рабочего пространства, начиная с самых новых. Список постраничный: см. [Пагинация](https://docs.getqr.com/ru/api/introduction.md#пагинация).

**page** `integer` (default: 1)

Возвращаемая страница, 1 или больше.

**pageSize** `integer` (default: 100)

Результатов на странице, от 1 до 100.

```bash cURL theme={null}
curl "https://getqr.com/api/v1/templates?page=1&pageSize=100" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "data": [
    {
      "id": "qrt_8Hs2mQvKpLd4RtYw",
      "name": "Brand blue",
      "designKind": "custom",
      "design": {
        "styles": {
          "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
          "backgroundOptions": { "color": "#FFFFFF" }
        },
        "frameOptions": null,
        "logoOptions": null
      },
      "createdAt": "2026-07-20T09:12:00.000Z",
      "updatedAt": "2026-07-20T09:12:00.000Z"
    }
  ],
  "pagination": { "page": 1, "pageSize": 100, "total": 1, "hasMore": false }
}
```

## Создание шаблона

`POST /api/v1/templates`

Сохраняет новый дизайн. Отвечает `201 Created`. Поля дизайна проверяются по каталогам из раздела [Оформление](https://docs.getqr.com/ru/api/guides/customization.md), поэтому неизвестная форма, рамка или логотип отклоняются с `422`.

**name** `string` *required*

Название, которое видно при выборе шаблона, от 1 до 40 символов.

**styles** `object`

Формы и цвета точек и углов. См. [Оформление](https://docs.getqr.com/ru/api/guides/customization.md).

**frameOptions** `object`

Рамка вокруг QR-кода и текст призыва к действию. См. [Оформление](https://docs.getqr.com/ru/api/guides/customization.md).

**logoOptions** `object`

Логотип в центре: готовый логотип или ваш файл, загруженный с target `logo` через [Файлы](https://docs.getqr.com/ru/api/endpoints/files.md). См. [Оформление](https://docs.getqr.com/ru/api/guides/customization.md).

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/templates" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Brand blue",
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    }
  }'
```

```json 201 theme={null}
{
  "id": "qrt_8Hs2mQvKpLd4RtYw",
  "name": "Brand blue",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-07-20T09:12:00.000Z",
  "updatedAt": "2026-07-20T09:12:00.000Z"
}
```

## Получение шаблона

`GET /api/v1/templates/{templateId}`

**templateId** `string` *required*

ID шаблона. Возьмите его из ответа на запрос списка или создания.

```bash cURL theme={null}
curl "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{
  "id": "qrt_8Hs2mQvKpLd4RtYw",
  "name": "Brand blue",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-07-20T09:12:00.000Z",
  "updatedAt": "2026-07-20T09:12:00.000Z"
}
```

## Обновление шаблона

`PATCH /api/v1/templates/{templateId}`

Передавайте только поля, которые хотите изменить. Объекты дизайна объединяются с сохранённым дизайном, поэтому частичный `styles` сохраняет остальное. QR-коды, уже созданные из шаблона, сохраняют дизайн, с которым их создали.

**templateId** `string` *required*

ID шаблона.

**name** `string`

Новое название, от 1 до 40 символов.

**styles** `object`

Изменения стилей, которые объединяются с сохранённым `styles`.

**frameOptions** `object`

Изменения рамки, которые объединяются с сохранённой рамкой.

**logoOptions** `object`

Изменения логотипа, которые объединяются с сохранённым логотипом.

```bash cURL theme={null}
curl -X PATCH "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Brand blue (2026)" }'
```

```json 200 theme={null}
{
  "id": "qrt_8Hs2mQvKpLd4RtYw",
  "name": "Brand blue (2026)",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-07-20T09:12:00.000Z",
  "updatedAt": "2026-08-14T09:00:00.000Z"
}
```

## Удаление шаблона

`DELETE /api/v1/templates/{templateId}`

Удаляет шаблон. QR-коды, созданные из него, сохраняют свой дизайн.

**templateId** `string` *required*

ID шаблона.

```bash cURL theme={null}
curl -X DELETE "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 200 theme={null}
{ "id": "qrt_8Hs2mQvKpLd4RtYw", "deleted": true }
```

## Дублирование шаблона

`POST /api/v1/templates/{templateId}/duplicate`

Создаёт копию с названием `<name> copy`, собственным ID и независимым дизайном, который можно свободно менять. Не принимает тело запроса. Отвечает `201 Created`.

**templateId** `string` *required*

ID шаблона, который нужно скопировать.

```bash cURL theme={null}
curl -X POST "https://getqr.com/api/v1/templates/qrt_8Hs2mQvKpLd4RtYw/duplicate" \
  -H "Authorization: Bearer $GETQR_API_KEY"
```

```json 201 theme={null}
{
  "id": "qrt_2Kd9pLm4Xs7BnVcQ",
  "name": "Brand blue copy",
  "designKind": "custom",
  "design": {
    "styles": {
      "dotsOptions": { "type": "rounded", "color": "#1E40AF" },
      "backgroundOptions": { "color": "#FFFFFF" }
    },
    "frameOptions": null,
    "logoOptions": null
  },
  "createdAt": "2026-08-14T09:30:00.000Z",
  "updatedAt": "2026-08-14T09:30:00.000Z"
}
```

## Частые проблемы

> [accordion] 404 "QR template not found."
>
> `templateId` не совпадает ни с одним шаблоном вашего рабочего пространства. Возьмите его из [Списка шаблонов](#список-шаблонов).

> [accordion] 422 при создании или обновлении шаблона
>
> Поле дизайна не соответствует каталогам, например неизвестный тип точек, рамка или готовый логотип. Сообщение называет поле. См. [Оформление](https://docs.getqr.com/ru/api/guides/customization.md).

> [accordion] 422 art\_template\_unsupported при создании QR-кода
>
> Шаблон использует Branded design или AI design. Вместо него примените шаблон с `designKind` `custom`.

## Что дальше

> [card] [Оформление](https://docs.getqr.com/ru/api/guides/customization.md)

> [card] [QR-коды](https://docs.getqr.com/ru/api/endpoints/qr-codes.md)

> [card] [Шаблоны в приложении](https://docs.getqr.com/ru/templates/save-template.md)

> [card] [Файлы](https://docs.getqr.com/ru/api/endpoints/files.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.