Skip to content

Claim Offer

POST /v1/user-journeys/users/{externalId}/offers/{offerId}/claim

Claims a specific offer for a user. The offer must be active and not expired. Once claimed, the offer status changes to claimed and an offer_claimed event is logged to the user’s timeline.

HeaderRequiredValue
X-API-KeyYesYour public key
ParameterTypeRequiredDescription
externalIdstringYesThe user’s external ID in your system
offerIdstringYesThe offer ID (UUID) to claim
Terminal window
curl -X POST https://api.gamifyhost.com/v1/user-journeys/users/user_12345/offers/a1b2c3d4-e5f6-7890-abcd-ef1234567890/claim \
-H "X-API-Key: pk_live_your_public_key" \
-H "Content-Type: application/json"
{
"status": "success",
"data": {
"offer": {
"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": "claimed",
"expiresAt": "2026-03-08T12:00:00Z",
"claimedAt": "2026-03-05T14:30:00Z",
"metadata": {}
}
}
}
StatusMessageDescription
400Offer is no longer activeOffer was already claimed
400Offer has expiredOffer’s expiry time has passed
404Offer not foundInvalid offer ID or doesn’t belong to this user

When an offer is claimed:

  1. The offer status changes from active to claimed
  2. The claimedAt timestamp is set
  3. An offer_claimed event is logged to the user’s event timeline with the offer’s pointsValue