Published signup, free product/service and discount campaigns with your own claim status when signed in
Each offer allows usesPerMember claims per account (in total, or per calendar month in Asia/Kuala_Lumpur when usesPeriod is calendar_month); the default is one. usesRemaining is the viewer's uses left and ownClaim is their live voucher, otherwise their latest. No health, step or IC data is required. Nothing is published by default.
Response Body
application/json
curl -X GET "https://example.com/v1/rewards/campaigns"{ "availablePoints": null, "campaigns": [ { "pointsCost": 0, "category": "clinic", "canRedeemForWeek": false, "kind": "product", "eligibility": "signup", "signupWithinDays": 30, "usesPerMember": 1, "usesPeriod": "total", "benefit": { "type": "free" }, "exclusions": "", "outletIds": [], "catalogItemId": null, "redemptionOutlets": [], "catalogItemTitle": null, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "merchantTenantId": "6f45c064-68ad-43e0-92dc-fa8655333cff", "eventId": "d6703cc8-9e79-415d-ac03-a4dc7f6ab43c", "title": "string", "summary": "string", "rules": "string", "deliveryKind": "physical_gift", "startsAt": "2019-08-24T14:15:22Z", "endsAt": "2019-08-24T14:15:22Z", "redeemBy": "2019-08-24T14:15:22Z", "timezone": "string", "reservationTtlSeconds": 1, "requiresVerifiedIdentity": true, "imagePath": "string", "claimPolicy": "per_merchant", "claimRestricted": true, "eligibilityRestricted": true, "merchantName": "string", "limitBasis": "account", "availableStock": 0, "availability": "upcoming", "ownClaim": { "pointsSpent": 0, "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "campaignId": "13f8bf6d-dc27-4a04-bffe-6e5b13c19ddf", "deliveryKind": "physical_gift", "status": "reserved", "reservedAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z", "redeemedAt": "2019-08-24T14:15:22Z" }, "usesRemaining": 0 } ]}/v1/reviews/{id}/report POST
Previous Page
Claim a configured free benefit or discount voucher as yourself POST
Reuse claimId on retry. A single-use offer returns the account's one claim, including after expiry; a multi-use offer returns the voucher the account holds now, and issues a new claim (new claimId) only once the previous one is used, expired or cancelled and uses remain (reward_uses_exhausted otherwise). Each claim takes one unit of stock. Expired unfulfilled leases release inventory automatically. Identity-required campaigns fail closed until a verified workflow exists; OCR or icHash never qualifies.