Journey Docs
Members APIDiscover

Get Inspiring Stays

Get grouped property collections with video backgrounds

GET/members/me/features/discover/galleries/inspiring-stays

Overview

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

limitquerynumber

Maximum 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.

itemsarrayrequired

Array of themed property groups with video backgrounds

totalnumberrequired

Total number of themed groups available

Response

200 Response - Inspiring Collections
{
  "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>
  );
};

On this page