> ## 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]
>
> API GetQR перебуває в бета-версії та доступний для окремих робочих просторів. До загального релізу деталі можуть змінитися.

Шаблон зберігає дизайн для повторного використання: `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/ua/api/endpoints/qr-codes.md). Дизайн шаблону застосовується до нового QR-коду. Будь-який із трьох об'єктів дизайну, надісланих у тому самому запиті, накладається поверх нього.

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

## Заголовки

**Authorization** `string` *required*

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

**Content-Type** `string`

`application/json`. Обов'язковий для запитів із тілом.

## Об'єкт шаблону

**id** `string`

ID шаблону, наприклад `qrt_8Hs2mQvKpLd4RtYw`.

**name** `string`

Назва, яку видно під час вибору шаблону.

**designKind** `string`

Лише для читання. `custom` — дизайн, який API може повністю редагувати. `branded` і `ai` — дизайн Branded або AI, створений у панелі керування: його зображення не можна редагувати через 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/ua/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/ua/api/guides/customization.md), тож невідома форма, рамка чи логотип відхиляються з `422`.

**name** `string` *required*

Назва, яку видно під час вибору шаблону, від 1 до 40 символів.

**styles** `object`

Форми й кольори точок і кутів. Див. [Оформлення](https://docs.getqr.com/ua/api/guides/customization.md).

**frameOptions** `object`

Рамка навколо QR-коду та її текст із закликом до дії. Див. [Оформлення](https://docs.getqr.com/ua/api/guides/customization.md).

**logoOptions** `object`

Логотип у центрі: запропонований логотип або ваш власний файл, завантажений з target `logo` через [Файли](https://docs.getqr.com/ua/api/endpoints/files.md). Див. [Оформлення](https://docs.getqr.com/ua/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/ua/api/guides/customization.md).

> [accordion] 422 art\_template\_unsupported під час створення QR-коду
>
> Шаблон використовує дизайн Branded або AI. Натомість застосуйте шаблон із `designKind` `custom`.

## Що далі

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

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

> [card] [Шаблони в застосунку](https://docs.getqr.com/ua/templates/save-template.md)

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


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