Members APIDiscover
Get Inspiring Stays
Get grouped property collections with video backgrounds
GET
/members/me/features/discover/galleries/inspiring-staysOverview
Returns grouped property collections with video backgrounds (e.g., "Beach Escapes", "Mountain Retreats"). These are thematically organized properties designed to inspire travel and showcase destinations by category.
Authentication
Requires a valid Clerk JWT token in the Authorization header.
Query Parameters
limitquerynumberMaximum number of groups to return
Request
curl -X GET "http://localhost:3000/v1/members/me/features/discover/galleries/inspiring-stays" \
-H "Authorization: Bearer YOUR_CLERK_JWT"Response
Same structure as other gallery endpoints but with thematic video content.
itemsarrayrequiredArray of themed property groups with video backgrounds
totalnumberrequiredTotal number of themed groups available
Response
{
"items": [
{
"id": 101,
"documentId": "gallery_beach_escapes",
"title": "Beach Escapes",
"context": "Stunning coastal properties for the ultimate beach getaway",
"priority": 1,
"isActive": true,
"createdAt": "2024-01-15T10:00:00Z",
"updatedAt": "2024-04-20T12:00:00Z",
"groupMedia": {
"url": "https://cdn.example.com/galleries/beach-escapes-video.mp4",
"alt": "Beautiful beach destinations compilation video"
},
"properties": [
{
"property": {
"id": 301,
"documentId": "prop_bali_beach_resort",
"name": "Bali Beach Paradise Resort",
"brandName": "Journey Shores",
"type": "Beach Resort",
"baseRoomCategory": "Ocean View Suite",
"nightlyCost": 65000,
"guestRating": 4.8,
"maxGuests": 4,
"amenities": ["Private Beach", "Infinity Pool", "Spa", "Water Sports"],
"address": {
"city": "Seminyak",
"state": "Bali",
"country": "Indonesia",
"latitude": -8.6905,
"longitude": 115.1656
},
"heroImage": {
"url": "https://cdn.example.com/properties/bali-resort-hero.jpg",
"alt": "Beachfront resort with infinity pool"
},
"gallery": [
{
"url": "https://cdn.example.com/properties/bali-resort-1.jpg",
"alt": "Ocean view suite terrace"
}
]
},
"media": {
"url": "https://cdn.example.com/galleries/bali-beach-feature.jpg",
"alt": "Bali beach resort featured image"
}
}
]
},
{
"id": 102,
"documentId": "gallery_mountain_retreats",
"title": "Mountain Retreats",
"context": "Serene alpine properties for nature lovers",
"priority": 2,
"isActive": true,
"createdAt": "2024-02-01T10:00:00Z",
"updatedAt": "2024-04-18T14:30:00Z",
"groupMedia": {
"url": "https://cdn.example.com/galleries/mountain-retreats-video.mp4",
"alt": "Mountain lodge destinations video"
},
"properties": [
{
"property": {
"id": 302,
"documentId": "prop_swiss_alpine_lodge",
"name": "Swiss Alpine Lodge",
"brandName": "Journey Mountains",
"type": "Mountain Lodge",
"baseRoomCategory": "Alpine Suite",
"nightlyCost": 55000,
"guestRating": 4.7,
"maxGuests": 6,
"amenities": ["Ski-in/Ski-out", "Alpine Spa", "Fine Dining", "Mountain Views"],
"address": {
"city": "Zermatt",
"state": "Valais",
"country": "Switzerland",
"latitude": 46.0207,
"longitude": 7.7491
},
"heroImage": {
"url": "https://cdn.example.com/properties/swiss-lodge-hero.jpg",
"alt": "Alpine lodge with mountain backdrop"
},
"gallery": [
{
"url": "https://cdn.example.com/properties/swiss-lodge-1.jpg",
"alt": "Lodge interior with fireplace"
}
]
},
"media": {
"url": "https://cdn.example.com/galleries/swiss-alpine-feature.jpg",
"alt": "Swiss lodge featured in mountain setting"
}
}
]
},
{
"id": 103,
"documentId": "gallery_city_discoveries",
"title": "Urban Discoveries",
"context": "Vibrant city hotels in cultural capitals",
"priority": 3,
"isActive": true,
"createdAt": "2024-03-01T10:00:00Z",
"updatedAt": "2024-04-15T16:45:00Z",
"groupMedia": {
"url": "https://cdn.example.com/galleries/city-discoveries-video.mp4",
"alt": "Urban hotel experiences video"
},
"properties": [
{
"property": {
"id": 303,
"documentId": "prop_paris_boutique_hotel",
"name": "Paris Boutique Elegance",
"brandName": "Journey Urban",
"type": "Boutique Hotel",
"baseRoomCategory": "Parisian Suite",
"nightlyCost": 42000,
"guestRating": 4.6,
"maxGuests": 3,
"amenities": ["Historic Building", "Art Gallery", "Wine Bar", "Concierge"],
"address": {
"city": "Paris",
"state": "Γle-de-France",
"country": "France",
"latitude": 48.8566,
"longitude": 2.3522
},
"heroImage": {
"url": "https://cdn.example.com/properties/paris-hotel-hero.jpg",
"alt": "Elegant Parisian hotel facade"
},
"gallery": [
{
"url": "https://cdn.example.com/properties/paris-hotel-1.jpg",
"alt": "Sophisticated suite with city view"
}
]
},
"media": {
"url": "https://cdn.example.com/galleries/paris-boutique-feature.jpg",
"alt": "Paris hotel in historic district"
}
}
]
}
],
"total": 8
}Theme Categories
Beach Escapes
- Focus: Coastal and island properties
- Experience: Beach access, water activities, tropical luxury
- Examples: Resorts, beach villas, seaside hotels
Mountain Retreats
- Focus: Alpine and mountain properties
- Experience: Skiing, hiking, wellness, scenic views
- Examples: Ski lodges, mountain resorts, alpine spas
Urban Discoveries
- Focus: City center and cultural district properties
- Experience: Museums, dining, nightlife, business travel
- Examples: Boutique hotels, urban resorts, business hotels
Desert Oases
- Focus: Desert and arid region properties
- Experience: Unique landscapes, stargazing, spa treatments
- Examples: Desert resorts, glamping, oasis hotels
Forest Hideaways
- Focus: Forest and wilderness properties
- Experience: Nature immersion, hiking, wildlife
- Examples: Eco-lodges, tree houses, forest cabins
Video Content
Background Videos
- Purpose: Create immersive visual experience
- Content: Destination highlights and property showcases
- Format: Auto-playing background videos with fallback images
- Quality: High-resolution optimized for web delivery
Responsive Design
const ThemeGalleryCard = ({ gallery }) => {
const [videoLoaded, setVideoLoaded] = useState(false);
return (
<div className="theme-gallery-card">
<div className="gallery-header">
{gallery.groupMedia?.url.includes('.mp4') ? (
<video
autoPlay
loop
muted
playsInline
onLoadedData={() => setVideoLoaded(true)}
className={`gallery-video ${videoLoaded ? 'loaded' : ''}`}
>
<source src={gallery.groupMedia.url} type="video/mp4" />
</video>
) : (
<img
src={gallery.groupMedia?.url}
alt={gallery.groupMedia?.alt}
className="gallery-image"
/>
)}
<div className="gallery-overlay">
<h2>{gallery.title}</h2>
<p>{gallery.context}</p>
</div>
</div>
<div className="properties-grid">
{gallery.properties.map(propertyItem => (
<PropertyCard key={propertyItem.property.id} property={propertyItem} />
))}
</div>
</div>
);
};Related Endpoints
- Get Featured Content - Main discover screen content
- Get Signature Stays - Premium curated properties
- Get New to Journey - Recently added properties
- Get Earn More Gallery - Properties with bonus campaigns