Availability, Rates, and Inventory (ARI) is a pricing delivery mode that
controls nightly rates, availability, and inventory, and provides constraints on
how these can be combined. ARI also provides flexibility to include taxes, fees,
and promotions.

Unlike the itinerary-based pricing [delivery
modes](https://developers.google.com/hotels/hotel-prices/dev-guide/delivery-mode), Pull and Changed
Pricing, ARI feeds aren't queried for specific prices or itineraries. Instead,
you push messages when your pricing model has new or changed data, such as
changes to rate details, restrictions, and availability.

## Benefits

ARI offers the following benefits:

- **Bandwidth efficiency**: Increases bandwidth efficiency by reducing the
  volume of data that needs to be transmitted. By sending nightly ARI data and
  only incremental changes, Google can compute prices and updates for a wide
  range of advance purchase and length of stay values.

- **Price accuracy**: Improves price accuracy by using a push-on-change event
  model to give live updates.

- **Greater price coverage**: Achieves a higher price coverage (number of
  itineraries with prices) by using granular data that is combined into various
  itineraries.

- **Flexibility**: Enables greater flexibility with offering promotions and
  packages.

- **Ease of Use**: Transmits data in a way that is aligned with how it is
  stored on your system, avoiding the need to compute or cache prices for
  many itineraries.

## Request message types

ARI messages sent to Google are termed as ARI "request" messages. Google
subsequently returns "response" messages indicating success or failure.

ARI follows the standard protocols of `OpenTravel Alliance (OTA)` for some of
the main message types for defining availability and inventory.

> [!IMPORTANT]
> **Key Point:** You must send the four message types---transaction, rate, inventory, and availability---before pricing is available. It is recommended that you limit the size of ARI messages specifically `<OTA_HotelRateAmountNotifRQ>` to 5MB with a limit of 400 files per second upload rate.

ARI uses the following request messages:

- [`Transaction` (Property Data)](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-property).
  Defines the room type and package (rate plan) information.

- [`OTA_HotelRateAmountNotifRQ`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-rate).
  Defines the per-date or LOS-based occupancy rate amounts per product (room
  type and rate plan combination) for specific date ranges.

- [`OTA_HotelAvailNotifRQ`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-avail).
  Defines availability and restrictions based on room type and rate plans.
  Inventory can also be updated using this message, but
  `OTA_HotelInvCountNotifRQ` is preferred.

- [`OTA_HotelInvCountNotifRQ`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-inv).
  Defines the physical room inventory or number of rooms available to be sold.

- [`TaxFeeInfo`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-tax).
  (Optional) Defines per-property taxes and fees. This message isn't required
  if `AmountAfterTax`is specified in the `OTA_HotelRateAmountNotifRQ` message.

- [`Promotions`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-promotions).
  (Optional) Defines promotional rates for certain bookings, stays, and
  users.

- [`RateModifications`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-rate-modifications).
  (Optional) Defines rate modification rules for certain bookings, stays, and
  users.

- [`ExtraGuestCharges`](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-extra-guest-charges).
  (Optional) Defines how rates should be configured for children and
  additional adults.

Each message contains a subset of information that Google uses to compute the
prices and availability displayed to users when they search for your properties
with specific check-in and check-out dates and desired occupancy.

For more information about ARI, refer to the
[XML Reference](https://developers.google.com/hotels/hotel-prices/xml-reference/ari-overview).

## Push messages

To update ARI and property information, send the associated messages whenever
data changes in your system.

> [!IMPORTANT]
> **Key Point:** Message data will be merged with data that has already been pushed. Therefore, you only need to push new or changed data.

Use the following guidelines when sending messages:

- Use the self-serve tool in the
  [Hotel Center Price Settings page](https://hotelcenter.google.com/prices/settings)
  to add or update your IP addresses in our system.

- Use the following base path for the endpoint:

  - `https://www.google.com` or `Host: www.google.com Port: 443`
- Send messages using the `HTTP POST` method.

- Set the `Content-Type` header to `application/xml`.

- There is an account-level maximum update rate of 400 messages per second.
  If you exceed this limit, an error code of
  [6032](https://developers.google.com/hotels/hotel-prices/dev-guide/feed-status-errors#6032) is returned.

- Use the following paths depending on the data being updated:

  > - `Transaction` (Property Data): `/travel/hotels/uploads/property_data`
  > - `OTA_HotelRateAmountNotifRQ`: `/travel/hotels/uploads/ota/hotel_rate_amount_notif`
  > - `OTA_HotelAvailNotifRQ`: `/travel/hotels/uploads/ota/hotel_avail_notif`
  > - `OTA_HotelInvCountNotifRQ`: `/travel/hotels/uploads/ota/hotel_inv_count_notif`
  > - `TaxFeeInfo`: `/travel/hotels/uploads/taxes`
  > - `Promotions`: `/travel/hotels/uploads/promotions`
  > - `RateModifications`: `/travel/hotels/uploads/rate_modifications`
  > - `ExtraGuestCharges`:`/travel/hotels/uploads/extra_guest_charges`

For each request message received, Google will respond with an `HTTP 200 OK`
if the connection to the server succeeded and include a body with a response
message indicating whether updates were applied successfully or encountered
warnings or errors. If Google responds with an HTTP error code, resend the
message. If the HTTP response body contains warnings or errors, they should be
fixed before resending the message. You can also view issues encountered for
specific messages on the Feed Status page in [Hotel Center](https://hotelcenter.google.com).

## Live on Google (LoG)

Live on Google (LoG) lets you display your hotels on Google websites.
Since the default LoG value for a hotel is `true`, any new hotels will
automatically be displayed on Google.

Use LoG to turn your properties on and off for ads and free booking links in
your Hotel Center account, regardless of the status of Google Ads or whether the
property has rates on Google.

> [!IMPORTANT]
> **Key Point:** LoG is available for both Hotels and Vacation Rentals.

There are two ways to set a hotel's LoG value: the Travel Partner API or the Hotel Center properties page. You can change the status of your existing properties in the **Live on Google** column on the [Hotel Center properties
page](https://hotelcenter.google.com/properties), or if you want to change the status of a large number of properties at the same time, you can use the [Travel Partner API](https://developers.google.com/hotels/hotel-prices/api-reference/Usage).

For more details about LoG, refer to the [Hotel Center
Help](https://support.google.com/hotelprices/answer/10981242).

Using the Travel Partner API, you can do the following:

- View the status of your properties through the Hotel Center or use the
  `hotelViews.list` endpoint.

- Retrieve a list of all your hotels displayed on Google by using the `filter`
  parameter with `liveOnGoogle = TRUE` in `hotelViews.list` endpoint.

- Get a summary of the properties for a specific account including the number
  of properties live on Google by using `hotelViews.summary`.

For more information about how to set LoG using the API, refer to the
[`hotelViews.list`
article](https://developers.google.com/hotels/hotel-prices/api-reference/rest/v3/accounts.hotelViews/list)
and the [API Reference](https://developers.google.com/hotels/hotel-prices/api-reference/Usage).