Update a profile with revision checks and a stable requestId. Update attributes, delete named keys with removeAttributes, and change tags incrementally with tagChanges.
SDK 0.0.1Updated
Make the request
Update a profile with revision checks and a stable requestId. Update attributes, delete named keys with removeAttributes, and change tags incrementally with tagChanges.
Credential
Server API key only. Call from your trusted backend.
Permission
customers:write
Set the base URL and App ID from SDK setup. These examples use placeholders and do not execute requests. Never put a server key in browser code.
The response tab lists field types, not an example payload. Actual values depend on customer state.
Request parameters
JSON body
lookupobject | objectRequired
Set type to id or externalUserId and supply the corresponding value.
Show child fields
type"id" | "externalUserId"Required
The type value for this operation. Its accepted type and constraints are listed above and below.
valueuuid | stringRequired
The value value for this operation. Its accepted type and constraints are listed above and below.
revisionintegerRequired
Revision returned by profile reads; updates use it to detect concurrent changes.
min: 0 · max: 9007199254740991
requestIduuidRequired
Business request UUID. Reuse for retries of one operation; generate a new value for a new operation.
patchobjectRequired
Submit only changed profile fields. Use attributes for JSON values, removeAttributes to delete keys, and tagChanges for incremental tag updates.
Show child fields
namestringOptional
Display name of the customer or object; not an identity key.
maxLength: 80
emailemail | ""Optional
Customer contact email; not used to merge customer identities.
attributesobjectOptional
Up to 128 keys, 1–128 characters each, and 64 KiB total JSON. Values may contain nested JSON, limited to 20 levels and 10,000 nodes per value. Reserved fields are rejected. Null is a value; delete keys with removeAttributes. Tags live in attributes.tags and change through tagChanges.
removeAttributesarrayOptional
Explicit attribute keys to delete: up to 128, excluding tags. Names start with a letter and contain only letters, digits and underscores.
maxItems: 128
tagChangesobjectOptional
Use add and remove arrays to change tags. patch.attributes cannot overwrite tags directly.
Show child fields
addarrayRequired
The add value for this operation. Its accepted type and constraints are listed above and below.
maxItems: 20
removearrayRequired
The remove value for this operation. Its accepted type and constraints are listed above and below.
maxItems: 20
Response fields
Successful responses include requestId and scope. Use the actual business status or accepted field to determine the result. Optional fields are omitted when unavailable.
HTTP 200 · application/json
requestIduuidRequired
Server-generated HTTP request UUID. Include it when reporting a failed request.
scopeobjectRequired
The App and environment of this response. Headers only verify scope; they cannot switch key scope.
Show child fields
projectIdstringRequired
App ID bound to the credential.
minLength: 1
environmentenumRequired
Separate data scope: sandbox or live.
Show allowed values
"sandbox""live"
customerobjectRequired
Customer profile object.
Show child fields
iduuidRequired
The id value for this operation. Its accepted type and constraints are listed above and below.
externalUserIdstring | nullRequired
Stable user ID from your server-authenticated login system, not an email address. null for a customer reserved by email and not yet claimed.
namestringRequired
Display name of the customer or object; not an identity key.
maxLength: 80
emailemail | ""Required
Customer contact email; not used to merge customer identities.
attributesobjectRequired
Up to 128 keys, 1–128 characters each, and 64 KiB total JSON. Values may contain nested JSON, limited to 20 levels and 10,000 nodes per value. Reserved fields are rejected. Null is a value; delete keys with removeAttributes. Tags live in attributes.tags and change through tagChanges.
revisionintegerRequired
Revision returned by profile reads; updates use it to detect concurrent changes.
min: 0 · max: 9007199254740991
createdAtdate-timeRequired
ISO 8601 UTC time when the record was created.
updatedAtdate-timeRequired
ISO 8601 UTC time of the last record update.
changedbooleanRequired
The changed value for this operation. Its accepted type and constraints are listed above and below.
replayedbooleanRequired
The replayed value for this operation. Its accepted type and constraints are listed above and below.
Handle errors
Common failures
Code
Recovery
UNAUTHENTICATED
Verify the key or refresh the expired customer token once.
FORBIDDEN
Check current key permissions and customer access.
INVALID_REQUEST
Check field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCH
Use the App and environment bound to the credential.
Common failures
UNAUTHENTICATED
Recovery
Verify the key or refresh the expired customer token once.
FORBIDDEN
Recovery
Check current key permissions and customer access.
INVALID_REQUEST
Recovery
Check field types, UUIDs, decimal strings and mutually exclusive fields.
SCOPE_MISMATCH
Recovery
Use the App and environment bound to the credential.