Request
Body
Provide either an email or userId value or both to identify the contact.
If both are provided, the system will look for a contact with either a
matching email or userId value. If a contact is found for one of the
values (e.g. email), the other value (e.g. userId) will be updated. If a
contact is not found, a new contact will be created using both email and
userId values.
The contact’s email address.
Required if userId is not provided.
The contact’s unique user ID. This must already have been added to your
contact in Loops.
Required if email is not provided.
An object containing event property data for the event. Values can be of type
string, number, boolean or date. Read more
Manage the contact’s mailing list subscriptions.
Include key-value pairs of mailing list IDs and a boolean denoting if the contact
should be added (true) or removed (false) from the list. Read
more{
"mailingLists": {
"cm06f5v0e45nf0ml5754o9cix": true,
"cm16k73gq014h0mmj5b6jdi9r": false
}
}
You can also include default and custom contact properties in your request body, which will update the contact in Loops. These should be added as top-level attributes in the request.
Contact properties can be of type string, number, boolean or date (see allowed date formats).
{
"email": "hello@gmail.com",
"eventName": "signup",
"firstName": "Bob", /* Contact property */
"plan": "pro" /* Custom contact property */
}
There are a few reserved names that you cannot use for custom properties.
To empty or reset the value of a contact property, send a null value.
Optionally send an idempotency key to avoid duplicate requests.
The value should be a string of up to 100 characters and should be unique for each request. We recommend using V4 UUIDs or some other method with enough guaranteed entropy to avoid collisions during a 24 hour window.
The endpoint will return a 409 Conflict response if the idempotency key has been used in the previous 24 hours.
Response
Success
Error
If you send an idempotency key which has already been used in the previous 24 hours, a 409 Conflict response will be returned.
All other errors will be 400 Bad Request.
An error message describing the problem with the request.