Skip to content

Hotel Ads - Date-Specific Pricing

Updated: Jun 26, 2026

In a static hotel feed, you provide a single price for each hotel. This price can't vary based on check-in date, length of stay, or room type. To display more accurate prices in your ads based on these variables, use dynamic (date-specific) pricing to provide prices for individual combinations of date, room type, and length of stay. Once you upload the pricing data, you can use hotel template tags to display these prices in your ads.

Use batch upload room types and pricing data to share pricing details with Facebook.

See room and pricing parameters for an explanation of all parameters.

Batch upload room types and pricing data

Batch upload consists of two parts:

If you use batch upload, limit uploads to 50 MB per file, approximately 50,000 items in a file. Make more frequent, smaller updates for pricing variables.


Upload room types

Upload one or more files with room types using the Hotel Rooms Batch API.

Note: If you don't have different room types, you can skip this step.

curl \
  -X POST \
  -F file=@hotel_rooms_data_xml.xml \
  -F "access_token=<ACCESS_TOKEN>" \
  https://graph.facebook.com/<API_VERSION>/<PRODUCT_CATALOG_ID>/hotel_rooms_batch

Room types file format

You can provide the room types in XML format; see sample⁠.

You should identify each hotel by <property> in the <PropertyDataSet> XML node and provide room type by <RoomData>. Your file must begin with a <?xml declaration tag.

For more details on updating and deleting room types through batch API, see Hotel Rooms, Batch Reference.


Upload pricing

Upload one or more files with pricing details using the Pricing Variable Batch API. You can upload pricing details with or without room types.

Note: If you only have a very small number of rooms, you can also use the Hotel Room API to create room types and setup pricing.

curl \
  -X POST \
  -F file=@pricings_data_xml.xml \
  -F "access_token=<ACCESS_TOKEN>" \
  https://graph.facebook.com/<API_VERSION>/<PRODUCT_CATALOG_ID>/pricing_variables_batch

Pricing file format

Before you upload pricing, make sure the hotels for these rooms already exist in the catalog. You can provide pricing variables in this format:

File Format and SampleDescription
XML with room typesXML Sample⁠
XML without room typesXML Sample⁠

For more details on how to update and delete pricing variables through batch, see Pricing Variable Batch Reference.

Room and pricing parameters

Field Name and TypeDescription
Property type: stringRequired. A unique identifier of the hotel provided by advertiser as hotel_id in the hotel feed.
RoomID type: stringRequired. A unique identifier of the room type provided by advertiser.
Name type: stringRequired. Name of the hotel room type.
Description type: stringRequired. Description of the hotel room type.
BasePrice type: floatRequired. The lowest price of the hotel room. You should include the currency. Example: 159 USD
URL type: stringLink to the hotel room page.
CheckinDate type: dateRequired. Check in date for the price. You can specify up to 180 days from the date the feed is uploaded. Use ISO‑8601 (YYYY‑MM‑DD).
Nights type: intRequired. Number of nights staying in the hotel for the price. Max value: 14
Baserate type: floatRequired. Price based on checkin_date and length_of_stay. Example: 180
Tax type: floatRequired. Tax value for the stay.
OtherFees type: floatRequired. Applicable fee for the stay.
SalePrice type: floatThe discounted price if applicable. Example: 159
SalePriceTax type: floatTax value for the discounted price.

Unofficial mirror for reference/search purposes. All content originates from developers.facebook.com — see the source link at the top of each page. Machine-readable indexes: llms.txt · llms-full.txt · About