Get Offer Details
Get detailed information about a specific offer with eligibility status
/members/me/loyalty/offers/{offerId}Overview
Returns comprehensive details about a specific offer including eligibility status, restrictions, and redemption instructions. Use this endpoint to show full offer details before allowing the member to claim it.
Authentication
Requires a valid Clerk JWT token in the Authorization header.
Path Parameters
offerIdpathstringrequiredOffer document ID
Query Parameters
propertyIdquerystringProperty document ID for property context (affects eligibility)
reservationIdquerystringReservation external ID for stay context (affects eligibility)
checkInDatequerystringCheck-in date for time-sensitive offers (ISO 8601 date)
Request
curl -X GET "http://localhost:3000/v1/members/me/loyalty/offers/offer_spa_discount?propertyId=prop_luxury_resort" \
-H "Authorization: Bearer YOUR_CLERK_JWT"Response
offerIdstringrequiredOffer document ID
namestringrequiredDisplay name of the offer
shortDescriptionstringBrief description for card display
descriptionstringFull description of the offer
pointsRequirednumberrequiredPoints cost to claim this offer
retailValuenumberRetail value of the offer in dollars
discountAmountnumberDollar amount of discount if applicable
discountTypestringType of discount: "percentage", "fixed", etc.
redemptionTypestringrequiredHow offer is redeemed: "direct", "externalCode", "propertySpecific", etc.
categoryobjectOffer category information
properties
idnumberrequiredCategory ID
namestringrequiredCategory name
heroImageUrlstringURL for hero image
cardImageUrlstringURL for card thumbnail image
howToRedeemstringInstructions for redeeming the offer
termsAndConditionsstringFull terms and conditions text
rulesstringAdditional rules and restrictions
isEligiblebooleanrequiredWhether the member can claim this offer
eligibilityReasonstringReason if not eligible (e.g., "Insufficient points", "Tier too low")
restrictionsarrayActive restrictions preventing claim
array items
typestringrequiredRestriction type: "requires_stay", "check_in_window"
messagestringrequiredHuman-readable restriction message
detailsobjectAdditional restriction details
requiresStaybooleanrequiredWhether offer requires an active reservation
disableBeforeCheckInHoursnumberHours before check-in when offer becomes unavailable
validUntilstringISO 8601 timestamp when offer expires
isCustomOfferbooleanWhether this is a custom/personalized offer
isGlobalbooleanWhether this offer is available globally
propertyDocumentIdstringPrimary property document ID for property-specific offers
Response
{
"offerId": "offer_spa_discount",
"name": "Spa Treatment Discount",
"shortDescription": "25% off all spa treatments",
"description": "Indulge in ultimate relaxation with a 25% discount on any spa treatment at our award-winning wellness center. Choose from massages, facials, body treatments, and wellness packages.",
"pointsRequired": 1500,
"retailValue": 200,
"discountAmount": 50,
"discountType": "percentage",
"redemptionType": "propertySpecific",
"category": {
"id": 3,
"name": "Spa & Wellness"
},
"heroImageUrl": "https://cdn.journey.com/offers/spa-hero.jpg",
"cardImageUrl": "https://cdn.journey.com/offers/spa-card.jpg",
"howToRedeem": "Present your verification code at the spa reception when booking or arriving for your treatment.",
"termsAndConditions": "Valid for single use per stay. Cannot be combined with other offers. Subject to spa availability. Advance booking recommended.",
"rules": "Minimum treatment value of $100 required. Valid Monday through Thursday only. Not valid on holidays.",
"isEligible": true,
"eligibilityReason": null,
"restrictions": [],
"requiresStay": true,
"disableBeforeCheckInHours": 24,
"validUntil": "2024-12-31T23:59:59Z",
"isCustomOffer": false,
"isGlobal": false,
"propertyDocumentId": "prop_luxury_resort"
}Eligibility Factors
Points Balance
- Member must have sufficient points to purchase the offer
- Check current balance using the wallet balance endpoint
Tier Level
- Some offers require minimum tier levels
- Member's current tier is checked against offer requirements
Property Context
- Property-specific offers require being at or having a reservation at that property
- Pass
propertyIdandreservationIdfor accurate eligibility
Time Restrictions
- Some offers have check-in windows (e.g., must claim within 24 hours of arrival)
disableBeforeCheckInHoursindicates when offer becomes unavailable
Stay Requirements
requiresStay: truemeans member must have an active or upcoming reservation- Pass
reservationIdto satisfy this requirement
Related Endpoints
- Claim Offer - Purchase this offer with points
- Get Available Offers - Browse all available offers
- Get Wallet Balance - Check points balance