After verified business login, a new identity retains the Guest Customer UUID. An existing identity returns switched=true and selects the existing Customer. Profiles, holdings and Funnel history stay with their original Customer. Start a new Funnel after switching.
API v1Updated
Make the request
After verified business login, a new identity retains the Guest Customer UUID. An existing identity returns switched=true and selects the existing Customer. Profiles, holdings and Funnel history stay with their original Customer. Start a new Funnel after switching.
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
guestTokenstringRequired
The guestToken value for this operation. Its accepted type and constraints are listed above and below.
pattern: ^gg_gc_[A-Za-z0-9_-]{43}$
externalUserIdstringRequired
Stable user ID from your server-authenticated login system, not an email address. null for a customer reserved by email and not yet claimed.
minLength: 1 · maxLength: 255
requestIduuidRequired
Business request UUID. Reuse for retries of one operation; generate a new value for a new operation.
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.
createdAtdate-timeRequired
ISO 8601 UTC time when the record was created.
switchedbooleanRequired
The switched 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.