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

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

<mark style="color:blue;">`GET`</mark> `https://direct.i-dgtl.ru/api/v1/templates/{template_id}`

Метод позволяет получить объект шаблона с указанным id.

#### Path Parameters

| Name                                           | Type    | Description                          |
| ---------------------------------------------- | ------- | ------------------------------------ |
| template\_id<mark style="color:red;">\*</mark> | integer | Идентификатор запрашиваемого шаблона |

#### Headers

| Name                                            | Type   | Description       |
| ----------------------------------------------- | ------ | ----------------- |
| Authorization<mark style="color:red;">\*</mark> | string | `Basic {TOKEN_2}` |

{% tabs %}
{% tab title="200 " %}

```
{
  "id": 1234,
  "channelType": "SMS",
  "templateType": "SERVICE",
  "pattern": "привет, %w",
  "dateFrom": "2020-07-07T21:00:00Z",
  "dateTo": "2020-10-10T00:00:00Z",
  "senderNameId": 1234,
  "senderName": "testsend",
  "brand": "BEELINE",
  "managerComment": "комментарий менеджера",
  "status": "CLOSED",
  "createdAt": "2020-06-01T21:00:00Z",
  "rejectedAt": "2020-06-07T21:00:00Z"
}
```

{% endtab %}

{% tab title="401" %}
Использование невалидного токена / отсутствие заголовка авторизации.

{% tabs %}
{% tab title="4012" %}

```
{
    "error": {
        "code": 4012,
        "msg": "Bad credentials"
    }
}
```

{% endtab %}

{% tab title="4010" %}

```
{
    "error": {
        "code": 4010,
        "msg": "Not Authenticated"
    }
}
```

{% endtab %}
{% endtabs %}
{% endtab %}

{% tab title="403" %}
Использование неподходящего токена.

```
{
    "error": {
        "code": 4030,
        "msg": "Access Denied"
    }
}
```

{% endtab %}

{% tab title="422" %}
Несуществующий template\_id.

```
{
    "error": {
        "code": 4220,
        "msg": "Client 5 has not template 1"
    }
}
```

{% endtab %}
{% endtabs %}

## Описание объекта шаблона <a href="#template-object" id="template-object"></a>

| Параметр       | Тип     | Описание                                                                      |
| -------------- | ------- | ----------------------------------------------------------------------------- |
| id             | integer | Идентификатор шаблона                                                         |
| channelType    | string  | [Канал трафика](/extra/references.md#channel-types)                           |
| templateType   | string  | [Тип шаблона](/extra/references.md#template-types)                            |
| pattern        | string  | Текст шаблона                                                                 |
| dateFrom       | string  | Дата начала действия                                                          |
| dateTo         | string  | Дата окончания действия                                                       |
| senderNameId   | integer | Идентификатор имени отправителя, на которое зарегистрирован шаблон            |
| senderName     | string  | Имя отправителя                                                               |
| brand          | string  | [Оператор](/extra/references.md#sender-name-brands) (только для SMS-шаблонов) |
| countryCode    | string  | Код страны (только для VIBER-шаблонов)                                        |
| managerComment | string  | Комментарий менеджера                                                         |
| status         | string  | [Статус шаблона](/extra/references.md#templates-states)                       |
| createdAt      | string  | Дата создания шаблона                                                         |
| rejectedAt     | string  | Дата отклонения шаблона                                                       |
| content        | object  | Контент шаблона (только для WHATSAPP-шаблонов, описан ниже)                   |

### Контент WHATSAPP-шаблона <a href="#whatsapp_template_content" id="whatsapp_template_content"></a>

{% tabs %}
{% tab title="Текстовый заголовок и кнопки" %}

```
{
  "header": {
    "type": "text",
    "text": "Текст заголовка {{1}}"
  },
  "text": "Текст сообщения {{2}}",
  "footer": "Текст подписи",
  "buttons": [
    {
      "text": "Текст кнопки 1"
    },
    {
      "text": "Текст кнопки 2"
    },
    {
      "text": "Текст кнопки 3"
    }
  }
}
```

{% endtab %}

{% tab title="Интерактивный заголовок и кнопки" %}

```
{
  "header": {
    "type": "image"
  },
  "text": "Текст сообщения {{1}}",
  "footer": "Подпись сообщения",
  "buttons": [
    {
      "text": "Кнопка-ссылка",
      "url": "https://i-dgtl.ru"
    },
    {
      "text": "Кнопка-вызов",
      "phone": "78000000000"
    }
  ]
}
```

{% endtab %}
{% endtabs %}

| Параметр              | Тип    | Описание                                                                                                               |
| --------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------- |
| content.header        | object | Объект с информацией о заголовке сообщения                                                                             |
| content.header.type   | string | <p>Тип заголовка; принимает значения:</p><p><code>text</code></p><p><code>image</code></p><p><code>document</code></p> |
| content.header.text   | string | Текст заголовка; присутствует только при `header.type = text`                                                          |
| content.text          | string | Текст сообщения                                                                                                        |
| content.footer        | string | Подпись сообщения                                                                                                      |
| content.buttons       | array  | Массив объектов с кнопками                                                                                             |
| content.buttons.text  | string | Текст кнопки                                                                                                           |
| content.buttons.url   | string | Ссылка, на которую произойдет переход при нажатии на кнопку                                                            |
| content.buttons.phone | string | Телефонный номер, на который произойдет вызов при нажатии на кнопку                                                    |

### Формирование WHATSAPP-сообщения

Для того, чтобы сформировать из WHATSAPP-шаблона [контент WHATSAPP-сообщения](/messages/whatsapp-sending.md#text), необходимо:

1. Добавить параметр `content.contentType` со значением `"text"`
2. Заполнить подстановки: параметры `content.header.text` и `content.text` могут содержать переменные вида {{1}}, {{2}}, которые необходимо заменить на строки
3. Удалить параметр `content.header.type` из заголовка
4. Добавить интерактивное содержимое в заголовок:
   1. если `content.header.type = document`, то нужно добавить
      1. `content.header.documentUrl` — ссылка на документ
      2. `content.header.documentName` — название документа, которое будет отображено абоненту
   2. если `content.header.type = image`, то нужно добавить
      1. `content.header.imageUrl` — ссылка на изображение
5. Преобразовать строку `content.footer` в строку `content.footer.text`, добавив вложенный объект `content.footer`
6. Для кнопок, у которых отсутствует `content.buttons.url` / `content.buttons.phone`, необходимо добавить строку `content.buttons.payload`

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

<mark style="color:blue;">`GET`</mark> `https://direct.i-dgtl.ru/api/v1/templates`

Метод позволяет получить массив объектов шаблонов, подходящих под условия фильтрации.

#### Query Parameters

| Name             | Type   | Description                                                                                      |
| ---------------- | ------ | ------------------------------------------------------------------------------------------------ |
| page             | string | <p>Номер запрашиваемой страницы<br>По умолчанию 1</p>                                            |
| per\_page        | string | <p>Количество записей на странице<br>По умолчанию 2000</p>                                       |
| template\_id     | string | <p>Идентификатор шаблона<br>Множественный параметр</p>                                           |
| sender\_name\_id | string | <p>Фильтрация по идентификатору имени отправителя<br>Множественный параметр</p>                  |
| sender\_name     | string | <p>Фильтрация по имени отправителя (поиск по полному соответствию)<br>Множественный параметр</p> |
| channel\_type    | string | Фильтрация по каналу                                                                             |
| brand            | string | <p>Фильтрация по оператору<br>Множественный параметр</p>                                         |
| country\_code    | string | <p>Фильтрация по коду страны<br>Множественный параметр</p>                                       |
| status           | string | <p>Фильтрация по статусу<br>Множественный параметр</p>                                           |
| template\_type   | string | <p>Фильтрация по типу<br>Множественный параметр</p>                                              |
| pattern          | string | Фильтрация по тексту шаблона (по наличию подстроки в тексте)                                     |
| min\_date\_from  | string | Фильтрация по нижнему значению даты начала действия                                              |
| min\_date\_to    | string | Фильтрация по нижнему значению даты окончания действия                                           |
| max\_date\_from  | string | Фильтрация по верхнему значению даты начала действия                                             |
| max\_date\_to    | string | Фильтрация по верхнему значению даты окончания действия                                          |

#### Headers

| Name          | Type   | Description       |
| ------------- | ------ | ----------------- |
| Authorization | string | `Basic {TOKEN_2}` |

{% tabs %}
{% tab title="200 " %}

```
{
  "page": 1,
  "perPage": 2000,
  "total": 1,
  "items": [
    {
      "id": 1234,
      "channelType": "SMS",
      "templateType": "SERVICE",
      "pattern": "привет, %w",
      "dateFrom": "2020-07-07T21:00:00Z",
      "dateTo": "2020-10-10T00:00:00Z",
      "senderNameId": 1234,
      "senderName": "testsend",
      "brand": "BEELINE",
      "managerComment": "комментарий менеджера",
      "status": "CLOSED",
      "createdAt": "2020-06-01T21:00:00Z",
      "rejectedAt": "2020-06-07T21:00:00Z"
    }
  ]
```

{% endtab %}
{% endtabs %}

Возможные варианты перечислений:

| Параметр       | Варианты                                                               |
| -------------- | ---------------------------------------------------------------------- |
| channel\_type  | [Каналы имен отправителей](/extra/references.md#sender-name-channels)  |
| country\_code  | [Страны имен отправителей](/extra/references.md#sender-name-countries) |
| brand          | [Операторы имен отправителей](/extra/references.md#sender-name-brands) |
| status         | [Статусы шаблонов](/extra/references.md#templates-states)              |
| template\_type | [Типы шаблонов](/extra/references.md#template-types)                   |

## Примеры запроса <a href="#example" id="example"></a>

Получение сервисных шаблонов, зарегистрированных на операторов Теле2 и Билайн в статусах "Одобрено" и "Закрыто"

{% tabs %}
{% tab title="JSON" %}

```
GET https://direct.i-dgtl.ru/api/v1/templates?template_type=SERVICE&brand=TELE2&brand=BEELINE&status=APPROVED&status=CLOSED
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET 'https://direct.i-dgtl.ru/api/v1/templates?template_type=SERVICE&brand=TELE2&brand=BEELINE&status=APPROVED&status=CLOSED' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
```

{% endtab %}
{% endtabs %}

Получение VIBER-шаблонов, действующих в РФ, в статусе "Одобрено"

{% tabs %}
{% tab title="JSON" %}

```
GET https://direct.i-dgtl.ru/api/v1/templates?channel_type=VIBER&country_code=ru&status=APPROVED
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
```

{% endtab %}

{% tab title="cURL" %}

```
curl -X GET 'https://direct.i-dgtl.ru/api/v1/templates?channel_type=VIBER&country_code=ru&status=APPROVED' \
-H 'Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=='
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api.docs.direct.i-dgtl.ru/templates/get.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
