Skip to content

Track Event

POST /v1/user-journeys/events

Records a single user event. The event is added to the user’s timeline, and their profile’s lastSeenAt is updated. If the user doesn’t have a profile yet, a minimal one is created automatically.

HeaderRequiredValue
X-API-KeyYesYour public key
Content-TypeYesapplication/json
FieldTypeRequiredDescription
externalIdstringYesYour unique user identifier
categorystringYesEvent category (see categories)
eventTypestringYesSpecific event type (e.g., page_view, purchase, level_up)
sourceIdstringNoReference ID (e.g., campaign ID, game mechanic ID)
pointsintegerNoPoints associated with this event (default: 0)
referencestringNoIdempotency key to prevent duplicate events
metadataobjectNoArbitrary event data
occurredAtstringNoISO 8601 timestamp (defaults to now)
Terminal window
curl -X POST https://api.gamifyhost.com/v1/user-journeys/events \
-H "X-API-Key: pk_live_your_public_key" \
-H "Content-Type: application/json" \
-d '{
"externalId": "user_12345",
"category": "CUSTOM",
"eventType": "product_viewed",
"metadata": {
"productId": "prod_abc",
"productName": "Premium Plan",
"price": 29.99
}
}'

Status: 200 OK

{
"status": "success",
"data": {
"id": "e1f2a3b4-c5d6-7890-abcd-ef1234567890",
"partnerId": "partner-uuid",
"externalId": "user_12345",
"environment": "LIVE",
"category": "CUSTOM",
"eventType": "product_viewed",
"sourceId": "",
"points": 0,
"reference": "",
"metadata": {
"productId": "prod_abc",
"productName": "Premium Plan",
"price": 29.99
},
"occurredAt": "2025-03-05T14:22:00Z"
}
}
CodeMessage
400Invalid request body (missing externalId, category, or eventType)
500Failed to track event