Unit Rental

Returns day-level base rental rates and stay-rule configuration for units in the inventory

Overview

The Retrieve Unit Rental endpoint returns day-level base rental rate data and associated stay-rule configuration for one or more units over a defined date range. This includes nightly rate values, minimum and maximum stay requirements, arrival and departure restrictions, booking fences, gap rules, and rate-set evaluation metadata.

This endpoint represents the authoritative source for determining what a unit costs per night and under what stay conditions those rates apply for a given date range. While it does not return a full guest-facing price, it defines the pricing foundation used by downstream quoting and reservation workflows.

Rental results reflect a composed evaluation of supplier-defined rate sets, seasonal pricing rules, stay restrictions, and optional channel context when supplied. Returned values already reflect configured rate factors and markups, but do not represent a final quote.

This endpoint is commonly used for:

  • Power nightly rate calendars and pricing previews
  • Display base nightly pricing in search results
  • Validate stay length rules prior to quoting
  • Pre-check pricing feasibility before reservation creation
  • Re-evaluate pricing during reservation modifications or re-quotes

By design, this endpoint should be treated as pricing configuration and validation data, not a finalized financial breakdown. Partners must use quoting endpoints to calculate taxes, fees, discounts, deposits, and totals.

Related Supplier Configuration (Optional Context)

Rental rate behavior returned by this endpoint is influenced by rate and reservation configuration within the CiiRUS system, including supplier-defined pricing, tax applicability, and online booking rules.

Endpoints Available

MethodEndpointDescription
GETv2024.07.31/unit_rentalReturns rental rate configuration for units in the inventory.
GETv2024.07.31/unit_rental/{unit_id}Returns rental rate configuration for a specific unit in the inventory.

Path Parameters

Path ParameterRequired / OptionalDescription
{unit_id}RequiredUnique Identifier for a unit in the inventory.

Query String Parameters

ParameterRequired / OptionalDescriptionData Type
pageOptionalThe page to be shown (defaults to 1).int
page_sizeOptionalLimits the number of returned results (defaults to 25).int
last_unit_update_dateOptionalOnly return units that have been modified after the specified date.date-time
last_reservation_update_dateOptionalOnly return units that have received a booking (their own or a calendar sync) after the specified date.date-time
last_agent_module_property_update_dateOptionalOnly return units that have had their agent module property configuration modified after the specified date.date-time
last_agent_module_agent_update_dateOptionalOnly return units that have had their agent module agent configuration modified after the specified date.date-time
unit_idOptionalUnique Identifier for Unit in Inventoryint
unit_idsOptionalUnique Identifiers for Units in Inventoryarray
management_company_user_idOptionalUnique Identifier for Supplierint
management_company_user_idsOptionalUnique Identifiers for Suppliersarray
enabledOptionalUse only enabled or disabled units.boolean
deletedOptionalOnly show properties that are deleted or not deleted.boolean
display_on_websiteOptionalOnly show properties that are enabled for the management company's website.boolean
allocation_on_arrivalOptionalReturn the allocation on arrival object.boolean
allocation_on_arrival_unitOptionalReturn units that are the representative unit in their group.boolean
startRequiredThe desired start date for the rental rates.date-time
endRequiredThe desired end date for the rental rates.date-time
maximum_future_daysOptionalMaximum future days for LOS.int
fallback_ratesOptionalDetermines fallback behavior when nightly rates are missing. Defaults to fallback_max_value_rate_plus_guards.string
minimum_value_guardOptionalMinimum value guard used when applying fallback rate logic. This constrains the resulting filled values to not fall below a configured minimum threshold during fallback evaluation. This does not “invent” pricing; it controls how fallback values are bounded when fallback mode is enabled.int
maximum_value_guardOptionalMaximum value guard used when applying fallback rate logic. This constrains the resulting filled values to not exceed a configured maximum threshold during fallback evaluation.int
channelOptionalRestrict results to a specific channel context. Leave empty for general/default behavior.string
  • Allowed values for fallback_rates:
    • explicitly_in_date_range_only – Only return rates explicitly configured in the requested range (missing days may effectively result in gaps or downstream inability to quote).
    • fallback_max_value_rate – Will fill any missing rates in the selected date range with the highest configured rate value.
    • fallback_max_value_rate_plus_guards – Will also fill any missing rates using the highest configured rate value in the selected date range while also applying any configured rate guards (e.g., min/max constraints).
  • Allowed values for channel:
    • all
    • bdc
    • vrbo
    • airbnb

Response Definition

Response ItemDescriptionData Type
"unit_rental"The primary result set. Each array element represents the evaluated rental-rate output for a single unit over the requested date range. A unit may return either a "rental" object (successful evaluation) or an "error" object (non-actionable).array
"paging"Paging metadata used to navigate through large result sets when multiple units are returned.object

"unit_rental" Object

Response ItemDescriptionData Type
"unit_id"The unique identifier for the unit this rental evaluation applies to. This is the same canonical unit identifier used across the platform (/units, /unit_details, /unit_calendars, /unit_quotes, etc.) and should be used as the primary join key when correlating data across endpoints.int
"management_company_user_id"The unique identifier of the supplier (property manager) that owns or manages the unit. This is critical in multi-supplier integrations, as unit visibility and pricing are scoped by enabled supplier relationships.int
"rental"The evaluated rental-rate object for the unit and date range. This object is only present when pricing can be successfully resolved under the current integration context.object
"error"An informational error object returned when rental rates cannot be produced for this unit (for example, when the supplier or partner has not enabled the property connection). When present, the unit should generally be excluded from pricing and booking flows.object
📘

Note

In multi-unit queries it is normal to receive a mixed array where some units have "rental" while others have "error". Partner integrations should handle partial success cleanly.

"rental" Object

Response Item

Description

Data Type

"rate_set_id"

Unique identifier of the rate set used to generate the returned pricing for this unit and date range. A rate set represents the supplier’s configured pricing “source” assigned to the unit (for example: seasonal bands, default pricing schedules, or other rate structures).

int

"start"

Start date (inclusive) of the pricing window returned within the "rental" object. This corresponds to the request’s start parameter and defines the first day represented in the "rates" and "settings" arrays.

string

"end"

End date (inclusive) of the pricing window returned within the "rental" object. This corresponds to the request’s end parameter and defines the last day represented in the "rates" and "settings" arrays.

string

"iso_currency"

ISO 4217 currency code for all monetary values represented in the "rental" object (for example: "USD"). Partners should treat this as the authoritative currency context for interpreting "rates", markups, and any derived pricing.

See valid iso_currency values.

string

"currency_exchanges"

Optional currency exchange metadata, when applicable. This array is typically empty in partner-facing scenarios, but is included for completeness when the system needs to express converted currency context. Partners should not assume it is populated.

array

"rates"

Array of nightly rental rate values, one entry per day starting at "start" and continuing sequentially through "end". Values are returned in 10⁸ fixed-point format (for example: 12900000000 represents 129.00). The array index maps directly to a calendar day offset (index 0 = "start", index 1 = "start"+1 day, etc.). Partners should treat these values as base nightly rental pricing inputs, not final totals (taxes/fees/extras are handled elsewhere).

array

"settings"

Array of rule context objects aligned day-for-day with the "rates" array. Each entry describes the booking-rule constraints that apply to that date within the pricing configuration (booking fence, gap days, min/max nights, allowed arrival/departure weekdays), plus the configured season label when available. Partners can use this to understand why certain stays are valid/invalid under the associated rate configuration and to explain rule-driven pricing behavior to users.

array

"applicable_taxes"

An array of tax identifiers/names indicating which taxes apply to the nightly rental rates returned in "rates". This array does not contain tax amounts or percentages—only classification keys used later during quoting. An empty array may indicate that taxes do not apply to the rental rate.

array

"rate_set_details"

Rate-set configuration flags and multipliers that describe how the returned base rates are adjusted or interpreted within the integration context (for example: markups/factors, whether rates include tax, whether mandatory extras should be included downstream, and whether LOS pricing behavior is enabled). Partners should treat this as the “pricing policy layer” that helps explain how nightly rates are expected to be consumed.

object

🚧

The "rates" array represents nightly rate values only. It does not represent a final quote total and does not include required fees, mandatory extras, taxes, discounts, or channel fee logic. For bookable totals and accurate guest-facing pricing, use the quoting flow (for example: /unit_quotes).

"settings" Object

Response ItemDescriptionData Type
"booking_fence"The minimum lead time (in days) required to create a booking arriving on this date. A value of 0 means same-day bookings are allowed by this rule layer. This is commonly used to prevent last-minute turnovers or to allow operational conflicts to be resolved.int
"gap_days"Required minimum number of vacant days between adjacent reservations for this date context. This acts as a buffer rule (cleaning, inspections, maintenance) and can make nights effectively unbookable depending on surrounding reservations. A value of 0 means no gap requirement under this rule layer.int
"minimum_nights"Minimum length of stay (in nights) allowed for reservations that begin on this date. This is a rule constraint aligned to rate applicability (often seasonal or policy-driven). Partners should validate this alongside calendar rules when deciding if a stay pattern is valid.int
"maximum_nights"Maximum length of stay (in nights) allowed for reservations that begin on this date. A value of 0 is commonly used to represent “no enforced maximum” under this rule layer. Partners should not assume a maximum exists unless this field is non-zero.int
"arrival_days"List of weekdays on which a reservation is allowed to start (check in) under this rule layer. If a weekday is not present, arrivals on that weekday should be treated as invalid even if a nightly rate exists for that date.array[string]
"departure_days"List of weekdays on which a reservation is allowed to end (check out) under this rule layer. If a weekday is not present, departures on that weekday should be treated as invalid, especially during modification or re-quote workflows.array[string]
"season_name"Supplier-defined season label applied to this date’s pricing/rule context (for example: “High Season”, “Holiday”, etc.). This is intended for display and diagnostics (helpful for explaining seasonal pricing shifts). It may be blank, and some inventories may use placeholder values depending on configuration.string
📘

Note

There will be multiple "settings" objects in the array. The "settings" array aligns 1:1 with `"rates" by index over the requested date range.

"rate_set_details" Object

Response ItemDescriptionData Type
"agent_daily_markup"Flat per-night markup applied at the agent/integration level, expressed in currency units (not fixed-point). A value of 0.00 indicates no flat daily markup is applied. This can be used as an additional adjustment layer on top of base nightly rates when applicable.decimal
"agent_rate_factor"Multiplicative factor applied at the agent/integration level to adjust base nightly rates. A value of 1.00 indicates no adjustment. Partners should treat this as a policy multiplier, not a discount, unless their business logic explicitly interprets it as such.decimal
"management_company_rate_factor"Multiplicative factor applied by the supplier (management company) to the underlying base rate configuration. A value of 1.00 indicates no adjustment. This is commonly used for operational pricing adjustments without redefining every rate value.decimal
"includes_tax"Indicates whether the rental rate values are configured as tax-inclusive (true) or tax-exclusive (false). Even when true, partners should still use quoting for final totals, as tax treatment can vary based on reservation composition and configured taxable items.boolean
"ciirus_percentage"Percentage retained by CiiRUS when applicable. This is typically 0.00 in partner-facing contexts. Partners should treat this as informational and not use it as a pricing input unless explicitly instructed by CiiRUS.decimal
"include_mandatory_extras"Indicates whether mandatory extras are expected to be included in downstream pricing flows. This does not mean extras are already included in "rates"—it signals how mandatory extras should be treated during quote composition. Partners should follow quote responses as the authoritative source for fee/extras application.boolean
"days_in_month"Number of days in the month used by the system for certain prorated or monthly-rate behaviors within the rate configuration. This is typically relevant for long-stay or monthly-rate pricing logic.int
"allow_length_of_stay"Indicates whether length-of-stay (LOS) pricing logic is enabled for the associated rate set. When true, the nightly rate returned for a day may reflect LOS-driven pricing configuration rather than a simple flat nightly value. Partners should treat this as a signal that LOS behavior may apply when evaluating multi-night stays.boolean
🚧

If a 0 appears in the "rates" array, this was defined by the Property Manager. Please contact the PM and request they populate this data. As long as a rateband has been defined (even as 0) for the date period of a reservation and the user has set the property to be bookable online, the property can be booked and the quote will be calculated based on the defined rates.

"error" Object

Response ItemDescriptionData Type
"error"Human-readable explanation describing why rental pricing could not be returned for this unit under the current request. Common causes include missing rate bands for the unit, or the unit not being enabled/authorized for the current partner/supplier connection context. Partners should treat this as informational and exclude the unit from pricing/booking flows until resolved.string

"paging" Object

Response ItemDescriptionData Type
"next_page_url"A URL that can be used to retrieve the next page of supplier results, if additional pages exist.string
"previous_page_url"A URL that can be used to retrieve the previous page of supplier results, if applicable.string
"total_page_count"The total number of available pages for the current request.int
"page"The current page number being returned.int
"page_size"The number of records being included per page.int

Sample Request

curl --location 'https://api.ciiruspartners.com/v2024.07.31/unit_rental?page=1&page_size=25&management_company_user_id=42330&start=2026-01-13&end=2026-01-20' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic {APIUsername:APIPassword}' \

Sample Response

{
    "unit_rental": [
        {
            "unit_id": 219264,
            "management_company_user_id": 42330,
            "rental": {
                "rate_set_id": 75114,
                "start": "2026-01-13",
                "end": "2026-01-20",
                "iso_currency": "USD",
                "currency_exchanges": [],
                "rates": [
                    1000000000,
                    1000000000,
                    1000000000,
                    1000000000,
                    1000000000,
                    1000000000,
                    1000000000
                ],
                "settings": [
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    },
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    },
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    },
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    },
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    },
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    },
                    {
                        "booking_fence": 0,
                        "gap_days": 0,
                        "minimum_nights": 1,
                        "maximum_nights": 0,
                        "arrival_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "departure_days": [
                            "monday",
                            "tuesday",
                            "wednesday",
                            "thursday",
                            "friday",
                            "saturday",
                            "sunday"
                        ],
                        "season_name": ""
                    }
                ],
                "applicable_taxes": [],
                "rate_set_details": {
                    "agent_daily_markup": 0.00,
                    "agent_rate_factor": 1.00,
                    "management_company_rate_factor": 1.00,
                    "includes_tax": false,
                    "ciirus_percentage": 0.00,
                    "include_mandatory_extras": true,
                    "days_in_month": 30,
                    "allow_length_of_stay": false
                }
            }
        }
    ],,
    "paging": {
        "next_page_url": "https://api.ciiruspartners.com/v2024.07.31/unit_rental?page=1&page_size=25&management_company_user_id=42330&start=2025-01-01&end=2025-12-31",
        "total_page_count": 13,
        "page": 1,
        "page_size": 25
    }
}