Recipients API — контакты, атрибуты, фильтры
Recipients API «Мой диалог» — управление получателями, атрибутами, фильтрами и тегами через API
Recipients API — контакты, атрибуты, фильтры
Коротко: Recipients API управляет получателями: контактами, атрибутами, фильтрами (таргетами) и тегами. Доступен только в сервисе «Мой диалог».
Кому подходит
- Роль: Разработчик, Интегратор
- Уровень: Опытный
Что это
Recipients API — интерфейс для работы с базой получателей. Позволяет создавать, читать, обновлять и удалять контакты, управлять их атрибутами, а также получать списки фильтров и тегов.
Все эндпоинты используют префикс /api/v1/recipient/.
Эндпоинты
| Метод | Эндпоинт | Для чего |
|---|---|---|
| GET | /recipient/recipients | Список получателей |
| POST | /recipient/recipients | Создать получателя |
| PUT | /recipient/recipients | Обновить получателя |
| DELETE | /recipient/recipients | Удалить получателя |
| GET | /recipient/attributes | Список атрибутов |
| POST | /recipient/attributes | Создать атрибут |
| PUT | /recipient/attributes/{id} | Обновить атрибут |
| DELETE | /recipient/attributes/{id} | Удалить атрибут |
| GET | /recipient/attributes/types | Типы атрибутов |
| GET | /recipient/filters | Список фильтров (таргетов) |
| GET | /recipient/tags | Список тегов |
Полный URL: https://web.mydialogi.ru/api/v1/recipient/....
Контакты
Список получателей
Эндпоинт: GET /recipient/recipients
Query-параметры:
| Параметр | Тип | Обязательно | Что указать |
|---|---|---|---|
| string | Нет | Email получателя | |
| phoneNumber | string | Нет | Номер телефона с кодом страны, без «+» |
| tags | string | Нет | Список тегов через запятую. Логика — OR |
| limit | integer | Нет | Максимум записей. По умолчанию 10 |
| offset | integer | Нет | Смещение. По умолчанию 0 |
Можно также указать внутренние имена атрибутов как параметры. Например, Age=30 — вернёт получателей с атрибутом Age, равным 30.
Пример 1. Список по тегам:
curl --location 'https://web.mydialogi.ru/api/v1/recipient/recipients?limit=5&tags=test,test1' \
--header 'X-API-Key: <ваш-ключ>'
Пример 2. Список по атрибуту:
curl --location 'https://web.mydialogi.ru/api/v1/recipient/recipients?limit=5&Age=30' \
--header 'X-API-Key: <ваш-ключ>'
Формат ответа:
{
"limit": 5,
"offset": 0,
"size": 2,
"results": [
{
"id": 14045930,
"name": "Anna",
"phoneNumber": "48732231269",
"surname": null,
"city": null,
"email": "Anna.test@gmail.com",
"tags": ["test"],
"attributes": {
"Age": 30
}
}
]
}
Создание получателей
Эндпоинт: POST /recipient/recipients
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| type | string | Да | ENRICH, NOT_IMPORT или OVERWRITE |
| tag | string | Нет | Тег для всех импортируемых получателей |
| recipients | array | Да | Массив объектов получателей |
Объект получателя в массиве recipients:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| phoneNumber | string | Да | Номер телефона с кодом страны, без «+» |
| name | string | Нет | Имя |
| surname | string | Нет | Фамилия |
| city | string | Нет | Город |
| string | Нет | ||
| attributes | object | Нет | Дополнительные атрибуты |
| tags | array | Нет | Список тегов |
Пример:
curl --location 'https://web.mydialogi.ru/api/v1/recipient/recipients' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <ваш-ключ>' \
--data-raw '{
"recipients": [
{
"email": "test.email@gmail.com",
"tags": ["test1"]
},
{
"name": "Alice",
"phoneNumber": "48732231255",
"tags": ["test2"]
}
],
"tag": "test-test",
"type": "ENRICH"
}'
Формат ответа:
| Поле | Что означает |
|---|---|
| imported | Сколько записей импортировано |
| overwritten | Сколько записей перезаписано |
| failed | Сколько записей не импортировано из-за ошибки |
| enriched | Сколько записей обогащено |
{
"imported": 1,
"overwritten": 0,
"failed": 1,
"enriched": 0
}
Поле phoneNumber обязательно. Если его нет — запись не создаётся.
Обновление получателя
Эндпоинт: PUT /recipient/recipients
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| phoneNumber | string | Да | Номер телефона получателя |
| name | string | Нет | Имя |
| surname | string | Нет | Фамилия |
| city | string | Нет | Город |
| string | Нет | ||
| attributes | object | Нет | Дополнительные атрибуты |
| tags | array | Нет | Список тегов |
Пример:
curl --location --request PUT 'https://web.mydialogi.ru/api/v1/recipient/recipients' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <ваш-ключ>' \
--data-raw '{
"phoneNumber": "48732231255",
"name": "Alice",
"attributes": {
"Age": 25
},
"tags": ["new tag"]
}'
Формат ответа — обновлённый объект получателя.
Удаление получателя
Эндпоинт: DELETE /recipient/recipients
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| phoneNumber | string | Да* | Номер телефона |
| string | Да* |
*- нужен либо
phoneNumber, либо
Пример:
curl --location --request DELETE 'https://web.mydialogi.ru/api/v1/recipient/recipients' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <ваш-ключ>' \
--data-raw '{
"phoneNumber": "4915735987904"
}'
Если в базе несколько получателей с одинаковым email — API вернёт ошибку. Удаляйте по номеру телефона.
Атрибуты
Атрибуты — дополнительные поля контакта (например, возраст, город, hobby).
Список атрибутов
Эндпоинт: GET /recipient/attributes
curl --location 'https://web.mydialogi.ru/api/v1/recipient/attributes' \
--header 'X-API-Key: <ваш-ключ>'
Формат ответа:
{
"limit": 0,
"offset": 0,
"size": 8,
"results": [
{
"id": 1,
"name": "phoneNumber",
"typeId": 5,
"type": null,
"title": "Phone number",
"nullable": false
},
{
"id": 3,
"name": "name",
"typeId": 7,
"type": null,
"title": "Name",
"nullable": true
}
]
}
Поля атрибута:
| Поле | Что означает |
|---|---|
| id | ID атрибута |
| name | Внутреннее имя (используется в API) |
| title | Отображаемое имя |
| typeId | ID типа атрибута |
| nullable | Может ли быть пустым |
Создание атрибута
Эндпоинт: POST /recipient/attributes
Тело запроса:
| Поле | Тип | Обязательно | Что указать |
|---|---|---|---|
| name | string | Да | Внутреннее имя атрибута |
| title | string | Да | Отображаемое имя |
| typeId | integer | Да | ID типа атрибута |
| nullable | boolean | Нет | Может ли быть пустым |
Обновление атрибута
Эндпоинт: PUT /recipient/attributes/{id}
Тело запроса:
| Поле | Тип | Что указать |
|---|---|---|
| name | string | Новое внутреннее имя |
| title | string | Новое отображаемое имя |
| isToCard | boolean | Показывать ли атрибут в карточке |
Удаление атрибута
Эндпоинт: DELETE /recipient/attributes/{id}
Успешное удаление возвращает 204 No Content.
Типы атрибутов
Эндпоинт: GET /recipient/attributes/types
curl --location 'https://web.mydialogi.ru/api/v1/recipient/attributes/types' \
--header 'X-API-Key: <ваш-ключ>'
Базовые типы (baseType):
| Тип | Что означает |
|---|---|
| BOOLEAN | Логическое значение |
| DATE | Дата |
| NUMBER | Число |
| TEXT | Текст |
Фильтры (таргеты)
Эндпоинт: GET /recipient/filters
Возвращает список фильтров (таргетов) компании.
curl --location 'https://web.mydialogi.ru/api/v1/recipient/filters' \
--header 'X-API-Key: <ваш-ключ>'
Формат ответа:
| Поле | Что означает |
|---|---|
| data | Список фильтров |
| totalCount | Общее количество фильтров |
Поля фильтра:
| Поле | Что означает |
|---|---|
| id | ID фильтра |
| name | Название |
| condition | Условие |
| expressions | Список выражений фильтра |
| recipients | Количество получателей в фильтре |
| launches | Количество запусков |
| createdAt | Дата создания |
| updatedAt | Дата обновления |
| visible | Видимость |
Теги
Эндпоинт: GET /recipient/tags
Возвращает список всех тегов компании.
curl --location 'https://web.mydialogi.ru/api/v1/recipient/tags' \
--header 'X-API-Key: <ваш-ключ>'
Ответ — массив строк с названиями тегов.
Коды ответов
| Код | Что означает |
|---|---|
| 200 OK | Успешно |
| 204 No Content | Успешно, тело пустое (для удаления) |
| 400 | Ошибка параметров |
| 401 | Неверный или отсутствующий API-ключ |
| 403 | Нет прав |
| 404 | Ресурс не найден |
| 500 | Внутренняя ошибка сервера |
Пример ответа с ошибкой:
{
"execId": null,
"key": "errors.recipient_service.phone_not_valid",
"code": "ValidationError",
"message": "Phone number can`t be null",
"args": null
}
Частые проблемы
Причина: в запросе не указан обязательный phoneNumber.
Решение: укажите номер телефона с кодом страны, без «+».
Причина: при создании получателей не указан type.
Решение: укажите один из вариантов: ENRICH, NOT_IMPORT, OVERWRITE.
Причина: в запросе указан атрибут, которого нет в системе.
Решение: проверьте список атрибутов через GET /recipient/attributes.
Причина: удаление по email, а в базе несколько получателей с таким email.
Решение: удаляйте по номеру телефона — он уникален.
Причина: неверный или отсутствующий API-ключ.
Решение: проверьте заголовок X-API-Key.
Причина: у ключа нет scope recipients.
Решение: откройте ключ в разделе API Подключения и добавьте нужный scope.
См. также
Нужна помощь?
- Мой диалог: support@mydialogi.ru