Journey Docs
Members APIReservations

Reservation Preview

Authenticated reservation preview with claim status

GET/members/me/reservations/:reservationId/preview

Overview

Retrieve a reservation preview for the authenticated member, including full claimDetails — who has claimed it, and whether the current member owns the claim. Powers the authenticated leg of the points claim flow.

For unauthenticated landing pages, use GET /public/reservations/:externalId/preview instead.

Authentication

Requires a valid Clerk JWT token.

Path Parameters

reservationIdpathstringrequired

Reservation external ID (from a claim email link or lookup endpoint)

Response

externalIdstringrequired

Reservation external ID

totalAwardedPointsnumberrequired

Points that would be awarded for claiming this reservation

guestobjectrequired

{ firstName: string }

propertyobjectrequired

{ name, allianceMember, media: [{ url, thumbnailUrl }], address: { city, state, latitude, longitude }, brand: { name, logo } }

claimDetailsobjectrequired
properties
isClaimedboolean

Whether this reservation has been claimed by any member

isOwnedByCurrentMemberboolean

Whether the authenticated member owns the claim

otherMemberobject | null

Present when claimed by a different member — contains masked contact info

properties
maskedEmailstring | null

e.g. j***@example.com

maskedPhonestring | null

e.g. +1212***0100

Request

curl "https://api.journey.com/members/me/reservations/RES_01J5XYZ/preview" \
  -H "Authorization: Bearer YOUR_CLERK_JWT"

Response

{
  "externalId": "RES_01J5XYZ",
  "totalAwardedPoints": 2500,
  "guest": { "firstName": "Sarah" },
  "property": {
    "name": "The Surf Club",
    "allianceMember": true,
    "media": [{ "url": "https://cdn.../hero.jpg", "thumbnailUrl": "https://cdn.../thumb.jpg" }],
    "address": { "city": "Surfside", "state": "FL", "latitude": 25.87, "longitude": -80.12 },
    "brand": { "name": "Four Seasons", "logo": {} }
  },
  "claimDetails": {
    "isClaimed": false,
    "isOwnedByCurrentMember": false,
    "otherMember": null
  }
}

Claim Flow

  1. GET /members/me/reservations/:id/preview — check claim status
  2. If unclaimed: POST /members/me/reservations/lookup-claim — claim it
  3. If claimed by someone else: POST /members/me/reservations/:id/claim/verify — verify identity to merge accounts

Bruno

bruno/Members (Surface)/Reservations/Preview.bru

On this page