Apaleo logo

Apaleo Integration

Connects via OAuth 2.0 client credentials. Tokens are cached and refreshed automatically. Live offers (availability and prices), room types, rates, and rate plans; booking is a hand-off to the property's booking link. Apaleo official site ↗

ARI only. Maison quotes availability and prices from Apaleo's offers and shares the property's booking link. Reservations are not created in chat.

Supported features

FeatureSupportedNotes
Hotel availabilityLive offers per room type and rate plan: units available, the stay total, per-night prices, fees, city taxes, and cancellation terms in one call
Room typesUnit groups: names, descriptions, occupancy
Room ratesNightly rates and stay restrictions for a rate plan (up to 31 nights per call)
Rate plansScoped to the configured property
List / get reservationsOperator-only listing; a guest's own reservation needs verification
Create reservationNot part of ARI 1.0 — guests are directed to the property's booking link
Payment link

Setup steps

  1. Create an application in the Apaleo Developer Portal

    Go to developer.apaleo.com and sign in with your Apaleo account. Create a new OAuth application with the grant type client_credentials. After creation, copy the clientId and clientSecret.

    Apaleo uses OAuth 2.0 with HTTP Basic authentication — the client ID and secret are combined as base64(clientId:clientSecret) in the authorization header. Maison handles this automatically; you only need to provide the raw values.
  2. Find your property ID

    In the Apaleo Management Console, navigate to Properties. The property ID is the short alphanumeric code shown alongside the property name (for example, MH-GRAND).

    One Apaleo account can hold several hotels. Every Maison client is one property: create a separate integration, with its own property ID, for each hotel the account manages.
  3. Create the integration in the business console

    Open the business console, select the client, and go to Settings → Integrations. Choose Add integration, type Property Management System, provider Apaleo. Enter the client ID, the client secret, and the property ID, select the tool access, then click Save. OAuth tokens are fetched on first use and refreshed automatically.

  4. Test it

    Ask the concierge for a room on a near-future date. A list of room types with prices confirms the property is connected; an answer of "no availability" for dates the property has open is a sign the property ID points at the wrong hotel.

Available tools

9 tools are available for Apaleo. The concierge calls them on a guest's behalf during a conversation; which are enabled is set per property, so you only turn on what you want it to be able to do.

Enabled by default (5)

On as soon as the integration is connected, with nothing else to configure.

ToolWhat it does
apaleo_get_offersCheck availability and prices for a stay — THE tool for 'do you have rooms for…', 'any availability this weekend?', 'how much is a room on…', and 'I'd like to book two nights'. Give it arrival (check-in), departure (check-out), and number of adults; it returns one offer per room type × rate plan with availableUnits, the total stay price, per-night breakdown, extra fees, city taxes, and the cancellation/no-show policy. Dates in YYYY-MM-DD format. An empty offers list means NO availability for those dates — not an error; say so and suggest other dates instead of retrying. Quote totalGrossAmount as the STAY TOTAL and always name the currency; the per-night prices are in timeSlices. Room descriptions come from the unit groups tool. When something is available and no booking tool is offered, guide the guest to the property's booking link with the room type and rate you quoted; if a create booking tool IS available, pass each night's ratePlan.id into it. Set includeUnavailable=true to see offers blocked by restrictions (validationMessages explains why).
apaleo_get_propertiesRetrieve this hotel's property record — name, description, address, time zone, and currency. Use it for questions about the hotel itself (location, address, currency). The property is pre-configured. NOTE: this returns the property, not room types — for the room-type catalog use the unit groups tool.
apaleo_get_rate_plan_ratesGet the nightly rates (price + stay restrictions) for ONE rate plan over a date range. ratePlanId is REQUIRED — obtain it from the rate plans tool first; never guess it. from and to are REQUIRED, plain YYYY-MM-DD dates (e.g. 2026-09-01); to is the check-out date and is not itself a night. Each returned rate carries the nightly price and restrictions (minLengthOfStay, maxLengthOfStay, closed, closedOnArrival, closedOnDeparture) — use the restrictions to explain why a stay cannot be booked. For a priced quote of a whole stay across all room types use the offers tool instead.
apaleo_get_rate_plansRetrieve the property's rate plans — plan name, description, booking channels, guarantee type, cancellation policy, and the room type each plan sells. Use this to answer questions about rate options or cancellation terms, and to obtain the ratePlanId needed by the rate plan rates tool for nightly prices and stay restrictions. For a priced quote of an actual stay use the offers tool instead.
apaleo_get_unit_groupsRetrieve the property's room-type catalog (Apaleo 'unit groups') — name, description, maximum occupancy, and how many units belong to each type. Use this to answer 'what types of rooms do you have?', 'describe your rooms', or to compare room options. This is the genuine room-type catalog; the properties tool returns the hotel, not room types. For availability and prices on specific dates use the offers tool.

Available on request (4)

Off by default. Ask Maison to enable any of these for your property — several change data in your Apaleo account, so they are opt-in rather than assumed.

ToolWhat it does
apaleo_get_reservationFetch one reservation's full record — status, stay dates, check-in/out times, guest contact details, unit, rate plan, totals, balance, and cancellation fee. Use this when a verified guest asks about their booking. Requires the Apaleo reservation ID (e.g. XPGMSXGF-1). For rooms available to the reservation use the reservation units tool.
apaleo_get_reservation_unitsList the units (rooms) available to a specific reservation — useful when discussing a room move or upgrade for an existing booking. Requires the Apaleo reservation ID. For the reservation record itself (status, dates, guest, totals) use the get reservation tool instead.
apaleo_get_reservationsOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. List the property's reservations, optionally filtered by a date window (dateFilter chooses which date the from/to window applies to). Dates in plain YYYY-MM-DD format (e.g. 2026-09-01). For a single guest's reservation use the get reservation tool instead.
apaleo_get_unit_availabilityOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. List the physical units (individual rooms) free at the property for a date range, with each unit's housekeeping condition — a room-level inventory check for staff. For a guest's 'do you have rooms for…' or 'how much is a room…' use the offers tool, which answers availability AND price per room type. Dates MUST be ISO 8601 UTC instants WITHOUT fractional seconds, format YYYY-MM-DDTHH:mm:ssZ (e.g. 2026-09-01T00:00:00Z) — Apaleo rejects fractional seconds and plain dates on this endpoint. An empty units array means no unit is free for those dates — not an error.

Not yet certified (32)

Built and working against the Apaleo API, but Maison is not yet certified with Apaleo to use them in production, so they cannot be enabled today. Listed so you can see what is coming rather than discover the gap when you ask for it.

ToolWhat it does
apaleo_add_booking_reservationsAdd one or more reservations (rooms) to an EXISTING booking — use when a verified guest wants another room on the same booking. Same contract as creating a booking: get offers first, confirm the total price, then pass one timeSlice per night with the chosen offer's ratePlan.id. NEVER retry this call after a timeout or unclear failure — the rooms may already have been added; check with the get booking tool instead.
apaleo_add_reservation_city_taxOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Add the city tax to a reservation it was previously removed from. NEVER retry after a timeout.
apaleo_amend_reservationAmend the stay details (dates, occupancy, rate plans) of an existing reservation. Chain: (1) call the reservation offers tool with the desired changes, (2) have the guest confirm the new total, (3) amend with one timeSlice per night carrying the offered ratePlan ids. Dates in YYYY-MM-DD format. A 'Confirmed' reservation can change everything; an 'InHouse' reservation only future nights; 'CheckedOut' or 'Canceled' cannot be amended. NEVER retry this call after a timeout or unclear failure — the amendment may already have been applied; check with the get reservation tool instead.
apaleo_assign_reservation_specific_unitOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Assign a SPECIFIC unit (room) to a 'Confirmed' or 'InHouse' reservation — fails if the unit is not available. Get candidate unit ids from the reservation units tool. Dates in YYYY-MM-DD format (defaults to the whole stay). NEVER retry after a timeout — check the assignment with the get reservation tool instead.
apaleo_assign_reservation_unitOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Auto-assign an available unit (room) to a 'Confirmed' or 'InHouse' reservation. Optionally restrict by housekeeping condition. Returns the assigned unit per time slice. To pick a specific room use the assign specific unit tool. NEVER retry after a timeout — check the assignment with the get reservation tool instead.
apaleo_book_reservation_serviceBook an extra service (add-on) onto an existing reservation. Chain: (1) call the reservation service offers tool to find the serviceId and price, (2) confirm the price with the guest, (3) book it. The service is delivered on its default dates; count defaults to the service's pricing unit (e.g. one per person for breakfast). NEVER retry this call after a timeout or unclear failure — check with the reservation services tool instead.
apaleo_cancel_reservationCancel a reservation. Only works while the reservation is 'Confirmed' and the arrival is in the future. BEFORE cancelling: fetch the reservation with the get reservation tool, tell the guest the cancellation fee that applies, and get their explicit confirmation. NEVER retry this call after a timeout or unclear failure — verify the status with the get reservation tool instead.
apaleo_checkin_reservationOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Check in a 'Confirmed' reservation that has a unit assigned — status becomes 'InHouse'. Assign a unit first if needed. NEVER retry after a timeout — verify the status with the get reservation tool instead.
apaleo_checkout_reservationOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Check out an 'InHouse' reservation — status becomes 'CheckedOut' and open charges are posted to the folio. NEVER retry after a timeout — verify the status with the get reservation tool instead.
apaleo_create_bookingCreate a NEW booking with one or more reservations (rooms). Chain: (1) call the offers tool for the guest's dates, (2) have the guest confirm a summary showing the TOTAL stay price and cancellation policy, (3) create the booking with one timeSlice per night, each carrying the chosen offer's ratePlan.id, and channelCode "Direct". The booker is the person paying/responsible; set primaryGuest per reservation when it differs. Returns the booking id and one reservation id per room — quote the reservation id to the guest as their confirmation reference. NEVER retry this call after a timeout or unclear failure — the booking may already exist; check with the reservations list tool instead.
apaleo_get_blockOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Fetch one group inventory block with its per-night blocked/picked unit counts. Read-only: blocks are managed in Apaleo, never through Maison.
apaleo_get_blocksOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. List the property's group inventory blocks — status, room type, rate plan, window, and pick-up. Read-only: blocks are managed in Apaleo, never through Maison. Dates in YYYY-MM-DD format.
apaleo_get_bookingFetch one booking with all its reservations — booker contact details, comments, and a summary of every room (status, dates, occupancy, room type, rate plan, total). Use when a verified guest asks about a multi-room booking; for a single reservation use the get reservation tool. Requires the Apaleo booking ID (e.g. XPGMSXGF — the part before the dash in a reservation ID).
apaleo_get_booking_sourcesList the source values Apaleo accepts on channel-managed bookings (e.g. Hotels.com, Orbitz). Rarely needed in guest conversations — chat bookings use the Direct channel, which needs no source.
apaleo_get_bookingsOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. List bookings, filtered by a reservation id or a free-text search over booker name/email. For a known booking use the get booking tool; for reservations use the reservations list.
apaleo_get_folioFetch one folio (bill) in full — every charge, payment, and allowance (goodwill credit) with amounts, plus the balance. Use when a verified guest asks what is on their bill or disputes a charge. Get the folio id from the folios list tool. Amounts are gross (tax included); always name the currency.
apaleo_get_foliosList the folios (bills) of one or more reservations — folio type, status, and current balance. Use when a verified guest asks about their bill or outstanding balance; fetch full charges with the get folio tool. A negative balance means the guest has paid more than was charged so far.
apaleo_get_groupOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Fetch one group booking with its blocks — booker contact, comments, and each block's room type, window, and blocked/picked counts.
apaleo_get_groupsOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. List the property's group bookings (weddings, conferences), filtered by a date window or free-text search over group name and booker. Dates in YYYY-MM-DD format.
apaleo_get_offer_indexGet a calendar of nightly offers (availability + per-occupancy prices + restrictions) for ONE rate plan across a date range. Use for 'what is your cheapest night in September?' or 'when do you next have availability?' questions that a single-stay quote cannot answer. Dates in YYYY-MM-DD format. Prices are PER NIGHT (quote price.afterTax with its currency); use the restrictions to explain why a night cannot be booked. For a full stay quote use the offers tool.
apaleo_get_rate_plan_offersGet offers for ONE specific rate plan over a stay — use when the guest has already chosen a rate plan (e.g. from the rate plans tool or a previous offers call) and wants an exact quote for their party size. Dates in YYYY-MM-DD format. For comparing all room types and rate plans use the offers tool instead. An empty response means the plan is not bookable for those dates — not an error.
apaleo_get_reservation_offersCalculate offers for AMENDING an existing reservation — the quote step before the amend reservation tool. Pass the new stay details (dates and/or occupancy); each returned offer carries the new total and per-night rate plans to feed into the amend call. Dates in YYYY-MM-DD format. Requires the Apaleo reservation ID. Quote the new total to the guest before amending.
apaleo_get_reservation_service_offersGet the extra services (add-ons) that can be booked onto an existing reservation, with prices — the quote step before the book reservation service tool. Requires the Apaleo reservation ID. An empty response means no extras are available — not an error.
apaleo_get_reservation_servicesList the extra services already booked on a reservation (breakfast, parking, …) with their delivery dates and prices. Use when a verified guest asks what extras are on their booking, or before removing a service (the serviceId here feeds the remove tool). Requires the Apaleo reservation ID.
apaleo_get_service_offersGet bookable extra services (add-ons like breakfast, parking, spa) for a stay on a specific rate plan, with prices. Use when a guest asks what extras are available or how much breakfast costs. Dates in YYYY-MM-DD format. The ratePlanId comes from the offers or rate plans tool. For extras on an EXISTING reservation use the reservation service offers tool instead.
apaleo_lock_reservation_unitOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Lock the currently assigned unit(s) of a 'Confirmed' or 'InHouse' reservation so they cannot be reassigned or unassigned. NEVER retry after a timeout.
apaleo_noshow_reservationOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Mark a 'Confirmed' reservation whose arrival date has passed as a no-show — status becomes 'NoShow' and the no-show fee applies. NEVER retry after a timeout — verify the status with the get reservation tool instead.
apaleo_remove_reservation_city_taxOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Remove the city tax from a reservation before the stay (e.g. business travel exemptions). NEVER retry after a timeout.
apaleo_remove_reservation_serviceRemove an extra service from a reservation. A service cannot be removed if it is mandatory for the rate plan, already posted to the folio, or its delivery date is in the past. Get the serviceId from the reservation services tool. NEVER retry this call after a timeout or unclear failure — check with the reservation services tool instead.
apaleo_revert_checkin_reservationOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Reverse the check-in of a reservation (undo an accidental check-in) — status returns to 'Confirmed'. NEVER retry after a timeout — verify the status with the get reservation tool instead.
apaleo_unassign_reservation_unitsOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Unassign the units from all time slices of a reservation (no-op when nothing is assigned; fails for 'CheckedOut'). NEVER retry after a timeout — check with the get reservation tool instead.
apaleo_unlock_reservation_unitOPERATOR-GRADE: never use in guest conversations unless explicitly instructed. Unlock a reservation's previously locked unit assignment so it can be reassigned or unassigned again. NEVER retry after a timeout.