Skip to main content
POST
/
cdp
/
v1
/
users
Write user profile data
curl --request POST \
  --url https://api.zeotap.com/cdp/v1/users \
  --header 'Content-Type: application/json' \
  --header 'apikey: <api-key>' \
  --header 'scopes: <scopes>' \
  --data '
{
  "orgId": 1234,
  "region": "EU",
  "ucid": "d7a6bc75-2c87-4650-91dc-c212771866c9",
  "ids": {
    "email_sha256_lowercase": "0a0601cfc9d014580fcf0b0"
  },
  "upsert": {
    "profile": {
      "user_gender": "M"
    },
    "mkt_preferences": {
      "telemarketing": "market",
      "sms_optin": "yes"
    },
    "consent": {
      "gdpr_advertising": "yes"
    }
  }
}
'
[
  {
    "updated_ts": 123,
    "created_ts": 123,
    "profile": {},
    "ids": {
      "email": [
        {
          "email_sha256_lowercase": "af2bdbe...",
          "_ts": "1639918545133"
        }
      ],
      "icoms_account_uid": [
        {
          "icoms_account_uid": "41063074106",
          "_ts": "1639918545133"
        }
      ],
      "linkedUcid": [
        "a1a62720-8788-8788-8788-fb81f77515b1"
      ]
    },
    "mkt_preferences": {},
    "consent": {},
    "region": "UK",
    "ucid": "00000000-9295-9295-9295-8db6a1c8e06a"
  }
]

Authorizations

apikey
string
header
required

Long-lasting client key

Headers

scopes
string
required

Comma-separated list of granted scopes. Allowed values: profile.read, profile.write, profile.delete

Example:

"profile.read,profile.write,profile.delete"

orgId
integer

Zeotap organisation ID. Required when using Okta JWT authentication.

Example:

1577

Body

application/json
orgId
integer
required

Organisation identifier

Example:

1234

region
string
required

Region code to scope the write

Example:

"EU"

ids
object
required

Map of identifier type to a single identifier value (e.g. email_sha256_lowercase, AdId).

Example:
{
"email_sha256_lowercase": "0a0601cfc9d014580fcf0b0"
}
upsert
object
required

Profile data to upsert

ucid
string<uuid>

Unified Customer ID (optional; used to target a specific profile)

Example:

"d7a6bc75-2c87-4650-91dc-c212771866c9"

Response

Profile written successfully

updated_ts
integer<int64>

Last-updated epoch timestamp (ms)

created_ts
integer<int64>

Created epoch timestamp (ms)

profile
object

Nested profile attributes organised by category (e.g. Audience, demographics). Structure varies by org config.

ids
object

Map of identity namespaces to arrays of identity records. Each namespace (e.g. email, cellphone, ga_clientid) contains an array of identity objects with a timestamp.

Example:
{
"email": [
{
"email_sha256_lowercase": "af2bdbe...",
"_ts": "1639918545133"
}
],
"icoms_account_uid": [
{
"icoms_account_uid": "41063074106",
"_ts": "1639918545133"
}
],
"linkedUcid": ["a1a62720-8788-8788-8788-fb81f77515b1"]
}
mkt_preferences
object

Marketing opt-in / opt-out preferences

Consent records

region
string

Region the profile belongs to

Example:

"UK"

ucid
string<uuid>

Unified Customer ID

Example:

"00000000-9295-9295-9295-8db6a1c8e06a"

Last modified on March 30, 2026