User Properties

You can use the User Properties API to update a user's properties without sending an event.

The updated properties are not applied retroactively and will only apply to events that occur after the update.


Authentication is done through the SDK key. The SDK key must be sent in the HTTP header.

Depending on where you are calling the API from, set one of the Browser, App, or Server SDK keys in the header.




Request Body

userIdstringXUser ID
(Required if deviceId is missing)
deviceIdstringXDevice ID
(Required if userId is missing)
operationsOperations ObjectOAn object representing the information for updating user properties.

Operations Object

$setobjectXSets the property value.
An object with the key-value pairs of properties to set.
$setOnceobjectXSets the value only if it has not been set before.
An object with the key-value pairs of properties to set once.
$unsetobjectXRemoves the property.
An object with the keys of properties to unset.


curl -i -X POST \
'' \
-H 'Content-Type: application/json' \
-d '{
  "userId": "19285035", 
  "deviceId": "ae2182e0",
  "operations": {
    "$set": {
      "age": 42,
      "grade": "GOLD"
    "$setOnce": {
      "sign_up_date": "2020-01-01"
    "$unset": {
      "membership_type": "-"


200 OK

In case of a successful request, it returns a 200 response status.

400 Bad Request

Returns a 400 status if the request information is invalid.

401 Unauthorized

Returns a 401 status if the X-HACKLE-API-KEY header is missing or the SDK key is invalid.