Create a participant, or update if external_id already exists (upsert).
external_id. Tags, attributes, and initial status can be set in the same call. Status defaults to ACTIVE. Counters and tiers cannot be set at creation — they are managed through their dedicated endpoints or automatically by rules during event processing.
Pass program_id to enroll the participant in a program at creation time. Event ingestion automatically enrolls existing participants in the target program, so pre-enrolling here is optional. If your program’s on_unknown_participant is set to CREATE, new participants are also created automatically on their first event.
If a participant with the same external_id already exists, the call behaves as an upsert and updates the existing record rather than returning an error.
API key passed in the X-API-Key header.
Participant details
Your application's identifier for this user. Upserts if it already exists
1 - 255"user_abc123"
Key-value metadata. Each key is accessible in rules as participant.attributes.{key}
{ "plan": "premium", "region": "us-east" }
Program to enroll this participant in on creation
"550e8400-e29b-41d4-a716-446655440000"
Initial lifecycle state. Defaults to ACTIVE
ACTIVE, SUSPENDED, CLOSED "ACTIVE"
Labels for segmentation, accessible in rules as participant.tags
["vip"]
Participant updated (already existed)
Key-value metadata. Each key is accessible in rules as participant.attributes.{key}
{ "plan": "premium", "region": "us-east" }
Current balances per asset, split by bucket
Numeric accumulators, returned as strings for precision
{
"points_earned": "1500",
"purchases": "42"
}
When the participant was created
"2024-01-15T10:30:00Z"
Your application's identifier for this user
"user_123"
Participant ID
"550e8400-e29b-41d4-a716-446655440000"
Programs this participant is enrolled in
["550e8400-e29b-41d4-a716-446655440000"]
Lifecycle state
"ACTIVE"
Labels for segmentation, accessible in rules as participant.tags
["vip"]
Current tier level per tier type
{ "loyalty": { "level": "gold", "rank": 2 } }
When the participant was last modified
"2024-01-15T10:30:00Z"