Skip to content

Get User Offers

GET /v1/user-journeys/users/{externalId}/offers

Returns a list of active, non-expired personalized offers for the user. Offers are generated automatically by the AI offer engine based on the user’s lifecycle stage, engagement tier, and churn risk score.

HeaderRequiredValue
X-API-KeyYesYour public key
ParameterTypeRequiredDescription
externalIdstringYesThe user’s external ID in your system
Terminal window
curl https://api.gamifyhost.com/v1/user-journeys/users/user_12345/offers \
-H "X-API-Key: pk_live_your_public_key"
{
"status": "success",
"data": {
"offers": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"externalId": "user_12345",
"offerType": "welcome_free_play",
"gameType": "spin_the_wheel",
"title": "Welcome Free Spin",
"description": "Try a free spin on us — new players get a guaranteed prize!",
"pointsValue": 50,
"status": "active",
"expiresAt": "2026-03-08T12:00:00Z",
"claimedAt": null,
"metadata": {}
}
]
}
}
FieldTypeDescription
idstringUnique offer ID (UUID)
externalIdstringThe user this offer belongs to
offerTypestringOffer category (see table below)
gameTypestringAssociated game type, if any
titlestringHuman-readable offer title
descriptionstringOffer description for the user
pointsValueintegerPoints value of the offer
statusstringactive, claimed, or expired
expiresAtstringISO 8601 expiry timestamp
claimedAtstring?ISO 8601 claim timestamp, null if unclaimed
metadataobjectAdditional offer metadata
TypeTriggerDescription
welcome_free_playNew usersFree spin with guaranteed prize
welcome_bonusNew usersBonus points to get started
win_back_playChurned usersHigh-value free spin to re-engage
return_bonusChurned usersBonus points for returning
retention_playAt-risk users (churn risk >= 60)Guaranteed-win game
vip_playWhale-tier usersHigh-stakes exclusive game
multiplier_bonusPower usersDouble points on next game
daily_free_spinActive/regular usersDaily free spin
  • Each user can have a maximum of 3 active offers at any time.
  • Offers are generated automatically during the analytics cron job.
  • Duplicate offer types are prevented — a user won’t receive two offers of the same type simultaneously.
  • Users inactive for more than 60 days are excluded from offer generation.