Описание

Повторный запрос — это запрос к API, который содержит тот же заголовок и те же данные, что и первичный запрос. Повторный запрос может отправляться в том случае, если в момент получения данных произошёл сбой соединения. Платформа не будет воспринимать повторный запрос, если он приводит к изменению данных, чтобы исключить дублирование событий. Эта схема работает по умолчанию и не требует дополнительной настройки. По умолчанию платформа осуществляет дедупликацию в течение 1 дня с момента первого запроса.

Как понять, что запрос был воспринят как дублирующий?

Ответ на повторный запрос будет такой же, как и на первичный запрос. Однако повторный запрос будет содержать в себе дополнительные заголовки: 

X-Duplicate-Key: NeOScRqBgsqj67CR5dYcqvcmPZA=
X-Duplicate-Request: true

Заголовок X-Duplicate-Key хранит в себе хешированные данные запроса.

Как послать запрос, чтобы он не воспринимался как дублирующий?

Рекомендуется маркировать каждый запрос уникальным идентификатором, тогда, изменяя этот идентификатор, вы сможете выполнять запросы, даже если они содержат одинаковые данные.

Сделать это можно одним из способов:

  • Измените данные в теле запроса или URL, например &request_id=12345
  • Добавьте заголовок с идентификатором запроса, в произвольной форме, например X-Request-ID: a0fe37f2-b4e0-4e28-a328-4ec7461604fc

API запросы, у которых работает дедупликация

На повторы проверяются все запросы, которые выполняют модификацию данных или активацию/запуск сущностей:

Профили

/v1.0/lists/:list_id/lead/unconfirm

/v1.0/lists/:list_id/lead/unsubscribe

/v1.0/lists/:list_id/lead/tags_add

/v1.0/lists/:list_id/lead/tags_remove

/v1.0/lists/:list_id/lead/subscribe

/v1.0/lists/:list_id/lead/complain

/v1.0/lists/:list_id/suspend_all

/v1.0/lists/:list_id/unsuspend_all

/v1.0/lists/:list_id/import

Интеграции

/integrations/lpgenerator/profile_import

/integrations/tilda/profile_import

/integrations/any/profile_import

Стоп-список

/v1.1/suppresses/domain_add

/v1.1/suppresses/domains_add

/v1.1/suppresses/email_add

/v1.1/suppresses/emails_add

/v1.1/suppresses/add

/v1.1/suppresses/update

Подписки

/v1.1/subscriptions/set

/v1.1/subscriptions/suspend_all

/v1.1/subscriptions/unsuspend_all

/v1.1/subscribers/import

/v1.1/subscribers/update

Сегменты

/v1.1/segments/add

/v1.1/segments/update

/v1.1/segments/refresh_counters

Кампании

/v1.1/campaigns/deactivate

/v1.1/campaigns/activate

/v1.1/campaigns/clone

Триггерные кампании

/v1.1/campaigns/triggers/add

/v1.1/campaigns/triggers/update

/v1.1/campaigns/triggers/start

/v1.1/campaigns/triggers/import_and_start

Броадкасты

/v1.1/campaigns/broadcasts/add

/v1.1/campaigns/broadcasts/update

/v1.1/campaigns/broadcasts/start

Регулярные кампании

/v1.1/campaigns/regulars/add

/v1.1/campaigns/regulars/update

/v1.1/campaigns/regulars/start

Сендеры

/v1.1/admin/senders/queue/hold

/v1.1/admin/senders/queue/unhold

/v1.1/admin/senders/queue/purge

/v1.1/admin/senders/update

/v1.1/admin/senders/add_to_account

/v1.1/admin/senders/add

/v1.1/admin/vsenders/add

/v1.1/admin/vsenders/update

/v1.1/admin/vsenders/clone

Ноды

/v1.1/admin/nodes/mta/start

/v1.1/admin/nodes/mta/stop

Статический сегмент

/v1.1/profiles/segstatic/add

/v1.1/profiles/segstatic/remove

Профили

/v1.1/profiles/add

/v1.1/profiles/update

/v1.1/profiles/import

Промокоды

/v1.1/promocodes/attach

/v1.1/promocodes/activate

/v1.1/promocodes/import

/v1.1/promocodes/detach

/v1.1/promocodes/update

Связи

/v1.1/relations/attach

/v1.1/relations/detach

/v1.1/relations/edit

/v1.1/relations/strengthen

Ресурсы

/v1.1/resources/push_subscribe

/v1.1/resources/refresh_counters

Базы данных

/v1.1/databases/wipe

/v1.1/databases/refresh_counters

Вирутальные сендеры

/v1.1/vsenders/add

/v1.1/vsenders/update

/v1.1/vsenders/clone

Сценарии

/v1.1/workflows/start

/v1.1/workflows/import_and_start

Регистрация событий пушей

/v1.1/pushes/post_events

/v1.1/pushes/crypto_post_events


  
  • No labels