Get Property Rates
Search available property rates with standard public pricing
/public/reservations/ratesOverview
Returns available property rates with standard public pricing. This endpoint searches for hotel rates based on check-in/check-out dates, guest count, and optionally filters by specific room IDs.
Authentication
No authentication required. This is a public endpoint.
Request Body
strapiPropertyIdbodystringrequiredStrapi property Document ID
checkInbodystringrequiredCheck-in date (ISO format: YYYY-MM-DD). Cannot be in the past.
checkOutbodystringrequiredCheck-out date (ISO format: YYYY-MM-DD). Must be at least 1 day after check-in.
adultsbodynumberrequiredNumber of adults (minimum: 1, maximum: 20)
childrenbodynumberNumber of children (minimum: 0, maximum: 10)
strapiRoomIdsbodystring[]Array of Strapi room IDs (documentId or id) to filter rates. If provided, only rates for these rooms will be returned.
Request
curl -X POST "https://api.journey.com/v1/public/reservations/rates" \
-H "Content-Type: application/json" \
-d '{
"strapiPropertyId": "fkihstwpqlezcm1ogi31yu8f",
"checkIn": "2026-06-01",
"checkOut": "2026-06-03",
"adults": 2,
"children": 0,
"strapiRoomIds": ["k87cr02ph4s17msgcndg3yxz", "vqthp53n6303puuzhlgezob8"]
}'Response
Returns property rates for the specified dates and criteria.
ratesarrayrequiredArray of available room rates
array items
roomIdstringrequiredRoom identifier
roomNamestringrequiredDisplay name for the room type
roomDescriptionstringDetailed room description
maxOccupancynumberrequiredMaximum number of guests allowed
dailyRatesarrayrequiredArray of daily rate information
daily rate items
datestringrequiredDate for this rate (YYYY-MM-DD)
ratenumberrequiredNightly rate in cents (USD)
availablebooleanrequiredWhether this date is available for booking
restrictionsobjectStay restrictions for this date
restrictions object
minNightsnumberMinimum number of nights required
maxNightsnumberMaximum number of nights allowed
closedForArrivalbooleanWhether arrivals are closed for this date
closedForDeparturebooleanWhether departures are closed for this date
totalCostnumberrequiredTotal cost for the entire stay in cents (USD)
averageNightlyRatenumberrequiredAverage nightly rate in cents (USD)
amenitiesstring[]List of room amenities
imagesarrayRoom images
image items
urlstringrequiredImage URL
thumbnailUrlstringThumbnail image URL
altstringAlt text for the image
typestringImage type (hero, gallery, floor_plan)
propertyInfoobjectBasic property information
property info
idstringrequiredProperty document ID
namestringrequiredProperty name
addressobjectProperty address information
address
streetstringStreet address
citystringCity name
statestringState or province
countrystringCountry name
postalCodestringPostal/ZIP code
searchCriteriaobjectrequiredEcho of the search parameters
search criteria
checkInstringrequiredCheck-in date used for search
checkOutstringrequiredCheck-out date used for search
adultsnumberrequiredNumber of adults
childrennumberNumber of children
nightsnumberrequiredNumber of nights calculated
Response
{
"rates": [
{
"roomId": "k87cr02ph4s17msgcndg3yxz",
"roomName": "Ocean View Suite",
"roomDescription": "Spacious suite with panoramic ocean views, private balcony, and premium amenities",
"maxOccupancy": 4,
"dailyRates": [
{
"date": "2026-06-01",
"rate": 45000,
"available": true,
"restrictions": {
"minNights": 2,
"maxNights": 14,
"closedForArrival": false,
"closedForDeparture": false
}
},
{
"date": "2026-06-02",
"rate": 45000,
"available": true,
"restrictions": {
"minNights": 2,
"maxNights": 14,
"closedForArrival": false,
"closedForDeparture": false
}
}
],
"totalCost": 90000,
"averageNightlyRate": 45000,
"amenities": [
"Ocean View",
"Private Balcony",
"King Bed",
"Mini Fridge",
"Coffee Maker",
"High-Speed WiFi"
],
"images": [
{
"url": "https://cdn.journey.com/rooms/ocean-suite-hero.jpg",
"thumbnailUrl": "https://cdn.journey.com/rooms/ocean-suite-hero-thumb.jpg",
"alt": "Ocean View Suite with balcony",
"type": "hero"
},
{
"url": "https://cdn.journey.com/rooms/ocean-suite-bathroom.jpg",
"thumbnailUrl": "https://cdn.journey.com/rooms/ocean-suite-bathroom-thumb.jpg",
"alt": "Suite bathroom with marble finishes",
"type": "gallery"
}
]
},
{
"roomId": "vqthp53n6303puuzhlgezob8",
"roomName": "Standard King Room",
"roomDescription": "Comfortable king room with modern amenities and city views",
"maxOccupancy": 2,
"dailyRates": [
{
"date": "2026-06-01",
"rate": 25000,
"available": true,
"restrictions": {
"minNights": 1,
"maxNights": 14,
"closedForArrival": false,
"closedForDeparture": false
}
},
{
"date": "2026-06-02",
"rate": 25000,
"available": true,
"restrictions": {
"minNights": 1,
"maxNights": 14,
"closedForArrival": false,
"closedForDeparture": false
}
}
],
"totalCost": 50000,
"averageNightlyRate": 25000,
"amenities": [
"City View",
"King Bed",
"Work Desk",
"High-Speed WiFi",
"Coffee Maker"
],
"images": [
{
"url": "https://cdn.journey.com/rooms/standard-king-hero.jpg",
"thumbnailUrl": "https://cdn.journey.com/rooms/standard-king-hero-thumb.jpg",
"alt": "Standard King Room with city view",
"type": "hero"
}
]
}
],
"propertyInfo": {
"id": "fkihstwpqlezcm1ogi31yu8f",
"name": "Journey Beach Resort",
"address": {
"street": "123 Ocean Drive",
"city": "Miami Beach",
"state": "Florida",
"country": "United States",
"postalCode": "33139"
}
},
"searchCriteria": {
"checkIn": "2026-06-01",
"checkOut": "2026-06-03",
"adults": 2,
"children": 0,
"nights": 2
}
}Use Cases
Rate Comparison
const compareRates = async (propertyId, dates, guests) => {
const rates = await getPropertyRates({
strapiPropertyId: propertyId,
checkIn: dates.checkIn,
checkOut: dates.checkOut,
adults: guests.adults,
children: guests.children
});
// Sort by total cost
const sortedRates = rates.rates.sort((a, b) => a.totalCost - b.totalCost);
return sortedRates.map(rate => ({
roomName: rate.roomName,
totalCost: rate.totalCost / 100, // Convert to dollars
averageNightly: rate.averageNightlyRate / 100,
maxOccupancy: rate.maxOccupancy,
savings: sortedRates[0].totalCost === rate.totalCost ? 0 :
(rate.totalCost - sortedRates[0].totalCost) / 100
}));
};Availability Checking
const checkAvailability = (rates) => {
return rates.rates.map(rate => {
const unavailableDates = rate.dailyRates
.filter(day => !day.available)
.map(day => day.date);
const hasRestrictedDates = rate.dailyRates
.some(day => day.restrictions?.closedForArrival || day.restrictions?.closedForDeparture);
return {
roomName: rate.roomName,
isFullyAvailable: unavailableDates.length === 0,
unavailableDates,
hasRestrictions: hasRestrictedDates,
totalCost: rate.totalCost
};
}).filter(rate => rate.isFullyAvailable);
};Rate Calendar View
const formatRateCalendar = (rates) => {
const calendar = {};
rates.rates.forEach(rate => {
rate.dailyRates.forEach(day => {
if (!calendar[day.date]) {
calendar[day.date] = [];
}
calendar[day.date].push({
roomName: rate.roomName,
roomId: rate.roomId,
rate: day.rate / 100, // Convert to dollars
available: day.available,
restrictions: day.restrictions
});
});
});
return calendar;
};Validation
Date Validation
- Check-in date must be in YYYY-MM-DD format
- Check-in date cannot be in the past
- Check-out date must be at least 1 day after check-in
- Maximum stay length is typically 30 days
Guest Count Validation
- Adults: minimum 1, maximum 20
- Children: minimum 0, maximum 10
- Total guests should not exceed room capacity
Room ID Validation
- Room IDs must be valid Strapi document IDs
- Invalid room IDs will be filtered out silently
- If no valid room IDs provided, all rooms are returned
Rate Information
Pricing
- All rates returned in USD cents (multiply by 0.01 for dollars)
- Rates include base room cost only
- Taxes and fees calculated separately at booking
- Subject to availability and rate restrictions
Rate Types
- Standard Public Rates: Available to all users without authentication
- Member Rates: Require authentication (see member endpoints)
- Promotional Rates: May have specific terms and conditions
Related Endpoints
- Get Property Availability - Check room availability
- Property Search - Search properties with pricing
- Property Details - Get complete property information