Page tree
Skip to end of metadata
Go to start of metadata

Description

Repeat requests are API requests that contain the same headers and the same data as the original request. A repeated request can be sent if the connection failed at the moment of receiving the data.

The platform will not accept a repeated request if it changes the data in order to avoid duplicate events. This scheme works by default and does not require additional configuration. By default, the platform deduplicates within 1 day from the first request.

How do you know if the request was taken as a duplicate one?

The response to the repeated request will be the same as the response to the original one. However, the repeated request will contain additional headers:

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

The X-Duplicate-Key header holds the hashed request data.

How to send a request so that it is not taken as a duplicate one?

It is recommended to mark each request with a unique identifier. In this way when you change the identifier, you will be able to execute requests, even if they contain the same data.

There are 2 ways to do it:

  • Change the data in the request body or URL, for example, &request_id=12345
  • Add the header that contains the request identifier in any form, for example X-Request-ID: a0fe37f2-b4e0-4e28-a328-4ec7461604fc

API requests that have deduplication

All requests that modify data or activation / launch of entities are checked for repetitions:

Profiles

/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

/v1.1/profiles/add_batch

/v1.1/profiles/add

/v1.1/profiles/update_batch

/v1.1/profiles/update

/v1.1/profiles/import_batch

/v1.1/profiles/import

Integrations

/integrations/lpgenerator/profile_import

/integrations/tilda/profile_import

/integrations/any/profile_import

Suppression lists

/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

Subscriptions

/v1.1/subscriptions/set

/v1.1/subscriptions/suspend_all

/v1.1/subscriptions/unsuspend_all

/v1.1/subscribers/import

/v1.1/subscribers/update

Segments

/v1.1/segments/add

/v1.1/segments/update

/v1.1/segments/refresh_counters

Campaigns

/v1.1/campaigns/deactivate

/v1.1/campaigns/activate

/v1.1/campaigns/clone

Trigger campaign

/v1.1/campaigns/triggers/add

/v1.1/campaigns/triggers/update

/v1.1/campaigns/triggers/start

/v1.1/campaigns/triggers/import_and_start

Boadcast campaign

/v1.1/campaigns/broadcasts/add

/v1.1/campaigns/broadcasts/update

/v1.1/campaigns/broadcasts/start

Regular campaign

/v1.1/campaigns/regulars/add

/v1.1/campaigns/regulars/update

/v1.1/campaigns/regulars/start

Senders

/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

Nodes

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

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

Static segments

/v1.1/profiles/segstatic/add

/v1.1/profiles/segstatic/remove

Promo codes

/v1.1/promocodes/attach

/v1.1/promocodes/activate

/v1.1/promocodes/import

/v1.1/promocodes/detach

/v1.1/promocodes/update

Relations

/v1.1/relations/attach

/v1.1/relations/detach

/v1.1/relations/edit

/v1.1/relations/strengthen

Resources

/v1.1/resources/push_subscribe

/v1.1/resources/refresh_counters

Databases

/v1.1/databases/wipe

/v1.1/databases/refresh_counters

Virtual senders

/v1.1/vsenders/add

/v1.1/vsenders/update

/v1.1/vsenders/clone

Scenarios

/v1.1/workflows/start

/v1.1/workflows/import_and_start


  
  • No labels