What's New in API v2024.07.31
A changelog of what has changed in API v2024.07.31 (12/25)
Overview
Welcome to the What's New? page for the CiiRUS-API. Here, we provide a comprehensive overview of the latest updates, enhancements, and changes introduced in the most recent version. This section highlights key modifications made since previous versions, ensuring you're up-to-date with the latest features and improvements.
Version Scope NoticeThe information on this page describes how API v2024.07.31 differs from v2023.07.31 in its current form. Any incremental updates made after the initial rollout of v2024.07.31 are documented separately in the Changelog.
Currency Format NoticeAll currency values in the API are returned in fixed-point format using a scale of 10⁸. For example, a value of
100000000represents1.00. This ensures precision in financial calculations. Be sure to adjust your implementation accordingly when parsing or displaying amounts.
Availability Endpoint
🔄 What's Changed?
- GET
/v2023.07.31/availabilityis now GET/v2024.07.31/unit_calendars- The endpoint has been renamed to reflect its updated functionality and now returns a richer, day-by-day unit calendar structure.
- GET
/v2023.07.31/availability/{unitId}is now GET/v2024.07.31/unit_calendars/{unit_id}- The
unitIdpath parameter is now formatted asunit_idand the response has been expanded to include detailed per-day availability data.
- The
❌ What's Removed?
- POST
/v2023.07.31/availability- Availability checks via this endpoint are no longer available.
- POST
/v2023.07.31/availability/{unitId}- Availability checks for specific units via POST have been removed.
- PUT
/v2023.07.31/availability/{unitId}- Alteration availability checks for specific units via this endpoint have been removed.
- Query Parameters Removed:
calendarLength– Calendar length is no longer controlled via this parameter.restrictions– Gap-day restriction enforcement is no longer toggled via this flag.
🆕 What's Added?
- GET
/unit_calendarsintroduces several new query parameters:last_reservation_update_date(date-time) – Filters units that have received a booking (direct or calendar sync) after a specified date.last_agent_module_property_update_date(date-time) – Filters units whose agent module property configuration has changed after a given date.last_agent_module_agent_update_date(date-time) – Filters units whose agent module agent configuration has changed after a given date.enabled(boolean) – Filters units by enabled/disabled status.display_on_website(boolean) – Filters to units enabled for website display.allocation_on_arrival(boolean) – Includes allocation-on-arrival information in the response.allocation_on_arrival_unit(boolean) – Filters to units that are the representative unit in their allocation-on-arrival group.fallback_rates(enum) – Controls how rate information is used when generating the calendar (explicitly_in_date_range_only,fallback_max_value_rate,fallback_max_value_rate_plus_guards).reservation_id(int32) – Allows the calendar to be generated in the context of a specific booking.allocated_reservations(array of int32) – Virtually allocates one or more reservations when generating availability.category_to_ignore(int32) – Ignores reservations for a specific booking category when generating availability.channel(enum) – Filters calendars by channel context (all,bdc,vrbo,airbnb).listing_id(string) – Filters calendars by external listing identifier.
- GET
/unit_calendars/{unit_id}:- Now requires
startandenddates to define the calendar window. - Supports
reservation_id,allocated_reservations,category_to_ignore,fallback_rates, andchannelto generate channel- and booking-context-aware calendars.
- Now requires
📝 What’s Modified?
- Pagination Parameters Renamed:
pageSizeis nowpage_size
- Supplier Identifiers Renamed:
mcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_ids
- Unit Identifiers Renamed:
unitIdis nowunit_idunitIdsis nowunit_ids
- Update Timestamp Parameter Renamed:
lastUpdateDateis nowlast_unit_update_date
- Calendar Window Parameters Updated:
calendarLengthhas been replaced by an explicitstartandenddate range.startis now required for both/unit_calendarsand/unit_calendars/{unit_id}and uses adatetype (rather than optionaldate-time).- A new required
enddate parameter defines the end of the calendar range.
- Updated Calendar Response Structure:
- The response container has changed from
calendarstounit_calendars. - Each unit now includes:
start_dateandend_datefor the returned window.- A
dayscollection with per-day:availabilityavailability_typeclosed_to_arrival/closed_to_depatureminimum_nights/maximum_nightsstay_durations- Additional settings flags
- An
allocation_on_arrivalobject describing pooled availability when allocation-on-arrival is used. - An
errorobject to surface unit-level issues when generating calendars.
- The response container has changed from
Booking Endpoint
🔄 What's Changed?
- POST
/v2023.07.31/bookingis now POST/v2024.07.31/reservations- The booking creation process has been renamed to align with the reservations workflow.
- PUT
/v2023.07.31/bookingis now PUT/v2024.07.31/reservationsor PUT/v2024.07.31/reservations/{reservation_id}- Updates to bookings now go through the reservations endpoint, and if a reservation ID is specified, it targets a specific reservation.
❌ What's Removed?
- POST
/v2023.07.31/booking- The old booking creation process is no longer available. Now, reservations are created using the
/reservationsendpoint.
- The old booking creation process is no longer available. Now, reservations are created using the
- PUT
/v2023.07.31/booking- Updating bookings is now handled via
/reservationswith the updated parameter structure.
- Updating bookings is now handled via
- DELETE
/v2023.07.31/booking/{bookingId}- The removal of bookings now happens using DELETE
/reservations/{reservation_id}.
- The removal of bookings now happens using DELETE
- Request Fields Removed:
organization_id– The booking organization field is no longer supplied in the write payload.source_id– The explicit source identifier is no longer part of the create/modify request body.
🆕 What's Added?
- Consolidated Booking Operations into Reservations:
- Create Booking → now performed via POST
/reservationsusing the reservation schema (unit_id,type,details,guests,comments,financials, etc.). - Cancel Booking → now performed via DELETE
/reservations/{reservation_id}, returning the updated reservation (including details and type) instead of a minimal cancellation payload.
- Create Booking → now performed via POST
📝 What’s Modified?
- Endpoint & Identifier Migration:
- Booking write operations moved from
/booking→/reservations. booking_id→ standardized reservationid(andreservation_idin path parameters).inventory_id→unit_id.
- Booking write operations moved from
- Status Representation:
typeenums are now lower case:CONFIRMED→confirmedCANCELLED→cancelledTENTATIVE→tentative
- Guest & Party Structure:
party_members+customer_detailshave been consolidated into a unifiedguestsarray with:type(lead_guest,party_member,pet)- Contact info (
phone_numbers,email_addresses) address,notes,allow_marketing_emails
- Headcount fields (
number_of_adults,number_of_children,number_of_pets) are preserved but now live inside the expandeddetailsobject.
- Comments Structure:
- Comments remain, but are now under
details.commentswith enum values:PRIVATE/GENERAL/SCRATCH_PAD→private/general/scratch_pad.
- Comments remain, but are now under
- Financials & Currency Handling:
- Old model:
financials[]withamount+amount_decimal_places- A flat
total_amount+amount_decimal_places
- New model:
financials.charges[]with value as 10⁸ fixed-point.financials.total_value,financials.total_paid,amount_paid, etc. also stored as 10⁸ fixed-point.- Payments retain
amountwithamount_decimal_placesfor payment recording, but totals and charges are strictly fixed-point.
- Update Patterns:
- 2023: PUT
/bookingused a single booking payload. - 2024: Updates now use:
- PUT
/reservationsfor batch updates, and - PUT
/reservations/{reservation_id}for targeted single-reservation updates, both using the expanded reservation schema.
- PUT
- 2023: PUT
- Old model:
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Content (Amenities) Endpoint
🔄 What's Changed?
- GET
/v2023.07.31/content/amenitiesis now GET/v2024.07.31/unit_amenities- The old endpoint has been renamed to
/unit_amenitiesto provide a clearer purpose for retrieving unit amenities.
- The old endpoint has been renamed to
- GET
/v2023.07.31/content/amenities/{unitId}is now GET/v2024.07.31/unit_amenities/{unit_id}- The
unitIdpath parameter is now formatted asunit_idfor consistency across the API.
- The
❌ What's Removed?
unitId– TheunitIdparameter is now calledunit_id, which is a more consistent and clear naming convention.unitIds– This parameter is now referred to asunit_idsin plural form.
🆕 What's Added?
- GET
/unit_amenitiesintroduces several new query parameters:last_unit_update_date(date-time) – Filters the response to only return units modified after a specified date.last_reservation_update_date(date-time) – Filters for units that have received a booking or calendar sync after a specified date.last_agent_module_property_update_date(date-time) – Filters for units where the agent module property configuration was modified after a specified date.last_agent_module_agent_update_date(date-time) – Filters for units where the agent module agent configuration was modified after a specified date.management_company_user_id(int32) – Filters results by the management company identifier.enabled(boolean) – Filters for only enabled or disabled units.display_on_website(boolean) – Filters for units enabled for display on the website.allocation_on_arrival(boolean) – Returns the allocation on arrival object.allocation_on_arrival_unit(boolean) – Returns units that are representative units in their group.
- GET
/unit_amenities/{unit_id}introduces theunit_idpath parameter, replacingunitId, and allows the retrieval of unit amenities with the same query parameters as the general endpoint.
📝 What’s Modified?
- Query Parameters Renaming:
pageSizeis nowpage_sizefor consistencymcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_idsunitIdis nowunit_idunitIdsis nowunit_ids
Content (Details) Endpoint
🔄 What's Changed?
- GET
/v2023.07.31/content/detailsis now GET/v2024.07.31/unit_details- The endpoint has been renamed to
/unit_detailsto better reflect its purpose of retrieving unit-specific details.
- The endpoint has been renamed to
- GET
/v2023.07.31/content/details/{unitId}is now GET/v2024.07.31/unit_details/{unit_id}- The
unitIdpath parameter is now formatted asunit_idfor consistency.
- The
❌ What's Removed?
unitId– Replaced withunit_idfor uniform naming conventions.unitIds– Nowunit_ids, ensuring consistency across parameters.
🆕 What's Added?
- GET
/unit_detailsintroduces several new query parameters:last_unit_update_date(date-time) – Filters response to only include units modified after a specified date.last_reservation_update_date(date-time) – Filters for units that have received a booking or calendar sync after a specified date.last_agent_module_property_update_date(date-time) – Filters for units with agent module property updates after a specified date.last_agent_module_agent_update_date(date-time) – Filters for units with agent module agent updates after a specified date.management_company_user_id(int32) – Filters by management company identifier.enabled(boolean) – Filters results to show only enabled or disabled units.display_on_website(boolean) – Filters to show only units enabled for website display.allocation_on_arrival(boolean) – Returns the allocation on arrival object.allocation_on_arrival_unit(boolean) – Returns units that are the representative unit in their group.
- GET
/unit_details/{unit_id}introduces theunit_idpath parameter, replacingunitId, and allows retrieval of unit details with the same query parameters as the general endpoint.
📝 What’s Modified?
- Query Parameters Renaming:
pageSizeis nowpage_sizefor consistencymcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_idsunitIdis nowunit_idunitIdsis nowunit_ids
Content (Images) Endpoint
🔄 What's Changed?
- GET
/v2023.07.31/content/imagesis now GET/v2024.07.31/unit_images- The endpoint has been renamed to
/unit_imagesto better align with unit-specific image retrieval.
- The endpoint has been renamed to
- GET
/v2023.07.31/content/images/{unitId}is now GET/v2024.07.31/unit_images/{unit_id}- The
unitIdpath parameter is now formatted asunit_idfor consistency.
- The
❌ What's Removed?
unitId– Replaced withunit_idfor uniform naming conventions.unitIds– Nowunit_ids, ensuring consistency across parameters.onlyFirstImage– No longer available in the new version.
🆕 What's Added?
- GET /unit_images introduces several new query parameters:
last_unit_update_date(date-time) – Filters response to only include units modified after a specified date.last_reservation_update_date(date-time) – Filters for units that have received a booking or calendar sync after a specified date.last_agent_module_property_update_date(date-time) – Filters for units with agent module property updates after a specified date.last_agent_module_agent_update_date(date-time) – Filters for units with agent module agent updates after a specified date.management_company_user_id(int32) – Filters by management company identifier.enabled(boolean) – Filters results to show only enabled or disabled units.display_on_website(boolean) – Filters to show only units enabled for website display.allocation_on_arrival(boolean) – Returns the allocation on arrival object.allocation_on_arrival_unit(boolean) – Returns units that are the representative unit in their group.
- GET
/unit_images/{unit_id}introduces the{unit_id}path parameter, replacing{unitId}, and allows retrieval of unit images with the same query parameters as the general endpoint.
📝 What’s Modified?
- Query Parameters Renaming:
pageSizeis nowpage_sizefor consistencymcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_idsunitIdis nowunit_idunitIdsis nowunit_ids
Emails Endpoint
🔄 What's Changed?
- The base path remains
/emails, but it has been updated to/v2024.07.31for consistency with the latest API version.- PUT
/v2023.07.31/emailsis now/v2024.07.31/emails - GET
/v2023.07.31/emails/subaccountis now/v2024.07.31/emails/subaccount - POST
/v2023.07.31/emails/subaccountis now/v2024.07.31/emails/subaccount - PUT
/v2023.07.31/emails/subaccountis now/v2024.07.31/emails/subaccount - DELETE
/v2023.07.31/emails/subaccountis now/v2024.07.31/emails/subaccount
- PUT
- No structural changes in functionality for sending emails or managing subaccounts.
❌ What's Removed?
- No parameters or functionality have been removed.
🆕 What's Added?
- No new fields or endpoints were introduced in this update.
📝 What’s Modified?
- Version Update: All endpoints now use
/v2024.07.31instead of/v2023.07.31 - Formatting Adjustments: Parameters and request structures remain the same.
Inventory Endpoint
🔄 What's Changed?
- The base path has been renamed from
/inventoryto/unitsin v2024.07.31.- GET
/v2023.07.31/inventoryis now/v2024.07.31/units - PUT
/v2023.07.31/inventoryis now/v2024.07.31/units - GET
/v2023.07.31/inventory/{unitId}is now/v2024.07.31/units/{units_id} - PUT
/v2023.07.31/inventory/{unitId}is now/v2024.07.31/units/{units_id}
- GET
- More granular filtering options have been introduced for retrieving units.
❌ What's Removed?
- Community Filtering (
communityId): No longer available in the query parameters. - Permissions & Airbnb Context (
permissions,airbnb): These parameters have been removed. no_totalparameter has been removed.
🆕 What's Added?
- New Query Parameters for Filtering Units:
last_reservation_update_date: Filters units that have received a booking (either direct or via calendar sync) after a specified date.last_agent_module_property_update_date&last_agent_module_agent_update_date: Tracks modifications in the agent module property and agent configurations.listing_id: Allows lookup by listing ID.
📝 What’s Modified?
- Pagination Parameters Renamed:
pageSizeis nowpage_size
- Supplier Identifiers Renamed:
mcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_ids
- Updated Structure for Unit Updates:
- Now uses
units/{unit_id}instead ofinventory/{unitId}
- Now uses
LengthOfStay Endpoint
🔄 What's Changed?
- The endpoint structure has been renamed from
/los/bwlayersand/los/loslayersto/layers/lengthand/layers/windowin v2024.07.31. - BW and LoS layers have been consolidated into "Length Layers" and "Window Layers" under the new
/layers/namespace.
❌ What's Removed?
- Decimal Places (
decimal_places): No longer required. - User ID (
user_id): Now replaced withmanagement_company_user_id
🆕 What's Added?
- Management Company Identifier (
management_company_user_id): Replacesuser_idto standardize ownership of layers. - Separation of Length and Window Layers:
/layers/length: Handles traditional Length of Stay logic./layers/window: Introduced for different pricing or restriction layers.
📝 What’s Modified?
- Path Parameter Renaming:
layerIdis now referred to aslayer_id.
- Endpoint Paths Updated:
/los/bwlayers/is now/layers/length//los/loslayers/is now/layers/window/
- Multipliers & Layer Properties Remain the Same but are now used for both length and window layers.
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Payments Endpoint
Note: Payment-related capabilities are available by request and are no longer documented as part of the public API reference. Partners who need details on submitting credit card information, see Steps to Success → Submitting Credit Card Details.
Quotes Endpoint
🔄 What’s Changed?
- Endpoint & Naming Changes:
- Old Endpoint:
/quote - New Endpoint:
/unit_quotes/{unit_id}- The endpoint has been renamed and requires a
unit_idas a path parameter. - The path now includes
{unit_id}instead of usinginventory_idin the body.
- The endpoint has been renamed and requires a
- Old Endpoint for Multiple Quotes:
/quotes - New Endpoint for Multiple Quotes:
/unit_quotes- The endpoint for retrieving multiple quotes has also been renamed and is now
/unit_quotesinstead of/quotes.
- The endpoint for retrieving multiple quotes has also been renamed and is now
- Old Endpoint:
- Terminology & Parameter Changes:
inventory_idis nowunit_id(moved to the path parameter in the URL).- Previously in the request body as an integer.
- Now it’s required in the path to identify the unit uniquely.
organization_idis nowmanagement_company_user_id.- This was previously an optional field and is now renamed for clarity.
source_idis nowreference.- The previous
source_idfield is replaced byreference.
- The previous
optional_extrasis now moved undercharges(withinfinancials):- Previously represented in the body as an array of integers.
- Now it is part of a structured object within the
financialsobject.
discount_coderemains, but now it is placed underfinancials.- Previously part of the main body, now nested under
financials.
- Previously part of the main body, now nested under
thread_idis now included in thedetailsobject.- Previously was a separate top-level field.
- Expanded Guest Information:
party_membersis now renamed toguests(which is a nested object):- This object includes more structured and detailed guest information.
- New guest details include:
first_name(string)last_name(string)phone_numbers(array of strings)email_addresses(array of strings)address(object):- Contains
notes,allow_marketing_emails(boolean), andairbnb_guest_id.
- Contains
id(integer) – CRM ID of the guest.type(string, required)lead_guest(boolean, explicitly supported).
- Structure Improvements:
origination_datehas now been added:- Tracks the date and time when the quote was originally created.
expirationis now included:- This field indicates when the quote or tentative reservation expires.
cancelled_onnow tracks reservation cancellations:- This is a new field, indicating when a reservation has been canceled.
category,category_id, andcategory_descriptionare now explicitly defined:- These were previously undefined, but now explicitly describe the reservation category associated with the Agent.
- secure_details now contains additional security-related fields for access:
- lock_box_code, gate_code, alarm_code, wifi_ssid, wifi_password.
- Financial Structure Changes:
financialsis now a more structured object that includes:charges(array of objects with detailed charge information):item(string)id(integer)code(string)quantity(integer)charge_type(string)amount(integer)
payments(array of objects with detailed payment tracking):amount(integer)amount_decimal_places(integer, now defaults to 2)payment_date(date-time)payment_schedule(array of objects for scheduled payments)total_paid(total amount paid by the customer)total(total reservation value)currency(string)
merchant_of_record(new field)merchant_of_record_user(new field)
scenariohas been added:- Identifies different reservation viewing scenarios, giving more flexibility in quoting and viewing.
allocation_on_arrivalandallocation_on_arrival_unit(new fields) provide more flexibility in the reservation and allocation process.fallback_rates(new query parameter):- Ensures that length-of-stay pricing is applied when available.
length_of_stay(boolean field under financials):- Indicates whether length-of-stay pricing is applicable.
❌ What’s Removed?
amount_decimal_placesfrompayment_schedule:- Pricing now uses micros, and this field is no longer necessary.
decimalPlacesfield for total calculations has been removed:- The new structure uses more precise calculations.
sourceandsource_idhave been removed:- These fields are no longer needed, replaced by
reference.
- These fields are no longer needed, replaced by
party_membershas been removed:- This has been replaced by the more structured and detailed
guestsobject.
- This has been replaced by the more structured and detailed
optional_extrasis removed from the body and is now part ofchargesunderfinancials.thread_idhas been removed from the top-level fields and moved into thedetailsobject.
🆕 What’s Added?
financialsexplicitly groups and structures financial data:charges,payments,currency,merchant_of_record, andmerchant_of_record_userare all part offinancials.
scenarioallows defining multiple reservation viewing conditions.allocation_on_arrivalandallocation_on_arrival_unitoffer more flexible booking and allocation options.fallback_ratesenables better pricing flexibility by using length-of-stay pricing.merchant_of_recordandmerchant_of_record_usertrack transaction ownership.length_of_stayensures length-of-stay pricing is applied.
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Rates (Rental) Endpoint
🔄 What’s Changed?
- Endpoint Renaming & Structure Updates
- Old:
/v2023.07.31/rates/v2023.07.31/rates/{unitId}
- New:
/v2024.07.31/unit_rental/v2024.07.31/unit_rental/{unit_id}
- Old:
- Terminology & Parameter Updates
- Page Size Parameter:
pageSizeis nowpage_size(case change).
- Query Parameter Changes:
mcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_idsunitIdis nowunit_id(with underscores instead of camel case)unitIdsis nowunit_idsratesLengthis nowmaximum_future_days(more descriptive)lastUpdateDateis now split into more specific parameters:last_unit_update_datelast_reservation_update_datelast_agent_module_property_update_datelast_agent_module_agent_update_date
- Page Size Parameter:
- New Parameters Added:
enabled(boolean): Filters results to only include enabled or disabled units.display_on_website(boolean): Filters results based on whether the unit is enabled for the website.allocation_on_arrival(boolean): Returns the allocation on arrival object.allocation_on_arrival_unit(boolean): Returns units which are the representative unit in their group.channel(string): Specifies the channel for the rates.
- Date Parameters Changes:
startandend(now required) for the date range of rate information.start(date) andend(date) now appear for both unit rental query and individual unit rental query.
- Query for Length of Stay:
lengthOfStayis now included in the query asfallback_rates(boolean) under both endpoints, ensuring length-of-stay pricing is applied if available.
❌ What’s Removed?
- Removed Parameters:
ratesLengthhas been replaced bymaximum_future_dayslastUpdateDateis now split into more specific query parameters and is no longer a single parameter.- The
minValueandmaxValueparameters are removed, as they were specific to the old implementation of rate guards. no_totalparameter has been removed.
🆕 What’s Added?
- New Query Parameters & Improvements:
management_company_user_idandmanagement_company_user_idsreplacemcUserIdandmcUserIdsfor more precise filtering of suppliers.enabledfilters units based on whether they are enabled or disabled.display_on_websitefilters units specifically enabled for the website.allocation_on_arrivalandallocation_on_arrival_unitprovide more flexibility with arrival unit allocation queries.- Additional date fields such as
last_agent_module_property_update_dateandlast_agent_module_agent_update_dateprovide more detailed tracking for unit updates.
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Rates (Extras) Endpoints
🔄 What's Changed?
- GET
/v2023.07.31/rates/extrasis now GET/v2024.07.31/unit_extras- The endpoint has been renamed to align with the updated unit-based API structure.
- GET
/v2023.07.31/rates/extras/{unitId}is now GET/v2024.07.31/unit_extras/{unit_id}- The
unitIdpath parameter is now formatted asunit_idfor consistency.
- The
- The extras model has been expanded significantly to support advanced extra logic such as date-range rules, age bands, stay duration rules, quantity rules, value types, and vendor/supplier allocation.
❌ What's Removed?
- Legacy Endpoints:
/rates/extras/rates/extras/{unitId}
- Removed Parameters:
airbnb– No longer available in the Extras endpoints.
🆕 What's Added?
- GET
/unit_extrasintroduces several new query parameters:last_unit_update_date(date-time) – Filters for units modified after a specified date.last_reservation_update_date(date-time) – Filters for units that received a booking or calendar sync after a specified date.last_agent_module_property_update_date(date-time) – Filters for units with agent module property updates.last_agent_module_agent_update_date(date-time) – Filters for units with agent module agent updates.enabled(boolean) – Filters for enabled or disabled units.display_on_website(boolean) – Filters units enabled for website display.allocation_on_arrival(boolean) – Returns allocation-on-arrival information.allocation_on_arrival_unit(boolean) – Returns units that are the representative unit in their group.channel(enum) – Specifies channel context (all,bdc,vrbo,airbnb).listing_id(string) – Filters by listing ID.retrieve_all_extras(boolean) – Returns all extras regardless of rule applicability.include_extras_without_value(boolean) – Includes zero-value extras.
- GET
/unit_extras/{unit_id}introduces the updated path parameter and supports the same new selectors as the main endpoint.
📝 What’s Modified?
- Query Parameter Renaming:
pageSizeis nowpage_sizemcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_idsunitIdis nowunit_idunitIdsis nowunit_idsretrieveAllExtrasis nowretrieve_all_extras
- Updated Structure for Retrieving Extras:
- Retrieving extras is now unit-driven using
/unit_extrasand/unit_extras/{unit_id} - The new schema includes expanded logic that replaces the 2023 model:
- Mandatory extras
- Per-guest pricing
- Per-day pricing
- Guest-quantity ranges
- Stay-duration ranges
- Age-band pricing
- Date-range restrictions (bookable and effective)
- Full-stay requirements
- Percent vs fixed value (value_type)
- Minimum and maximum values
- Vendor, supplier, owner, and MC allocations
- Insurance policy class
- Channel-specific visibility
- Optional inclusion of zero-value extras
- Tax Structure Updated:
applicable_taxesnow uses a simple enum string array (e.g.,"tax_one"), replacing the v2023 object structure.
- Retrieving extras is now unit-driven using
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Rates (Fees) Endpoints
🔄 What's Changed?
- GET
/v2023.07.31/rates/feesis now GET/v2024.07.31/unit_quotes- The endpoint is now part of the unit-based quoting architecture, returning all fee-related configuration for a unit.
- GET
/v2023.07.31/rates/fees/{unitId}is now GET/v2024.07.31/unit_quotes/{unit_id}- The
unitIdpath parameter has been updated tounit_idfor consistency.
- The
- Fee retrieval no longer uses the Rates namespace and is now delivered through the unified quote options structure.
❌ What's Removed?
- Legacy Endpoints:
/rates/fees/rates/fees/{unitId}
- Airbnb Context Parameter (
airbnb): This has been removed as a query parameter.
🆕 What's Added?
- New
/unit_quotesEndpoint:- Allows more granular filtering using updated query parameters.
- New Query Parameters for Enhanced Filtering:
last_unit_update_date(date-time): Filters units modified after a specified date.last_reservation_update_date(date-time): Filters units that received a booking after a specified date.last_agent_module_property_update_date(date-time): Tracks changes in agent module property settings.last_agent_module_agent_update_date(date-time): Tracks changes in agent module agent settings.enabled(boolean): Filters based on whether a unit is enabled or disabled.display_on_website(boolean): Filters units enabled for website display.allocation_on_arrival(boolean): Returns allocation-on-arrival details.allocation_on_arrival_unit(boolean): Filters for representative units in grouped properties.channel(enum): Filters results for a specific channel (all,bdc,vrbo,airbnb).
- GET
/unit_quotes/{unit_id}introduces the updated path parameter and supports channel filtering.
📝 What’s Modified?
- Query Parameter Renaming:
pageSizeis nowpage_sizemcUserIdis nowmanagement_company_user_idmcUserIdsis nowmanagement_company_user_idsunitIdis nowunit_idunitIdsis nowunit_ids
- Updated Structure for Retrieving Fees:
- Retrieving Fees is now unit-driven using
/unit_quotesand/unit_quotes/{unit_id}. - The new schema consolidates all fee-related configuration for the unit, including:
- Cleaning fee settings
- Booking fee configuration
- Security deposit amounts and settings
- Pool heat and spa heat pricing
- Fee/tax rules and inclusion flags
- Percentage distributions to management company or owner
- Down-payment and balance-due rules
- Minimum night stay, gap days, and validity windows
- Daily rate factors for short/long stays
- Retrieving Fees is now unit-driven using
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Rates (Ratesets) Endpoint
🔄 What's Changed?
- Endpoint URL has changed:
- Old:
/v2023.07.31/rates/ratesets - New:
/v2024.07.31/ratesets
- Old:
- Query Parameter Renaming:
pageSizeis nowpage_sizefor consistency with other endpoints.- The
mcUserIdandmcUserIdsparameters have been replaced withmanagement_company_user_idandmanagement_company_user_ids unitIdandunitIdsparameters have been renamed tounit_idandunit_idsto follow the new naming conventionexcludeExpiredRatesparameter has been renamed toexclued_expired_rates
❌ What's Removed?
- lastUpdateDate is no longer available; instead, filters have been streamlined.
🆕 What's Added?
- New
rateset_idandrateset_idsparameters for retrieving specific rateset(s). arrival_daysanddeparture_daysarrays are added torate_bandsfor more granular control over arrival and departure day filtering.no_totalparameter added to improve performance by omitting the total page count.
📝 What’s Modified?
rate_bandhas been expanded with new fields:arrival_daysanddeparture_daysas arrays for finer control over specific days.minimum_nights_stayis now more specific at the unit level.
rate_bandincludes thefloor_rate,season_name, andmaximum_nights_stayfields for additional flexibility in rate bands.
Note: Currency values utilized by this endpoint use 10⁸ fixed-point format (e.g.
100000000=$1.00).
Reservations Endpoint
🔄 What's Changed?
- The base path remains /reservations, but the reservation model and response shape have been restructured:
- GET
/v2023.07.31/reservations→ GET/v2024.07.31/reservations - GET
/v2023.07.31/reservations/{reservationId}→ GET/v2024.07.31/reservations/{reservation_id}
- GET
- Reservation data that was previously mostly flat at the root is now organized into:
- A new
detailsobject (arrival/departure, guests, category, secure details, comments, etc.). - A new
financialsobject (charges, payments, payment schedule, totals, merchant-of-record, etc.).
- A new
- The single-reservation update path has been aligned with the plural naming convention:
- PUT
/v2023.07.31/reservation/{reservationId}is now PUT/v2024.07.31/reservations/{reservation_id}and uses the samedetails/financials-based schema as retrieval.
- PUT
- Pagination metadata has been moved from top-level properties into a dedicated paging object in the response.
The create / update / cancel behaviors (including migration from /booking) are detailed under the separate Booking Endpoint section. This Reservations section focuses on retrieval and the shared reservation model.
❌ What's Removed?
- Query Parameters:
no_total– previously used to suppress the total page count; no longer supported.lastUpdateDate– previously used for modification-based filtering; in practice,modifiedStart/modifiedEnd(nowmodified_start/modified_end) are the supported pattern.
- Response Fields:
- The following fields from the 2023 reservation resource are not present in the 2024 schema:
status– reservation state is now expressed via thetypefield.clone_idclone_user_idagent_id
- The following fields from the 2023 reservation resource are not present in the 2024 schema:
🆕 What's Added?
- Root-Level Fields:
management_company_user_id– added at the reservation root to identify the supplier per reservation.type– string representing reservation type (confirmed,cancelled,tentative).error– per-reservation error object with:message
detailsObject:- A
detailsobject has been introduced. It consolidates existing data from 2023 and adds several new fields:- Existing concepts now grouped under
details:arrivaldepartureaddedexpirationcancelled_onscenariocategorycategory_idsecure_details(lock/gate/Wi-Fi/access codes)early_check_inlate_check_outarrival_departure_infoowner_reservation
- Newly introduced or more explicit fields within
details:quote_as_super_site_user_idcomments– now an array of objects:texttype(private, etc.)
guests– unified guest collection:idtype(lead_guest,party_member,pet)titlefirst_namelast_nameagephone_numbers[]email_addresses[]address:address_line_1address_line_2citystate_provincecountrypostal_code
notesallow_marketing_emails
- Headcount fields (replacing root-level
adults/children):number_of_adultsnumber_of_childrennumber_of_pets
- Category metadata extensions:
category_descriptioncalendar_sync_category_id
- Extended
secure_details:- Adds
door_codein addition to the existing codes.
- Adds
- Additional metadata:
sourcethread_idunit_namereferrer
- Existing concepts now grouped under
- A
financialsObject:- The 2023
financialsarray and root-level totals have been refactored into a structuredfinancialsobject, which both reorganizes and extends the financial model:- High-level properties:
rate_set_idlength_of_staypool_heatdiscount_codecurrencymerchant_of_record(string)merchant_of_record_user
charges– replaces the 2023financials[]array:itemid(int)codeapplies_to_idquantitytypevalue(monetary value, fixed-point)
payments– extended from the 2023 root-levelpayments[]:amountpayment_dateamount_decimal_placespayment_user_idpayment_methodpayment_typepayment_description
payment_schedule– extended from the 2023 root-levelpayment_schedule[]:valuevalue_duepayment_typepayment_statusdue_date
- Totals and balance tracking (replacing root-level monetary fields):
total_paidtotal_valuepayment_taken_bymerchant_grantee_agentmerchant_grantee_supplieramount_paidmc_total_inclusive_taxbalance_due_amountbalance_due_date
- High-level properties:
- The 2023
- Pagination Object
- A new
pagingobject has been introduced at the response root:next_page_urlprevious_page_urltotal_page_countpagepage_size
- A new
- Filtering Enhancements
- New singular category filter:
category_id– added alongsidecategory_idsto filter by a single category ID.
- New singular category filter:
📝 What’s Modified?
- Query Parameters:
- The following query parameters have been renamed for consistency (primarily camelCase → snake_case and clarified naming):
- Pagination:
pageSize→page_size
- Supplier / Management Company:
mcUserId→management_company_user_idmcUserIds→management_company_user_ids
- Identifiers:
unitId→unit_idunitIds→unit_idsreservationId→reservation_idreservationIds→reservation_ids
- Date filters:
modifiedStart→modified_startmodifiedEnd→modified_endarrivalStart→arrival_startarrivalEnd→arrival_enddepartureStart→departure_startdepartureEnd→departure_endcancelledStart→cancelled_startcancelledEnd→cancelled_endaddedStart→added_startaddedEnd→added_end
- Category & Merchant filters:
categoryIds→category_idsmerchantOfRecord→merchant_of_record
- Miscellaneous filters:
addedByStaffId→added_by_staff_id
- (Other filters such as
reference,references,cancelled,quote, andtentativeretain their semantics; only naming has been normalized where noted.)
- Pagination:
- The following query parameters have been renamed for consistency (primarily camelCase → snake_case and clarified naming):
- Status / Type Representation
- 2023:
- Reservation state was expressed via
statuswith values likeCONFIRMED,CANCELLED,TENTATIVE.
- Reservation state was expressed via
- 2024:
- State is now expressed via
typewith values likeconfirmed,cancelled,tentative. - The
statusfield is no longer present.
- State is now expressed via
- 2023:
- Guest & Party Data
- 2023:
- Headcount and guests were modeled via:
- Root fields:
adults,children lead_guest_detailsguest_list[]
- Root fields:
- Headcount and guests were modeled via:
- 2024:
- Headcount is now:
details.number_of_adultsdetails.number_of_childrendetails.number_of_pets
- Guests are consolidated under:
details.guests[]with explicittypeand richer contact / address / marketing fields.
- Comments move from a single root
commentsstring to:details.comments[]withtext+type.
- Headcount is now:
- 2023:
- Secure Details:
- 2023:
secure_detailsat the root contained:lock_box_code,gate_code,alarm_code,wifi_ssid,wifi_password,lobby_code,fitness_room_code,pool_access_code,beach_access_code.
- 2024:
secure_detailsis now underdetails.secure_detailsand adds:door_code.
- 2023:
- Financial Structure & Currency Representation:
- 2023:
- Monetary data was spread across:
- Root fields:
total,total_paid,total_amount,amount_decimal_places. financials[](array) with line items (amount+amount_decimal_places).- Root
payments[]andpayment_schedule[]withamount+amount_decimal_places. - Root
merchant_of_record(integer).
- Root fields:
- Monetary data was spread across:
- 2024:
- Monetary data is centralized in
financials:- Line items under
financials.charges[]usingvalue. - Totals such as
total_value,total_paid,amount_paid,mc_total_inclusive_tax,balance_due_amountare all part offinancials. payments[]andpayment_schedule[]now include additional metadata while keepingamount/amount_decimal_places(payments) and introducingvalue/value_due(payment_schedule).merchant_of_recordis now a string withinfinancials, withmerchant_of_record_useradded for clarity.
- Line items under
- Monetary data is centralized in
- 2023:
- Pagination Metadata:
- 2023:
- Top-level pagination fields:
next_page_urlprevious_page_urltotal_page_count
- Top-level pagination fields:
- 2024:
- Pagination metadata is moved into the
pagingobject:paging.next_page_urlpaging.previous_page_urlpaging.total_page_countpaging.pagepaging.page_size
- Pagination metadata is moved into the
- 2023:
Note: Monetary values under the
financials.charges,financials.payment_schedule, and financial total fields are expressed using a fixed-point integer representation (e.g.100000000=$1.00). Paymentamountfields continue to useamount_decimal_placesfor scaling. Ensure your integration applies the appropriate conversion before displaying currency values.
Suppliers Endpoint
🔄 What's Changed?
- GET
/v2023.07.31/suppliersis now GET/v2024.07.31/suppliers- The base path remains
/suppliers, with the version updated tov2024.07.31.
- The base path remains
- Pagination metadata has been restructured:
- In 2023,
next_page_url,previous_page_url, andtotal_page_countwere returned at the root level. - In 2024, these are now returned inside a
pagingobject alongsidepageandpage_size.
- In 2023,
❌ What's Removed?
- Response Fields:
user_id– This field is no longer present in the supplier object. It has been superseded by a new identifier field (id).
🆕 What's Added?
- Query Parameter:
no_total(boolean): Defaults tofalse. If set totrue, omits the total page count from the response to improve performance for large result sets.active(boolean): Filters suppliers by activity status. Only returns suppliers marked as active when set totrue.
- Response Fields (per supplier):
id– Integer identifier for the supplier (replaces the olduser_idstring identifier).credit_cards– Array of credit card configuration objects:idcard_typepercentage
arrival_time– Default arrival time configured for the supplier.departure_time– Default departure time configured for the supplier.
- Pagination Object:
paging– New object encapsulating pagination metadata:next_page_urlprevious_page_urltotal_page_countpagepage_size
📝 What’s Modified?
- Query Parameters:
pageSize→page_size– Page-size parameter renamed for consistency with other v2024 endpoints.
- Pagination Metadata Structure:
- Pagination-related fields have been moved from the response root into the
pagingobject:- Previously: root-level
next_page_url,previous_page_url,total_page_count. - Now:
paging.next_page_url,paging.previous_page_url,paging.total_page_count, pluspaging.pageandpaging.page_size.
- Previously: root-level
- Pagination-related fields have been moved from the response root into the
Updated 4 days ago
