Booking Holdings · Schema

AccommodationsSearchProductOutput

Details product information. It requires `{"extras":["products"]}`.

AccommodationsAirlinesCar RentalsHospitalityHotelsRestaurantsTravel

Properties

Name Type Description
id string Unique ID of the product.
bundle integer The bundle ID of the product comprising of value added products.
children array The ages of the children allocated to this product.
deal objectnull This specifies the deal tagging for the product.
inventory object
number_available_at_this_price integer Number of rooms available at this price.
number_of_adults integer The number of adults allocated to this product.
policies object The policies for this product.
price object The price components of this product. 'base' and 'extra_charges' are returned only when explicitly requested (via 'extras=extra_charges').
room integer A signed integer number that uniquely identifies an accommodation property room. The full list can be obtained by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accom
third_party_inventory boolean Boolean value is "true" if the product is facilitated by a Booking.com partner company and "false" otherwise.
View JSON Schema on GitHub

JSON Schema

demand-api-accommodations-search-product-output-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/booking-holdings/refs/heads/main/json-schema/demand-api-accommodations-search-product-output-schema.json",
  "title": "AccommodationsSearchProductOutput",
  "description": "Details product information. It requires `{\"extras\":[\"products\"]}`.",
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique ID of the product.",
      "type": "string"
    },
    "bundle": {
      "description": "The bundle ID of the product comprising of value added products.",
      "type": "integer"
    },
    "children": {
      "description": "The ages of the children allocated to this product.",
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 17
      }
    },
    "deal": {
      "description": "This specifies the deal tagging for the product.",
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "discount_percentage": {
          "description": "Discount percentage of the applied deal.",
          "type": "integer",
          "minimum": 1
        },
        "public_price": {
          "description": "Original price of this product, before applying any discounts.",
          "type": "number",
          "format": "double"
        },
        "tags": {
          "description": "The tags of all the applied deals.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "black_friday",
              "limited_time_deal",
              "logged_in_deal",
              "mobile_rate",
              "seasonal_deal"
            ]
          }
        }
      }
    },
    "inventory": {
      "type": "object",
      "properties": {
        "third_party": {
          "type": "boolean",
          "description": "Boolean value is \"true\" if the product is facilitated by a Booking.com partner company and \"false\" otherwise."
        },
        "type": {
          "description": "Type of inventory - either net or sell rates.",
          "type": "string",
          "enum": [
            "net",
            "sell"
          ]
        }
      }
    },
    "number_available_at_this_price": {
      "description": "Number of rooms available at this price.",
      "type": "integer",
      "minimum": 1,
      "nullable": true
    },
    "number_of_adults": {
      "description": "The number of adults allocated to this product.",
      "type": "integer",
      "minimum": 1
    },
    "policies": {
      "description": "The policies for this product.",
      "type": "object",
      "properties": {
        "cancellation": {
          "description": "The cancellation policy for this product.",
          "type": "object",
          "properties": {
            "free_cancellation_until": {
              "description": "Until when the order for this product can be cancelled for free.",
              "type": [
                "string",
                "null"
              ],
              "format": "date-time"
            },
            "type": {
              "description": "The cancellation policy applicable to this product: \"free_cancellation\" allows a period for free cancellation, \"non_refundable\" means immediate loss of total amount, \"special_conditions\" means partly refundable.",
              "type": "string",
              "enum": [
                "free_cancellation",
                "non_refundable",
                "special_conditions"
              ]
            }
          }
        },
        "meal_plan": {
          "description": "The meal plan policy for this product.",
          "type": "object",
          "properties": {
            "meals": {
              "description": "The meals included in the meal plan.",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "breakfast",
                  "dinner",
                  "lunch"
                ]
              }
            },
            "plan": {
              "description": "The meal plan included in this product.",
              "type": "string",
              "enum": [
                "all_inclusive",
                "breakfast_included",
                "full_board",
                "half_board",
                "no_plan"
              ]
            }
          }
        },
        "payment": {
          "description": "Payment terms and conditions for this product.",
          "type": "object",
          "properties": {
            "prepayment_required": {
              "description": "Whether prepayment is required for this product.",
              "type": "boolean"
            },
            "timings": {
              "description": "The payment timings supported by this product.",
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "pay_at_the_property",
                  "pay_online_later",
                  "pay_online_now"
                ]
              }
            }
          }
        }
      }
    },
    "price": {
      "description": "The price components of this product. 'base' and 'extra_charges' are returned only when explicitly requested (via 'extras=extra_charges').",
      "type": "object",
      "properties": {
        "base": {
          "description": "The base price. It does not include any extra charges.",
          "type": "number",
          "format": "double"
        },
        "book": {
          "description": "The display price that must be shown to the traveller under local booker protection laws. This price includes the base accommodation cost and all charges that are legally required to be part of the displayed price. Equivalent to base + included charges.",
          "type": "number",
          "format": "double"
        },
        "extra_charges": {
          "description": "The charge breakdown. Includes taxes and fees.",
          "type": "object",
          "properties": {
            "conditional": {
              "description": "Charges that might apply under a specific condition.",
              "type": "array",
              "items": {
                "description": "Charges that might apply under a specific condition.",
                "type": "object",
                "properties": {
                  "charge": {
                    "description": "A signed integer number that uniquely identifies an accommodation charge type. Examples of charges are: VAT, City Tax, etc. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/accommodations/accommodations/constants\" target=\"_blank\">accommodations/constants</a>.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "condition": {
                    "description": "A signed integer number that uniquely identifies the condition ID. Find the full list in the <a href=\"/demand/docs/accommodations/prices-accommodations\" target=\"_blank\">Pricing guidelines</a>.",
                    "type": [
                      "integer",
                      "null"
                    ],
                    "minimum": 0
                  },
                  "mode": {
                    "description": "The mode of this charge. Determines how the price is calculated.",
                    "type": "string",
                    "enum": [
                      "calculated_amount",
                      "percentage",
                      "per_day",
                      "per_night",
                      "per_person_per_day",
                      "per_person_per_night",
                      "per_person_per_stay",
                      "per_stay"
                    ]
                  },
                  "percentage": {
                    "description": "The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'.",
                    "type": "number",
                    "nullable": true
                  },
                  "total_amount": {
                    "description": "The total price for this charge.",
                    "type": "number"
                  },
                  "unit_amount": {
                    "description": "The price per unit for this charge. Only applicable when 'mode' is 'per_day', 'per_night', 'per_person_per_day', 'per_person_per_night', or 'per_person_per_stay'.",
                    "type": "number",
                    "nullable": true
                  }
                }
              }
            },
            "excluded": {
              "description": "Charges not included in 'book'.",
              "type": "array",
              "items": {
                "description": "All non-conditional charges that will necessarily be paid",
                "type": "object",
                "properties": {
                  "charge": {
                    "description": "A signed integer number that uniquely identifies an accommodation charge type. Examples of charges are: VAT, City Tax, etc. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/accommodations/accommodations/constants\" target=\"_blank\">accommodations/constants</a>.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "mode": {
                    "description": "The mode of this charge. Determines how the price is calculated.",
                    "type": "string",
                    "enum": [
                      "calculated_amount",
                      "incalculable",
                      "percentage",
                      "per_day",
                      "per_night",
                      "per_person_per_day",
                      "per_person_per_night",
                      "per_person_per_stay",
                      "per_stay"
                    ]
                  },
                  "percentage": {
                    "description": "The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'.",
                    "type": "number",
                    "nullable": true
                  },
                  "total_amount": {
                    "description": "The total price for this charge.",
                    "type": "number"
                  },
                  "unit_amount": {
                    "description": "The price per unit for this charge. Only applicable when 'mode' is 'per_day', 'per_night', 'per_person_per_day', 'per_person_per_night', or 'per_person_per_stay'.",
                    "type": "number",
                    "nullable": true
                  }
                }
              }
            },
            "included": {
              "description": "Charges included in 'book'.",
              "type": "array",
              "items": {
                "description": "All non-conditional charges that will necessarily be paid",
                "type": "object",
                "properties": {
                  "charge": {
                    "description": "A signed integer number that uniquely identifies an accommodation charge type. Examples of charges are: VAT, City Tax, etc. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/accommodations/accommodations/constants\" target=\"_blank\">accommodations/constants</a>.",
                    "type": "integer",
                    "minimum": 0
                  },
                  "mode": {
                    "description": "The mode of this charge. Determines how the price is calculated.",
                    "type": "string",
                    "enum": [
                      "calculated_amount",
                      "incalculable",
                      "percentage",
                      "per_day",
                      "per_night",
                      "per_person_per_day",
                      "per_person_per_night",
                      "per_person_per_stay",
                      "per_stay"
                    ]
                  },
                  "percentage": {
                    "description": "The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'.",
                    "type": "number",
                    "nullable": true
                  },
                  "total_amount": {
                    "description": "The total price for this charge.",
                    "type": "number"
                  },
                  "unit_amount": {
                    "description": "The price per unit for this charge. Only applicable when 'mode' is 'per_day', 'per_night', 'per_person_per_day', 'per_person_per_night', or 'per_person_per_stay'.",
                    "type": "number",
                    "nullable": true
                  }
                }
              }
            }
          }
        },
        "total": {
          "description": "The total price. Includes all extra charges.",
          "type": "number",
          "format": "double"
        }
      }
    },
    "room": {
      "description": "A signed integer number that uniquely identifies an accommodation property room. The full list can be obtained by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).",
      "type": "integer",
      "minimum": 1
    },
    "third_party_inventory": {
      "description": "Boolean value is \"true\" if the product is facilitated by a Booking.com partner company and \"false\" otherwise.",
      "type": "boolean"
    }
  }
}