{
  "openapi": "3.1.0",
  "info": {
    "title": "Booking.com Demand API",
    "version": "3.2-Beta",
    "summary": "**Beta version – experimental endpoints**\n\nThis API version is **currently in Beta** and is offered to a limited set of pilot affiliate partners. Access is granted on request via your Booking.com account manager.\n\n> ⚠️ **Important:** This API is **under active development**. Endpoints, request/response structures, and functionality may change without prior notice. Specifications are updated frequently during the pilot phase.\n\n- Consult the [Changelog](/demand/docs/whats-new/changelog) for the latest updates.\n- All requests **require authentication** using your Affiliate ID and token credentials."
  },
  "servers": [
    {
      "url": "https://demandapi.booking.com/3.2",
      "description": "Production environment – use for live integrations."
    },
    {
      "url": "https://demandapi-sandbox.booking.com/3.2",
      "description": "Sandbox environment – use for testing and validation."
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Accommodations",
      "x-displayName": "Accommodation",
      "description": "This collection includes endpoints related to **stays** within the connected trip experience. <br/>Use these endpoints to:<br/>- Search for hotels, apartments, and other accommodation types.<br/>- Check real-time availability and pricing.<br/>- Retrieve property details and guest reviews."
    },
    {
      "name": "Cars",
      "x-displayName": "Car rentals",
      "description": "This collection includes endpoints related to **car rental** services within the connected trip experience.<br/>Use these endpoints to:<br/>- Search and retrieve car details.<br/>- Retrieve car specifications, depot locations, and supplier information."
    },
    {
      "name": "Common/autocomplete",
      "x-displayName": "Autocomplete",
      "description": "Use this endpoint to retrieve ranked suggestions based on a free-text query. Designed for real-time \"as-you-type\" autocomplete experiences."
    },
    {
      "name": "Common/locations",
      "x-displayName": "Locations",
      "description": "This collection provides standardised **location identifiers** for geographical entities such as airports, countries, cities, and regions. <br/>Use the returned identifiers when constructing requests across all travel services API collections, including both accommodation and car rental endpoints."
    },
    {
      "name": "Common/payments",
      "x-displayName": "Payments",
      "description": "Provides generic **payment-related identifiers**, including supported currency codes, payment cards, and relevant metadata for booking flows.<br/>- Use the returned identifiers when constructing requests across all travel services API collections, including both accommodation and car rental endpoints."
    },
    {
      "name": "Common/languages",
      "x-displayName": "Languages",
      "description": "Use this endpoint to retrieve a list of supported IETF language tag codes.<br/>- You can use these codes when constructing requests across all travel services API collections, including both accommodation and car rental endpoints."
    },
    {
      "name": "Orders",
      "x-displayName": "Orders",
      "description": "This API collection enables **management of booking orders** within the Demand API.</br>Use these endpoints to:</br>- Preview and create new orders.</br>- Check order details.</br>- Cancel or modify existing orders.</br>This collection is required to integrate booking and order management functionality."
    },
    {
      "name": "Messages",
      "x-displayName": "Messages",
      "description": "This API collection enables two-way communication between guests and properties. Use these endpoints to send and receive messages, include attachments, follow conversations, and more."
    }
  ],
  "paths": {
    "/accommodations/search": {
      "post": {
        "summary": "Search",
        "description": "Use this endpoint to search for accommodations that match your specified criteria. <br/>By default, **the response returns the cheapest available product** for each accommodation.<br/><br/>When applying location filters such as country or region, results are ranked by Booking.com popularity (top picks) rather than price, with higher-ranked listings appearing first.",
        "operationId": "/accommodations/search",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/searchInput"
              },
              "example": {
                "booker": {
                  "country": "nl",
                  "platform": "desktop"
                },
                "checkin": "!START_DATE!",
                "checkout": "!END_DATE!",
                "city": -2140479,
                "extras": [
                  "extra_charges",
                  "products"
                ],
                "guests": {
                  "number_of_adults": 2,
                  "number_of_rooms": 1
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/searchOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 10004,
                      "currency": {
                        "accommodation": "EUR",
                        "booker": "EUR"
                      },
                      "deep_link_url": "booking://hotel/10004?affiliate_id=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!&mcid=10",
                      "price": {
                        "base": {
                          "accommodation_currency": 1081.49,
                          "booker_currency": 1081.49
                        },
                        "charges": [
                          {
                            "charge": 21,
                            "condition": null,
                            "included_in": {
                              "display": true
                            },
                            "total_amount": {
                              "accommodation_currency": 97.34,
                              "booker_currency": 97.34
                            }
                          },
                          {
                            "charge": 22,
                            "condition": null,
                            "included_in": {
                              "display": true
                            },
                            "total_amount": {
                              "accommodation_currency": 75.7,
                              "booker_currency": 75.7
                            }
                          },
                          {
                            "charge": 142,
                            "condition": null,
                            "included_in": {
                              "display": true
                            },
                            "total_amount": {
                              "accommodation_currency": 6,
                              "booker_currency": 6
                            }
                          }
                        ],
                        "display": {
                          "accommodation_currency": 1260.52,
                          "booker_currency": 1260.52
                        },
                        "total": {
                          "accommodation_currency": 1260.52,
                          "booker_currency": 1260.52
                        }
                      },
                      "products": [
                        {
                          "id": "1000420_95127794_2_0_0",
                          "bundle": null,
                          "children": [],
                          "deal": null,
                          "inventory": {
                            "third_party": false,
                            "type": "sell"
                          },
                          "number_of_adults": 2,
                          "policies": {
                            "cancellation": {
                              "free_cancellation_until": null,
                              "type": "non_refundable"
                            },
                            "meal_plan": {
                              "meals": [],
                              "plan": "no_plan"
                            },
                            "payment": {
                              "timings": [
                                "pay_at_the_property"
                              ]
                            }
                          },
                          "price": {
                            "base": {
                              "accommodation_currency": 1081.49,
                              "booker_currency": 1081.49
                            },
                            "charges": [
                              {
                                "charge": 21,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "mode": "percentage",
                                "percentage": 9,
                                "total_amount": {
                                  "accommodation_currency": 107.07,
                                  "booker_currency": 107.07
                                },
                                "unit_amount": null
                              },
                              {
                                "charge": 22,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": false
                                },
                                "mode": "percentage",
                                "percentage": 7,
                                "total_amount": {
                                  "accommodation_currency": 83.27,
                                  "booker_currency": 83.27
                                },
                                "unit_amount": null
                              },
                              {
                                "charge": 142,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "mode": "per_person_per_night",
                                "percentage": null,
                                "total_amount": {
                                  "accommodation_currency": 6,
                                  "booker_currency": 6
                                },
                                "unit_amount": {
                                  "accommodation_currency": 3,
                                  "booker_currency": 3
                                }
                              }
                            ],
                            "display": {
                              "accommodation_currency": 1260.52,
                              "booker_currency": 1260.52
                            },
                            "total": {
                              "accommodation_currency": 1260.52,
                              "booker_currency": 1260.52
                            }
                          },
                          "room": "1000425"
                        }
                      ],
                      "url": "https://www.booking.com/hotel/nl/conscious-the-tire-station.html?affiliate_id=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!&group_adults=2&no_rooms=1"
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": "..."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/availability": {
      "post": {
        "summary": "Availability",
        "description": "Use this endpoint to check real-time availability, prices, and charges for **up to 50 accommodation IDs**.\n\n- By default, only product availability and prices are returned.\n- Use the `extras` or `filters` parameters to retrieve additional details such as extra charges or payment information.\n\n**Mandatory fields**: `accommodations`, `booker`, `checkin`, `checkout`, and `guests`.",
        "operationId": "/accommodations/availability",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/availabilityInput"
              },
              "example": {
                "accommodations": [
                  10004
                ],
                "booker": {
                  "country": "nl",
                  "platform": "desktop"
                },
                "checkin": "!START_DATE!",
                "checkout": "!END_DATE!",
                "extras": [
                  "extra_charges"
                ],
                "filters": {
                  "meal_plan": "breakfast_included",
                  "cancellation_type": "free_cancellation"
                },
                "guests": {
                  "number_of_adults": 2,
                  "number_of_rooms": 1
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/availabilityOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 10004,
                      "currency": {
                        "accommodation": "EUR",
                        "booker": "EUR"
                      },
                      "deep_link_url": "booking://hotel/10004?affiliate_id=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!",
                      "products": [
                        {
                          "id": "1000420_358188572_2_0_0",
                          "bundle": null,
                          "deal": null,
                          "inventory": {
                            "third_party": false,
                            "type": "sell"
                          },
                          "maximum_occupancy": {
                            "adults": 2,
                            "children": null,
                            "total": 2
                          },
                          "number_available": 3,
                          "policies": {
                            "cancellation": {
                              "free_cancellation_until": "!START_DATE-2!T00:00:00+00:00",
                              "type": "free_cancellation",
                              "schedule": [
                                {
                                  "from": "now",
                                  "price": {
                                    "accommodation_currency": 0,
                                    "booker_currency": 0
                                  }
                                },
                                {
                                  "from": "!START_DATE-2!T00:00:00+00:00",
                                  "price": {
                                    "accommodation_currency": 1189.2,
                                    "booker_currency": 1189.2
                                  }
                                }
                              ]
                            },
                            "meal_plan": {
                              "meals": [],
                              "plan": "no_plan"
                            },
                            "payment": {
                              "timings": [
                                "pay_at_the_property"
                              ]
                            }
                          },
                          "price": {
                            "base": {
                              "accommodation_currency": 1189.2,
                              "booker_currency": 1189.2
                            },
                            "chargeable_online": {
                              "accommodation_currency": 1302.7,
                              "booker_currency": 1302.7
                            },
                            "charges": [
                              {
                                "charge": 21,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "mode": "percentage",
                                "percentage": 9,
                                "total_amount": {
                                  "accommodation_currency": 107.07,
                                  "booker_currency": 107.07
                                },
                                "unit_amount": null
                              },
                              {
                                "charge": 22,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": false
                                },
                                "mode": "percentage",
                                "percentage": 7,
                                "total_amount": {
                                  "accommodation_currency": 83.27,
                                  "booker_currency": 83.27
                                },
                                "unit_amount": null
                              },
                              {
                                "charge": 142,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "mode": "per_person_per_night",
                                "percentage": null,
                                "total_amount": {
                                  "accommodation_currency": 6,
                                  "booker_currency": 6
                                },
                                "unit_amount": {
                                  "accommodation_currency": 3,
                                  "booker_currency": 3
                                }
                              }
                            ],
                            "display": {
                              "accommodation_currency": 1385.97,
                              "booker_currency": 1385.97
                            },
                            "total": {
                              "accommodation_currency": 1385.97,
                              "booker_currency": 1385.97
                            }
                          },
                          "room": "1000420"
                        },
                        "..."
                      ],
                      "recommendation": {
                        "price": {
                          "base": {
                            "accommodation_currency": 1081.49,
                            "booker_currency": 1081.49
                          },
                          "chargeable_online": {
                            "accommodation_currency": 1260.52,
                            "booker_currency": 1260.52
                          },
                          "charges": [
                            {
                              "charge": 21,
                              "total_amount": {
                                "accommodation_currency": 97.34,
                                "booker_currency": 97.34
                              },
                              "condition": null,
                              "included_in": {
                                "display": true,
                                "chargeable_online": true
                              }
                            },
                            {
                              "charge": 22,
                              "total_amount": {
                                "accommodation_currency": 75.7,
                                "booker_currency": 75.7
                              },
                              "condition": null,
                              "included_in": {
                                "display": true,
                                "chargeable_online": true
                              }
                            },
                            {
                              "charge": 142,
                              "total_amount": {
                                "accommodation_currency": 6,
                                "booker_currency": 6
                              },
                              "condition": null,
                              "included_in": {
                                "display": true,
                                "chargeable_online": true
                              }
                            }
                          ],
                          "display": {
                            "accommodation_currency": 1260.52,
                            "booker_currency": 1260.52
                          },
                          "total": {
                            "accommodation_currency": 1260.52,
                            "booker_currency": 1260.52
                          }
                        },
                        "products": [
                          {
                            "id": "1000420_95127794_2_0_0",
                            "children": [],
                            "number_of_adults": 2,
                            "price": {
                              "base": {
                                "accommodation_currency": 1081.49,
                                "booker_currency": 1081.49
                              },
                              "chargeable_online": {
                                "accommodation_currency": 1260.52,
                                "booker_currency": 1260.52
                              },
                              "charges": [
                                {
                                  "charge": 21,
                                  "total_amount": {
                                    "accommodation_currency": 97.34,
                                    "booker_currency": 97.34
                                  },
                                  "condition": null,
                                  "included_in": {
                                    "display": true,
                                    "chargeable_online": true
                                  }
                                },
                                {
                                  "charge": 22,
                                  "total_amount": {
                                    "accommodation_currency": 75.7,
                                    "booker_currency": 75.7
                                  },
                                  "condition": null,
                                  "included_in": {
                                    "display": true,
                                    "chargeable_online": true
                                  }
                                },
                                {
                                  "charge": 142,
                                  "total_amount": {
                                    "accommodation_currency": 6,
                                    "booker_currency": 6
                                  },
                                  "condition": null,
                                  "included_in": {
                                    "display": true,
                                    "chargeable_online": true
                                  }
                                }
                              ],
                              "display": {
                                "accommodation_currency": 1260.52,
                                "booker_currency": 1260.52
                              },
                              "total": {
                                "accommodation_currency": 1260.52,
                                "booker_currency": 1260.52
                              }
                            }
                          }
                        ]
                      },
                      "url": "https://www.booking.com/hotel/nl/toren.html?aid=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!&no_rooms=1&group_adults=2"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/chains": {
      "post": {
        "summary": "Chains",
        "description": "Use this endpoint to retrieve a list of accommodation chains and their associated brands.\n\n A chain-branded accommodation is part of a larger corporate group and operates under a recognised brand. The returned information can be used to filter search results by chain or brand across other endpoints.\n\n- To obtain the full list of chains, call this endpoint with an empty request body.\n- The `id` values returned are the codes used as input and output in other API requests, ensuring consistency across your integration.\n\n **Example of chain:**  \"Radisson Hotel Group\" with brands such as \"Radisson Blu\" or \"Park Inn by Radisson.\"",
        "operationId": "/accommodations/chains",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 3,
                      "brands": [
                        {
                          "id": 1018,
                          "name": "Campanile"
                        },
                        "..."
                      ],
                      "name": "Louvre Hotels Group"
                    },
                    "..."
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/constants": {
      "post": {
        "summary": "Constants",
        "description": "Retrieve standardised codes and names for accommodation-related entities, such as facilities, room types, bed types, themes, and additional charges.\n\nThese constants are canonical identifiers that can be used to filter searches, populate reference data, or ensure consistency across other accommodation endpoints.\n\n- To fetch constants in multiple languages, provide IETF language tags (see common/languages).\n- Sending an empty request body returns all available constants.\n- Use the `constants` array to request only specific sections (e.g., `accommodation_facilities`, `bed_types`).",
        "operationId": "/accommodations/constants",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/input"
              },
              "example": {
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/constants_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": {
                    "accommodation_facilities": [
                      {
                        "id": 2,
                        "facility_type": 16,
                        "name": {
                          "en-gb": "Parking",
                          "zh-cn": "停车场"
                        }
                      },
                      "..."
                    ],
                    "accommodation_themes": [
                      {
                        "id": 1,
                        "name": {
                          "en-gb": "Apartments",
                          "zh-cn": "公寓"
                        }
                      },
                      "..."
                    ],
                    "accommodation_types": [
                      {
                        "id": 201,
                        "name": {
                          "en-gb": "Apartment",
                          "zh-cn": "公寓"
                        }
                      },
                      "..."
                    ],
                    "bed_types": [
                      {
                        "id": 1,
                        "description": {
                          "en-gb": "90-130 cm wide",
                          "zh-cn": "宽 90-130 厘米"
                        },
                        "description_imperial": {
                          "en-gb": "35-51 inches wide",
                          "zh-cn": "宽 35-51 英寸"
                        },
                        "name": {
                          "en-gb": "Single bed(s)",
                          "zh-cn": "单人床"
                        }
                      },
                      "..."
                    ],
                    "charge_types": [
                      {
                        "id": 0,
                        "name": {
                          "en-gb": "service charge",
                          "zh-cn": "服务费"
                        }
                      },
                      "..."
                    ],
                    "facility_types": [
                      {
                        "id": 1,
                        "name": {
                          "en-gb": "General",
                          "zh-cn": "综合设施"
                        }
                      },
                      "..."
                    ],
                    "review_scores": [
                      {
                        "maximum_score": 2.9,
                        "minimum_score": 2,
                        "name": {
                          "en-gb": "very poor",
                          "zh-cn": "非常差"
                        }
                      },
                      "..."
                    ],
                    "room_facilities": [
                      {
                        "id": 1,
                        "facility_type": 7,
                        "name": {
                          "en-gb": "Coffee/Tea maker",
                          "zh-cn": "沏茶/咖啡设备"
                        }
                      },
                      "..."
                    ],
                    "room_types": [
                      {
                        "id": 1,
                        "name": {
                          "en-gb": "Apartment",
                          "zh-cn": "公寓"
                        }
                      },
                      "..."
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/details": {
      "post": {
        "summary": "Details",
        "description": "Retrieve detailed information about accommodation properties that match your search criteria.\n\nYou must provide at least one of the following parameters: `accommodations`, `airport`, `city`, `country`, or `region`.\n\nUse the `extras` parameter to request additional information such as `facilities`, `photos`, `policies`, `rooms`, or `bundles`.\n\nKey points:\n- You can request data in multiple languages using IETF language tags.\n- This endpoint provides static information about properties; availability and pricing are retrieved via other endpoints.\n- Passing an empty `extras` array returns only the core property details.\n- Maximum 100 accommodation IDs can be queried in a single request.",
        "operationId": "/accommodations/details",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/detailsInput"
              },
              "example": {
                "accommodations": [
                  10004
                ],
                "extras": [
                  "bundles",
                  "description",
                  "facilities",
                  "payment",
                  "photos",
                  "policies",
                  "rooms"
                ],
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/detailsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 10004,
                      "accommodation_type": 204,
                      "brands": [],
                      "bundles": [
                        {
                          "id": 12345,
                          "value_adds": [
                            {
                              "type": "high_speed_internet",
                              "description": {
                                "en-gb": [
                                  "High speed internet throughout your stay."
                                ]
                              }
                            }
                          ]
                        }
                      ],
                      "checkin_checkout_times": {
                        "checkin_from": "15:00:00",
                        "checkin_to": null,
                        "checkout_from": "07:00:00",
                        "checkout_to": "12:00:00"
                      },
                      "currency": "EUR",
                      "description": {
                        "important_information": {
                          "en-gb": "The credit card that has been used to book a non-refundable rate, will be charged on the day of booking and needs to be presented upon check-in. In case the credit card owner is not traveling with you, an online payment link will be sent to prepay your stay.\n\nPlease note that the hotel pre-authorizes your credit card with the amount for the first night, 8 days prior to arrival. This is not a payment and this only applies to flexible rates.\n\nParking in Amsterdam is challenging, there are parking garages near to the hotel or a valet service is possible to arrange upon request. Charges are applicable. Please contact the hotel ahead of time for information",
                          "zh-cn": "酒店将在预订当天收取用于支付不退款房价的信用卡，客人需在办理入住手续时出示该信用卡。如果信用卡持有人未与客人同行，酒店将发送在线付款链接以预付客人的住宿费用。\n\n请注意，酒店将在客人抵达前8天通过其信用卡预授权第一晚的房费。这不是付款，这仅适用于变化的利率。\n\n在阿姆斯特丹（Amsterdam）停车很有挑战性，酒店附近有停车库，或者可应要求为客人安排代客泊车服务，收费适用。请提前联系酒店以获取信息。"
                        },
                        "license_numbers": [],
                        "text": {
                          "en-gb": "The Pavilions Amsterdam, The Toren features elegant accommodation alongside the famous Keizersgracht canal, around the corner from the Anne Frank House. It offers elegant rooms with flat-screen TVs with digital entertainment system.\n\nEach air-conditioned room at the Toren has an en suite bathroom with a bathtub. They have classic decorations such as chandeliers and ceiling paintings. Tea/coffee making facilities and a complimentary mini bar are also provided in every room.\n\nIn the morning, guests can enjoy a delightful breakfast buffet in the elegant breakfast room with views of the Keizersgracht. The trendy hotel bar serves refreshing drinks during the day.\n\nWestermarkt Tram Stop is less than 250 metres from the hotel. Dam Square and the Royal Palace are a 10-minute walk away.",
                          "zh-cn": "The Pavilions Amsterdam, The Toren酒店位于安妮弗兰克之家（Anne Frank House）拐角处，毗邻著名的Keizersgracht运河，提供典雅的住宿。酒店提供带平板电视和数字娱乐系统的典雅客房。\n\nToren酒店的每间空调客房均配有带浴缸的独立浴室。客房拥有典雅的装饰，如吊灯和天花板画。每间客房还提供沏茶/咖啡设施和免费迷你吧。\n\n早晨，客人可在典雅的早餐室享用可口的自助早餐，并欣赏Keizersgracht的景色。时髦的酒店酒吧白天提供清凉饮料。\n\n酒店距离韦斯特马克特电车站（Westermarkt Tram Stop）不到250米，距离水坝广场（Dam Square）和皇宫（Royal Palace）有10分钟的步行路程。"
                        },
                        "trader": {
                          "address": {
                            "address_line": "Prinsengract 153",
                            "city": "Amsterdam",
                            "country": "nl",
                            "post_code": "94571"
                          },
                          "email": "test@test.test",
                          "name": "Test Test",
                          "registration_number": "123456788",
                          "telephone": "+123456789",
                          "trade_register": "hjdfvhfjd",
                          "trader_verified": true
                        }
                      },
                      "facilities": [
                        {
                          "id": 5,
                          "attributes": []
                        },
                        "..."
                      ],
                      "is_genius": true,
                      "location": {
                        "address": {
                          "en-us": "Keizersgracht 164"
                        },
                        "city": -2140479,
                        "coordinates": {
                          "latitude": 52.375858,
                          "longitude": 4.886006
                        },
                        "country": "nl",
                        "districts": [
                          145,
                          3024,
                          9173
                        ],
                        "postal_code": "1015 CZ",
                        "regions": [
                          1010,
                          2776
                        ]
                      },
                      "long_stay_friendly": false,
                      "meal_prices": {
                        "breakfast": 20,
                        "dinner": null,
                        "lunch": null
                      },
                      "name": {
                        "en-us": "The Pavilions Amsterdam, The Toren"
                      },
                      "number_of_rooms": 11,
                      "payment": {
                        "amex_cvc_required": false,
                        "cvc_required": true,
                        "domestic_no_cc": false,
                        "methods": {
                          "cash": true,
                          "cards": [
                            1,
                            2,
                            3
                          ],
                          "virtual_cards": [
                            1,
                            2,
                            3
                          ]
                        },
                        "timings": [
                          "pay_at_the_property"
                        ]
                      },
                      "photos": [
                        {
                          "main_photo": true,
                          "tags": [
                            "Neighbourhood"
                          ],
                          "url": {
                            "large": "https://q-xx.bstatic.com/xdata/images/hotel/max1280/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o=",
                            "standard": "https://q-xx.bstatic.com/xdata/images/hotel/max500/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o=",
                            "thumbnail": "https://q-xx.bstatic.com/xdata/images/hotel/100x100/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o=",
                            "thumbnail_large": "https://q-xx.bstatic.com/xdata/images/hotel/300x300/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o="
                          }
                        },
                        "..."
                      ],
                      "policies": {
                        "cots_and_extra_beds": [
                          {
                            "age": {
                              "from": 0,
                              "to": 2
                            },
                            "mode": "per_night",
                            "price": 0,
                            "type": "crib"
                          }
                        ],
                        "damage": {
                          "amount": 50,
                          "currency": "EUR",
                          "deposit": {
                            "collect": {
                              "date": {
                                "days_offset": 0,
                                "reference_date": "checkin"
                              },
                              "payment_method": "credit_card"
                            },
                            "refund": {
                              "date": {
                                "days_offset": 0,
                                "reference_date": "checkout"
                              },
                              "payment_method": "credit_card"
                            }
                          }
                        },
                        "maximum_checkin_age": null,
                        "minimum_checkin_age": 18,
                        "minimum_guest_age": 0,
                        "pets": {
                          "allowed": "no",
                          "charge_mode": null
                        }
                      },
                      "price_category": "$$$$",
                      "programmes": {
                        "travel_proud": false
                      },
                      "ranking": 123456,
                      "rating": {
                        "number_of_reviews": 930,
                        "preferred": true,
                        "review_score": 9,
                        "stars": 4,
                        "stars_type": "official"
                      },
                      "rooms": [
                        {
                          "id": "1000420",
                          "attributes": [
                            "non_smoking"
                          ],
                          "bed_options": [
                            {
                              "bed_configurations": [
                                {
                                  "id": "1000420-1",
                                  "configuration": [
                                    {
                                      "bed_type": 6,
                                      "number_of_beds": 1
                                    }
                                  ]
                                },
                                {
                                  "id": "1000420-2",
                                  "configuration": [
                                    {
                                      "bed_type": 1,
                                      "number_of_beds": 2
                                    }
                                  ]
                                }
                              ],
                              "has_bathroom": true,
                              "is_bedroom": true
                            }
                          ],
                          "cots_and_extra_beds": {
                            "are_allowed_together": false,
                            "maximum_number_of_cots": 0,
                            "maximum_number_of_extra_beds": 0
                          },
                          "description": {
                            "en-gb": "This room features decor with rich colours and original features. It is located in the annex building, 8 houses away from the main building. It is internally positioned, overlooking a small courtyard."
                          },
                          "facilities": [
                            1,
                            "..."
                          ],
                          "maximum_occupancy": {
                            "adults": 2,
                            "children": 1
                          },
                          "name": {
                            "en-gb": "Standard Double or Twin Room",
                            "zh-cn": "标准双人或双床间 "
                          },
                          "number_of_rooms": {
                            "bathrooms": 1,
                            "bedrooms": 1,
                            "living_rooms": 0
                          },
                          "photos": [
                            {
                              "tags": [
                                "Neighbourhood"
                              ],
                              "url": {
                                "large": "https://q-xx.bstatic.com/xdata/images/hotel/max1280/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o=",
                                "standard": "https://q-xx.bstatic.com/xdata/images/hotel/max500/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o=",
                                "thumbnail": "https://q-xx.bstatic.com/xdata/images/hotel/100x100/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o=",
                                "thumbnail_large": "https://q-xx.bstatic.com/xdata/images/hotel/300x300/243931754.jpg?k=a1fea83a088f20b8f8a0e68ac06cb0090a093808f6e2a129bfb990165a0009f3&o="
                              }
                            },
                            "..."
                          ],
                          "room_type": 9,
                          "size": 18
                        },
                        "..."
                      ],
                      "spoken_languages": [
                        "de",
                        "en-gb",
                        "fr",
                        "nl"
                      ],
                      "themes": [
                        6,
                        "..."
                      ],
                      "url": {
                        "web": "https://www.booking.com/hotel/nl/toren.html?affiliate_id=!AFFILIATE_ID!",
                        "app": "booking://hotel/10004?affiliate_id=!AFFILIATE_ID!"
                      },
                      "work_friendly": false
                    }
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/details/changes": {
      "post": {
        "summary": "Updates",
        "description": "Use this endpoint to track accommodations that have opened, closed, or had content updates since a specific timestamp.\n\nChanges can include updates to general information, facilities, rooms, photos, payments, and more.\n\n**Key points**:\n- You can filter results by `country` or `city`.\n- Use the `next` timestamp from the response to fetch subsequent updates.\n- Combine this endpoint with [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details) to keep your local accommodation cache up to date.\n- Maximum number of IDs returned is approximately 5000 per request.",
        "operationId": "/accommodations/details/changes",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/changesInput"
              },
              "example": {
                "last_change": "!START_DATE!T12:00:00+00:00",
                "filters": {
                  "countries": [
                    "nl",
                    "es",
                    "in"
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/changesOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": {
                    "changes": {
                      "changed": [
                        100,
                        101,
                        102
                      ],
                      "closed": {
                        "fraud": [],
                        "permanently": [
                          107,
                          108
                        ],
                        "temporarily": [
                          105
                        ]
                      },
                      "opened": [
                        111,
                        112
                      ]
                    },
                    "from": "!START_DATE!T12:00:00+00:00",
                    "next": "!START_DATE!T12:24:42+00:00",
                    "total_changes": 8
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/reviews": {
      "post": {
        "summary": "Reviews",
        "description": "This endpoint provides access to reviews for specified accommodations, allowing you to retrieve traveller feedback associated with a particular property.</br></br> The reviews returned can be [filtered and sorted](/demand/docs/accommodations/filter-sorting), with the option to limit the number of reviews per accommodation by specifying the `rows` parameter.</br></br> Please note that the ratings **score is based on all traveller traffic across Booking.com**, and may not necessarily reflect the experience of your own customers.</br></br> If you choose to display or use these ratings and reviews, you are responsible for ensuring that your travellers are properly informed about what these scores represent.",
        "operationId": "/accommodations/reviews",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reviewsInput"
              },
              "example": {
                "accommodations": [
                  10004
                ],
                "languages": [
                  "en-gb"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reviewsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 10004,
                      "reviews": [
                        {
                          "id": 2130645894,
                          "date": "2023-04-12",
                          "language": "en-gb",
                          "negative": "front entrance is not clean (\nbreakfast was served not like a buffet, every time you have to ask a waiter to bring additional food.",
                          "positive": "beautiful hôtel in the central area",
                          "reviewer": {
                            "country": "ch",
                            "name": "Svetlana",
                            "travel_purpose": "leisure",
                            "type": "couple"
                          },
                          "score": 9,
                          "summary": "Fantastic hotel with kind personal who are providing hospitality and excellent service.",
                          "text_meets_guidelines": true
                        },
                        "..."
                      ],
                      "url": "https://www.booking.com/hotel/nl/toren.html?aid=!AFFILIATE_ID!#tab-reviews"
                    }
                  ],
                  "metadata": {
                    "next_page": "..."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/reviews/scores": {
      "post": {
        "summary": "Review and scores",
        "description": "This endpoint returns score distribution and score breakdown for the specified accommodations. The scores information can be filtered by reviewer parameters and languages.",
        "operationId": "/accommodations/reviews/scores",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reviewsScores_input"
              },
              "example": {
                "accommodations": [
                  10004
                ],
                "languages": [
                  "en-gb"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reviewsScores_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 10004,
                      "breakdown": {
                        "cleanliness": {
                          "number_of_reviews": 243,
                          "score": 9.27
                        },
                        "comfort": {
                          "number_of_reviews": 242,
                          "score": 9.26
                        },
                        "facilities": {
                          "number_of_reviews": 242,
                          "score": 8.84
                        },
                        "free_wifi": {
                          "number_of_reviews": 24,
                          "score": 8.75
                        },
                        "location": {
                          "number_of_reviews": 242,
                          "score": 9.59
                        },
                        "staff": {
                          "number_of_reviews": 243,
                          "score": 9.63
                        },
                        "value_for_money": {
                          "number_of_reviews": 243,
                          "score": 8.25
                        }
                      },
                      "distribution": {
                        "1": {
                          "number_of_reviews": 1,
                          "percentage": 0.41
                        },
                        "2": {
                          "number_of_reviews": 0,
                          "percentage": 0
                        },
                        "3": {
                          "number_of_reviews": 2,
                          "percentage": 0.82
                        },
                        "4": {
                          "number_of_reviews": 2,
                          "percentage": 0.82
                        },
                        "5": {
                          "number_of_reviews": 5,
                          "percentage": 2.06
                        },
                        "6": {
                          "number_of_reviews": 3,
                          "percentage": 1.23
                        },
                        "7": {
                          "number_of_reviews": 18,
                          "percentage": 7.41
                        },
                        "8": {
                          "number_of_reviews": 41,
                          "percentage": 16.87
                        },
                        "9": {
                          "number_of_reviews": 67,
                          "percentage": 27.57
                        },
                        "10": {
                          "number_of_reviews": 104,
                          "percentage": 42.8
                        }
                      },
                      "number_of_reviews": 243,
                      "score": 8.9,
                      "url": "https://www.booking.com/hotel/nl/toren.html?aid=!AFFILIATE_ID!#tab-reviews"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/accommodations/smart-search": {
      "post": {
        "summary": "Smart search",
        "description": "Use this endpoint to search for accommodations using a natural language query combined with structured travel criteria such as dates, guests, location, and sorting preferences. The `search_query` field accepts free-text input describing the traveller’s intent, preferences, or desired accommodation features. Structured parameters such as `checkin`, `checkout`, `guests`, and location filters are used to refine and constrain the search results.",
        "operationId": "/accommodations/smart-search",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Accommodations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/smartSearchInput"
              },
              "example": {
                "booker": {
                  "country": "nl",
                  "platform": "desktop"
                },
                "checkin": "!START_DATE!",
                "checkout": "!END_DATE!",
                "city": -2140479,
                "guests": {
                  "number_of_adults": 2,
                  "number_of_rooms": 1
                },
                "search_query": "hotel with pool near the beach"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/smartSearchOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 10004,
                      "currency": {
                        "accommodation": "EUR",
                        "booker": "EUR"
                      },
                      "deep_link_url": "booking://hotel/10004?affiliate_id=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!&mcid=10",
                      "price": {
                        "base": {
                          "accommodation_currency": 1081.49,
                          "booker_currency": 1081.49
                        },
                        "charges": [
                          {
                            "charge": 21,
                            "condition": null,
                            "included_in": {
                              "display": true
                            },
                            "total_amount": {
                              "accommodation_currency": 97.34,
                              "booker_currency": 97.34
                            }
                          }
                        ],
                        "display": {
                          "accommodation_currency": 1260.52,
                          "booker_currency": 1260.52
                        },
                        "total": {
                          "accommodation_currency": 1260.52,
                          "booker_currency": 1260.52
                        }
                      },
                      "products": [
                        {
                          "id": "1000420_95127794_2_0_0",
                          "bundle": null,
                          "children": [],
                          "deal": null,
                          "inventory": {
                            "third_party": false,
                            "type": "sell"
                          },
                          "number_of_adults": 2,
                          "policies": {
                            "cancellation": {
                              "free_cancellation_until": null,
                              "type": "non_refundable"
                            },
                            "meal_plan": {
                              "meals": [],
                              "plan": "no_plan"
                            },
                            "payment": {
                              "timings": [
                                "pay_at_the_property"
                              ]
                            }
                          },
                          "price": {
                            "base": {
                              "accommodation_currency": 1081.49,
                              "booker_currency": 1081.49
                            },
                            "charges": [
                              {
                                "charge": 21,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "mode": "percentage",
                                "percentage": 9,
                                "total_amount": {
                                  "accommodation_currency": 107.07,
                                  "booker_currency": 107.07
                                },
                                "unit_amount": null
                              }
                            ],
                            "display": {
                              "accommodation_currency": 1260.52,
                              "booker_currency": 1260.52
                            },
                            "total": {
                              "accommodation_currency": 1260.52,
                              "booker_currency": 1260.52
                            }
                          },
                          "room": "1000425"
                        }
                      ],
                      "url": "https://www.booking.com/hotel/nl/conscious-the-tire-station.html?affiliate_id=!AFFILIATE_ID!&checkin=!START_DATE!&checkout=!END_DATE!&group_adults=2&no_rooms=1"
                    }
                  ],
                  "metadata": {
                    "next_page": "123456789569"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/attractions/search": {
      "post": {
        "summary": "Search attractions",
        "description": "Use this endpoint to search for attractions based on a single search criterion, such as attraction IDs, cities, countries, or geographic coordinates.",
        "operationId": "/search",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attractions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/attractionsSearchInput"
              },
              "examples": {
                "search-by-attractions": {
                  "summary": "Search by attractions",
                  "value": {
                    "currency": "EUR",
                    "attractions": [
                      "PR0dwCIbnsiU",
                      "AFd2wcIjMauX"
                    ],
                    "dates": {
                      "start_date": "2026-09-18",
                      "end_date": "2026-09-20"
                    },
                    "rows": 50,
                    "sort": {
                      "by": "most_popular"
                    }
                  }
                },
                "search-by-cities": {
                  "summary": "Search by cities",
                  "value": {
                    "currency": "EUR",
                    "cities": [
                      -2140479,
                      -2154955
                    ],
                    "dates": {
                      "start_date": "2026-10-01",
                      "end_date": "2026-10-07"
                    },
                    "rows": 50,
                    "sort": {
                      "by": "most_popular"
                    }
                  }
                },
                "search-by-countries": {
                  "summary": "Search by countries",
                  "value": {
                    "currency": "USD",
                    "countries": [
                      "nl",
                      "fr"
                    ],
                    "dates": {
                      "start_date": "2026-11-15",
                      "end_date": "2026-11-30"
                    },
                    "rows": 50,
                    "sort": {
                      "by": "most_popular"
                    }
                  }
                },
                "search-by-coordinates": {
                  "summary": "Search by coordinates",
                  "value": {
                    "currency": "GBP",
                    "coordinates": {
                      "latitude": 51.509865,
                      "longitude": -0.118092,
                      "radius": 10
                    },
                    "dates": {
                      "start_date": "2026-12-24",
                      "end_date": "2026-12-26"
                    },
                    "rows": 50,
                    "sort": {
                      "by": "most_popular"
                    }
                  }
                },
                "search-with-filters": {
                  "summary": "Search with filters",
                  "value": {
                    "currency": "EUR",
                    "countries": [
                      "nl",
                      "fr"
                    ],
                    "dates": {
                      "start_date": "2026-12-24",
                      "end_date": "2026-12-26"
                    },
                    "filters": {
                      "rating": {
                        "minimum_review_score": 4.5,
                        "minimum_review_count": 50
                      },
                      "supported_languages": [
                        "en",
                        "es"
                      ],
                      "categories": [
                        "PTTV32SGqJEv",
                        "PTTV3cuXCgPo"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/attractionsSearchOutput"
                },
                "example": {
                  "data": [
                    {
                      "id": "PRahAzWtTraa",
                      "free_cancellation": true,
                      "price": {
                        "currency": "EUR",
                        "total": 20
                      },
                      "urls": {
                        "app": {
                          "detail": "booking://attractions/product?slug=prahazwttraa-heineken-experience-amsterdam&aid=956509",
                          "search_results": "booking://attractions/searchresults?ufi=-2140479&pinned_product_id=PRahAzWtTraa&aid=956509"
                        },
                        "web": {
                          "detail": "https://www.booking.com/attractions/nl/prahazwttraa-heineken-experience-amsterdam.en-gb.html?selected_currency=EUR&aid=956509",
                          "search_results": "https://www.booking.com/attractions/searchresults/nl/amsterdam.en-gb.html?pinned_product=PRahAzWtTraa&aid=956509"
                        }
                      }
                    },
                    {
                      "id": "PRAmdacCwQLH",
                      "free_cancellation": false,
                      "price": {
                        "currency": "EUR",
                        "total": 15.5
                      },
                      "urls": {
                        "app": {
                          "detail": "booking://attractions/product?slug=pramdaccwqlh-madame-tussauds-ticket&aid=956509",
                          "search_results": "booking://attractions/searchresults?ufi=-2140479&pinned_product_id=PRAmdacCwQLH&aid=956509"
                        },
                        "web": {
                          "detail": "https://www.booking.com/attractions/nl/pramdaccwqlh-madame-tussauds-ticket.en-gb.html?selected_currency=EUR&aid=956509",
                          "search_results": "https://www.booking.com/attractions/searchresults/nl/amsterdam.en-gb.html?pinned_product=PRAmdacCwQLH&aid=956509"
                        }
                      }
                    },
                    {
                      "id": "PRNQsDG3swdK",
                      "free_cancellation": true,
                      "price": {
                        "currency": "EUR",
                        "total": 27.99
                      },
                      "urls": {
                        "app": {
                          "detail": "booking://attractions/product?slug=prnqsdg3swdk-full-day-dutch-countryside-tour-with-canal-cruise&aid=956509",
                          "search_results": "booking://attractions/searchresults?ufi=-2140479&pinned_product_id=PRNQsDG3swdK&aid=956509"
                        },
                        "web": {
                          "detail": "https://www.booking.com/attractions/nl/prnqsdg3swdk-full-day-dutch-countryside-tour-with-canal-cruise.en-gb.html?selected_currency=EUR&aid=956509",
                          "search_results": "https://www.booking.com/attractions/searchresults/nl/amsterdam.en-gb.html?pinned_product=PRNQsDG3swdK&aid=956509"
                        }
                      }
                    }
                  ],
                  "metadata": {
                    "next_page": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImN1cnJlbmN5IjoiRVVSIiwicXVlcnkiOnsiY291bnRyaWVzIjpbIm5sIiwiZnIiXSwiY29vcmRpbmF0ZXMiOnsibGF0aXR1ZGUiOjUyLjM3LCJsb25naXR1ZGUiOjQuOTAsIm1heF9kaXN0YW5jZV9rbSI6MTAwLjAwfSwic3RhcnRfZGF0ZSI6IjIwMjUtMDktMjEiLCJlbmRfZGF0ZSI6IjIwMjUtMDktMjIiLCJzdXBwb3J0ZWRfbGFuZ3VhZ2VzIjpbIm5sIl0sIm1pbl9yYXRpbmciOjQuMDAsIm1pbl9yZXZpZXdfY291bnQiOjV9LCJvcmRlcl9ieSI6Im1hdGNoX3Njb3JlIiwicGFnZV9udW1iZXIiOjJ9LCJhdWQiOiIvYXR0cmFjdGlvbnMvc2VhcmNoIiwiZXhwIjoxNzU3Mzc0MzI0fQ.JUU7kbuwiCaS4n_SZANA577BvZWdqDDQizU8q6fTrg0",
                    "total_results": 128
                  },
                  "request_id": "01fr9ez700exycb98w90w5r9sh"
                }
              }
            }
          }
        }
      }
    },
    "/attractions/details": {
      "post": {
        "summary": "Attraction details",
        "description": "Use this endpoint to retrieve static information about attractions such as name, description, address, URL, etc. **Note:** This endpoint does not return any pricing information.",
        "operationId": "/attractions/details",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attractions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/attractionsInput"
              },
              "examples": {
                "query-by-attractions": {
                  "value": {
                    "attractions": [
                      "PRTcWzDlwXjP",
                      "PRahAzWtTraa",
                      "PRAmdacCwQLH"
                    ],
                    "languages": [
                      "en-gb"
                    ],
                    "rows": 50
                  }
                },
                "query-by-cities": {
                  "value": {
                    "cities": [
                      -2156821,
                      -2140479
                    ],
                    "languages": [
                      "en-gb"
                    ],
                    "rows": 50
                  }
                },
                "query-by-countries": {
                  "value": {
                    "countries": [
                      "nl",
                      "be"
                    ],
                    "languages": [
                      "en-gb"
                    ],
                    "rows": 50
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/attractionsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "PRTcWzDlwXjP",
                      "badges": [
                        "best_seller"
                      ],
                      "categories": [
                        "museums_arts_culture"
                      ],
                      "duration": "PT2H",
                      "photos": [
                        {
                          "url": "https://cf.bstatic.com/xdata/images/xphoto/500x375/170335205.jpg"
                        }
                      ],
                      "locations": [
                        {
                          "address": "Museumstraat 1",
                          "city": -2140479,
                          "coordinates": {
                            "latitude": 52.360043,
                            "longitude": 4.885177
                          },
                          "country": "nl",
                          "post_code": "1071XX",
                          "type": "attraction"
                        }
                      ],
                      "long_description": {
                        "en-gb": "Discover Dutch art and history at the Rijksmuseum, home to masterpieces by Rembrandt and Vermeer."
                      },
                      "name": {
                        "en-gb": "Rijksmuseum Admission"
                      },
                      "ratings": {
                        "number_of_reviews": 3250,
                        "score": 4.8
                      },
                      "supported_languages": [
                        "en-gb",
                        "nl"
                      ],
                      "urls": {
                        "app": {
                          "detail": "booking://attractions/product?slug=pr0dwcibnsiu-rijksmuseum-admission&aid=956509",
                          "search_results": "booking://attractions/searchresults?ufi=-2140479&pinned_product_id=PR0dwCIbnsiU&aid=956509"
                        },
                        "web": {
                          "detail": "https://www.booking.com/attractions/nl/pr0dwcibnsiu-rijksmuseum-admission.html?aid=956509",
                          "search_results": "https://www.booking.com/attractions/searchresults/nl/amsterdam.en-gb.html?pinned_product=PR0dwCIbnsiU&aid=956509"
                        }
                      }
                    }
                  ],
                  "metadata": {
                    "next_page": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImN1cnJlbmN5IjoiRVVSIiwicXVlcnkiOnsiY291bnRyaWVzIjpbIm5sIiwiZnIiXSwiY29vcmRpbmF0ZXMiOnsibGF0aXR1ZGUiOjUyLjM3LCJsb25naXR1ZGUiOjQuOTAsIm1heF9kaXN0YW5jZV9rbSI6MTAwLjAwfSwic3RhcnRfZGF0ZSI6IjIwMjUtMDktMjEiLCJlbmRfZGF0ZSI6IjIwMjUtMDktMjIiLCJzdXBwb3J0ZWRfbGFuZ3VhZ2VzIjpbIm5sIl0sIm1pbl9yYXRpbmciOjQuMDAsIm1pbl9yZXZpZXdfY291bnQiOjV9LCJvcmRlcl9ieSI6Im1hdGNoX3Njb3JlIiwicGFnZV9udW1iZXIiOjJ9LCJhdWQiOiIvYXR0cmFjdGlvbnMvc2VhcmNoIiwiZXhwIjoxNzU3Mzc0MzI0fQ.JUU7kbuwiCaS4n_SZANA577BvZWdqDDQizU8q6fTrg0",
                    "total_results": 128
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "401": {
            "description": "Authentication failed or the API key is invalid.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "An unexpected error occurred on the server.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/attractions/reviews": {
      "post": {
        "summary": "Attraction Reviews",
        "description": "Retrieves reviews for a specific attraction. The reviews returned can be filtered and sorted, with the option to limit the number of reviews per attraction by specifying the \"rows\" parameter.\n**Note:** The scores reflect all traveller feedback across Booking.com and may not directly correspond to the experiences of your own customers. If you choose to display or use these ratings and reviews, you are responsible for ensuring that your travellers understand what these scores represent.",
        "operationId": "/attractions/reviews",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attractions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/schemas-input"
              },
              "example": {
                "attraction": "PRTcWzDlwXjP",
                "language": "en-gb",
                "rows": 10
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/schemas-output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "attraction": "PRTcWzDlwXjP",
                      "id": "review123456",
                      "author": "John D.",
                      "author_country_code": "us",
                      "rating": 5,
                      "text": "Amazing experience at the museum. The artwork is incredible and the building itself is an architectural masterpiece.",
                      "language": "en-gb",
                      "date": "2025-08-15"
                    },
                    {
                      "attraction": "PR0dwCIbnsiU",
                      "id": "review789012",
                      "author": "Maria S.",
                      "author_country_code": "es",
                      "rating": 4,
                      "text": "Very good museum with impressive collections. Would recommend allowing more time than suggested to see everything.",
                      "language": "en-gb",
                      "date": "2025-07-22"
                    }
                  ],
                  "metadata": {
                    "next_page": "NextPageToken123",
                    "total_results": 243
                  }
                }
              }
            }
          }
        }
      }
    },
    "/attractions/reviews/scores": {
      "post": {
        "summary": "Attraction Review Scores",
        "description": "Returns detailed review scores for specific attractions.",
        "operationId": "/attractions/reviews/scores",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attractions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/reviewScores_input"
              },
              "example": {
                "attractions": [
                  "PRTcWzDlwXjP"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/reviewScores_output"
                },
                "examples": {
                  "typical-attractions": {
                    "$ref": "#/components/examples/example-1"
                  },
                  "few-reviews": {
                    "$ref": "#/components/examples/example-2"
                  },
                  "no-reviews": {
                    "$ref": "#/components/examples/example-3"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/attractions/constants": {
      "post": {
        "400": {
          "description": "Bad request. The request is invalid or contains unsupported parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "../schemas/error-response.json#/error_response"
              },
              "examples": {
                "invalid_language": {
                  "summary": "Unsupported language code",
                  "value": {
                    "request_id": "01fr9ez700exycb98w90w5r9sh",
                    "errors": [
                      {
                        "code": "invalid_parameter",
                        "message": "Parameter 'languages[0]' is invalid."
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "401": {
          "description": "Unauthorised. Authentication failed or the API key is missing or invalid. Refer to the [Authentication section](/demand/docs/development-guide/authentication) for details.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "../schemas/error-response.json#/error_response"
              }
            }
          }
        },
        "500": {
          "description": "Internal server error. An unexpected error occurred on the server.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "../schemas/error-response.json#/error_response"
              },
              "examples": {
                "server_error": {
                  "summary": "Unexpected server error",
                  "value": {
                    "request_id": "01fr9ez700exycb98w90w5r9sh",
                    "errors": [
                      {
                        "code": "internal_server_error",
                        "message": "An unexpected error occurred. Please try again later."
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "summary": "Attraction constants",
        "description": "Returns localised attraction constants, including category and subcategory metadata.\n\n- Use this endpoint to retrieve and cache the category ID-to-name mapping before performing attraction searches with category filters.\n- Call this endpoint during initial integration or periodically to refresh cached values.\n- To retrieve all constants, send an empty request body.",
        "operationId": "constants",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attractions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/constants_input"
              },
              "examples": {
                "english": {
                  "summary": "Request with English language",
                  "value": {
                    "languages": [
                      "en-gb"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response. Returns localised attraction category constants.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/attractions_constants_output"
                },
                "examples": {
                  "single_language": {
                    "summary": "Response with default language (en-gb)",
                    "value": {
                      "request_id": "01fr9ez700exycb98w90w5r9sh",
                      "data": {
                        "categories": [
                          {
                            "id": "PTTV32SGqJEv",
                            "name": {
                              "en-gb": "Tours"
                            },
                            "parent": null
                          },
                          {
                            "id": "PTTV3cuXCgPo",
                            "name": {
                              "en-gb": "Museums, arts & culture"
                            },
                            "parent": null
                          },
                          {
                            "id": "PTTV3Etlc9Eu",
                            "name": {
                              "en-gb": "Walking & hiking tours"
                            },
                            "parent": "PTTV32SGqJEv"
                          }
                        ]
                      }
                    }
                  },
                  "multi_language": {
                    "summary": "Response with multiple languages",
                    "value": {
                      "request_id": "01fr9ez700exycb98w90w5r9sh",
                      "data": {
                        "categories": [
                          {
                            "id": "PTTV32SGqJEv",
                            "name": {
                              "en-gb": "Tours",
                              "es": "Tours"
                            },
                            "parent": null
                          },
                          {
                            "id": "PTTV3cuXCgPo",
                            "name": {
                              "en-gb": "Museums, arts & culture",
                              "es": "Museos, arte y cultura"
                            },
                            "parent": null
                          },
                          {
                            "id": "PTTV3Etlc9Eu",
                            "name": {
                              "en-gb": "Walking & hiking tours",
                              "es": "Tours a pie y de senderismo"
                            },
                            "parent": "PTTV32SGqJEv"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/search": {
      "post": {
        "description": "Use this endpoint to retrieve the available car rentals matching the search criteria.",
        "summary": "Search car rentals",
        "operationId": "search",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/cars_search_input"
              },
              "examples": {
                "searchByAirport": {
                  "summary": "Search example by airport.",
                  "value": {
                    "booker": {
                      "country": "nl"
                    },
                    "currency": "EUR",
                    "driver": {
                      "age": 36
                    },
                    "filters": {
                      "transmission_type": "automatic",
                      "mileage_type": "limited",
                      "depot_location_type": "in_terminal"
                    },
                    "route": {
                      "pickup": {
                        "datetime": "2026-11-05T11:05:00",
                        "location": {
                          "airport": "AMS"
                        }
                      },
                      "dropoff": {
                        "datetime": "2026-11-10T11:05:00",
                        "location": {
                          "airport": "AMS"
                        }
                      }
                    }
                  }
                },
                "searchByCoordinatesWithResponseLimit": {
                  "summary": "Search example by coordinates and max response limit up to 10 products.",
                  "value": {
                    "booker": {
                      "country": "nl"
                    },
                    "currency": "EUR",
                    "driver": {
                      "age": 36
                    },
                    "maximum_results": 10,
                    "filters": {
                      "transmission_type": "automatic",
                      "mileage_type": "limited",
                      "depot_location_type": "in_terminal"
                    },
                    "route": {
                      "pickup": {
                        "datetime": "2026-11-05T11:05:00",
                        "location": {
                          "coordinates": {
                            "latitude": 52.309456,
                            "longitude": 4.762266
                          }
                        }
                      },
                      "dropoff": {
                        "datetime": "2026-11-10T11:05:00",
                        "location": {
                          "coordinates": {
                            "latitude": 52.309456,
                            "longitude": 4.762266
                          }
                        }
                      }
                    }
                  }
                },
                "searchByPaymentInput": {
                  "summary": "Search example by payment timing.",
                  "value": {
                    "booker": {
                      "country": "nl"
                    },
                    "currency": "EUR",
                    "driver": {
                      "age": 36
                    },
                    "payment": {
                      "timings": [
                        "pay_online_now"
                      ]
                    },
                    "route": {
                      "pickup": {
                        "datetime": "2026-11-05T11:05:00",
                        "location": {
                          "city": -2140479
                        }
                      },
                      "dropoff": {
                        "datetime": "2026-11-10T11:05:00",
                        "location": {
                          "city": -2140479
                        }
                      }
                    }
                  }
                },
                "searchByCityIdWithSorting": {
                  "summary": "Search example by city id and sorting by price.",
                  "value": {
                    "booker": {
                      "country": "nl"
                    },
                    "currency": "EUR",
                    "driver": {
                      "age": 36
                    },
                    "filters": {
                      "transmission_type": "automatic",
                      "mileage_type": "limited",
                      "depot_location_type": "in_terminal"
                    },
                    "route": {
                      "pickup": {
                        "datetime": "2026-11-05T11:05:00",
                        "location": {
                          "city": -2140479
                        }
                      },
                      "dropoff": {
                        "datetime": "2026-11-10T11:05:00",
                        "location": {
                          "city": -2140479
                        }
                      }
                    },
                    "sort": {
                      "by": "price",
                      "direction": "descending"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cars_search_output"
                },
                "example": {
                  "request_id": "01h00fr9y7qkbxtc6kyv97j49z",
                  "data": [
                    {
                      "car": 122655,
                      "offer": 803765581,
                      "categories": [
                        "large",
                        "suvs"
                      ],
                      "policies": {
                        "cancellation": {
                          "type": "free_cancellation",
                          "details": {
                            "context": "before_pickup",
                            "duration": "P7D"
                          }
                        },
                        "damage_excess": {
                          "amount": 3000,
                          "currency": "EUR"
                        },
                        "deposit": {
                          "amount": 1500,
                          "currency": "EUR"
                        },
                        "insurance_package": "basic",
                        "fuel": "return_same",
                        "mileage": {
                          "amount": 12.54,
                          "currency": "EUR",
                          "distance_limit": 200,
                          "distance_unit": "kilometers",
                          "type": "limited"
                        },
                        "payment": {
                          "timing": "pay_online_now"
                        },
                        "theft_excess": {
                          "amount": 3000,
                          "currency": "EUR"
                        }
                      },
                      "price": {
                        "total": 121.9,
                        "currency": "EUR",
                        "credit_card_required": false,
                        "extra_charges": [
                          {
                            "charge": "aged_driver_fee",
                            "total_amount": 21.9
                          },
                          {
                            "charge": "one_way_fee",
                            "total_amount": 50
                          }
                        ]
                      },
                      "route": {
                        "pickup": {
                          "depot": 112314,
                          "depot_location_type": "in_terminal"
                        },
                        "dropoff": {
                          "depot": 112314,
                          "depot_location_type": "in_terminal"
                        }
                      },
                      "insurance": {
                        "name": "Full Protection",
                        "id": "999",
                        "price": {
                          "amount": 144.7,
                          "currency": "EUR"
                        }
                      },
                      "special_offer": "upgrade",
                      "supplier": 7455,
                      "url": {
                        "app": "booking://page",
                        "web": "https://example.com"
                      },
                      "estimated_commission": {
                        "amount": 12.5,
                        "currency": "GBP"
                      }
                    }
                  ],
                  "metadata": {
                    "next_page": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7Im1heGltdW1fcmVzdWx0cyI6MTAsIm9mZnNldCI6MTB9LCJhdWQiOiJDQVJTX1NVUFBMSUVSUyIsImV4cCI6MTY4MzY0NzMwNX0.y7NmH48mm7lImd2WxsHdotj6n-dVQAzJCGCnIJCKy3A",
                    "total_results": 122
                  },
                  "search_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImJvb2tlciI6eyJjb3VudHJ5IjoidXMifX0sImF1ZCI6Ii9ob3RlbHMvc2VhcmNoIiwiZXhwIjoxNzUwMDAwMDAwfQ.XYZ123AbcDefGHIjklMNOpqrsTUVwxYZ456789"
                }
              }
            }
          }
        }
      }
    },
    "/cars/availability": {
      "post": {
        "summary": "Car availability",
        "description": "Retrieve availability details for a specific car rental offer, including final pricing, insurance options, and optional extras.",
        "operationId": "/availability",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/cars_availability_input"
              },
              "example": {
                "offer": 740171366,
                "search_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7InNlYXJjaF9rZXkiOiJleUprY21sMlpYSnpRV2RsSWpvek5pd2laSEp2Y0U5bVprUmhkR1ZVYVcxbElqb2lNakF5TlMwd09TMHlNRlF4TVRvd05Ub3dNQ0lzSW1SeWIzQlBabVpNYjJOaGRHbHZiaUk2SWsxQlRpSXNJbVJ5YjNCUFptWk1iMk5oZEdsdmJsUjVjR1VpT2lKSlFWUkJJaXdpY0dsamExVndSR0YwWlZScGJXVWlPaUl5TURJMUxUQTVMVEU0VkRFeE9qQTFPakF3SWl3aWNHbGphMVZ3VEc5allYUnBiMjRpT2lKTlFVNGlMQ0p3YVdOclZYQk1iMk5oZEdsdmJsUjVjR1VpT2lKSlFWUkJJaXdpY21WdWRHRnNSSFZ5WVhScGIyNUpia1JoZVhNaU9qSXNJbk5sY25acFkyVkdaV0YwZFhKbGN5STZXeUpUVlZCUVVrVlRVMTlFU1ZKRlExUmZVRUZaWDB4UFEwRk1YMVpGU0VsRFRFVlRJbDE5IiwiYm9va2VyIjp7ImNvdW50cnkiOiJnYiJ9fSwiYXVkIjoiL2NhcnMvYXZhaWxhYmlsaXR5IiwiZXhwIjoxNzUzMTA2MDg2fQ.t8VrrJhUAvbAwIK_bO5cNAIB5Z_UfcolMEsGzlq3-eo",
                "currency": "GBP",
                "language": "en-gb"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Availability details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cars_availability_output"
                },
                "example": {
                  "request_id": "01k1deq3e5b41da80f28yybhz0",
                  "data": {
                    "offer": 740171366,
                    "currency": "GBP",
                    "policies": {
                      "cancellation": {
                        "type": "free_cancellation",
                        "details": {
                          "context": "before_pickup",
                          "duration": "PT48H"
                        }
                      },
                      "damage_excess": {
                        "amount": 1500
                      },
                      "deposit": {
                        "amount": 1500
                      },
                      "insurance_package": "inclusive",
                      "payment": {
                        "timing": "pay_online_now"
                      },
                      "fuel": "return_same",
                      "mileage": {
                        "distance_limit": 200,
                        "distance_unit": "miles",
                        "amount": 0.3,
                        "currency": "GBP",
                        "type": "limited"
                      },
                      "theft_excess": {
                        "amount": 1500
                      }
                    },
                    "price": {
                      "base": 74.4,
                      "total": 194.4,
                      "credit_card_required": false,
                      "extra_charges": [
                        {
                          "charge": "aged_driver_fee",
                          "total_amount": 120
                        }
                      ]
                    },
                    "products": [
                      {
                        "id": "14383444201010",
                        "type": "additional_driver",
                        "maximum_available": 3,
                        "mode": "each_per_rental",
                        "price": {
                          "unit_amount": {
                            "display": {
                              "value": 20,
                              "currency": "GBP"
                            },
                            "pay": {
                              "value": 20,
                              "currency": "GBP",
                              "timing": "pay_at_pickup"
                            }
                          }
                        }
                      },
                      {
                        "id": "14383470981010",
                        "type": "baby_seat",
                        "maximum_available": 2,
                        "mode": "each_per_rental",
                        "price": {
                          "unit_amount": {
                            "display": {
                              "value": 33.98,
                              "currency": "GBP"
                            },
                            "pay": {
                              "value": 33.98,
                              "currency": "GBP",
                              "timing": "pay_at_pickup"
                            }
                          }
                        }
                      },
                      {
                        "id": "14383497761010",
                        "type": "child_booster_seat",
                        "maximum_available": 2,
                        "mode": "each_per_rental",
                        "price": {
                          "unit_amount": {
                            "display": {
                              "value": 21.98,
                              "currency": "GBP"
                            },
                            "pay": {
                              "value": 21.98,
                              "currency": "GBP",
                              "timing": "pay_at_pickup"
                            }
                          }
                        }
                      },
                      {
                        "id": "14383524541010",
                        "type": "child_seat",
                        "maximum_available": 2,
                        "mode": "each_per_rental",
                        "price": {
                          "unit_amount": {
                            "display": {
                              "value": 33.98,
                              "currency": "GBP"
                            },
                            "pay": {
                              "value": 33.98,
                              "currency": "GBP",
                              "timing": "pay_at_pickup"
                            }
                          }
                        }
                      },
                      {
                        "id": "14383551321010",
                        "type": "gps",
                        "maximum_available": 1,
                        "mode": "per_rental",
                        "price": {
                          "unit_amount": {
                            "display": {
                              "value": 31.98,
                              "currency": "GBP"
                            },
                            "pay": {
                              "value": 31.98,
                              "currency": "GBP",
                              "timing": "pay_at_pickup"
                            }
                          }
                        }
                      }
                    ],
                    "deal": null,
                    "special_offer": "upgrade",
                    "supplier": 3486,
                    "route": {
                      "dropoff": {
                        "depot": 243816,
                        "depot_location_type": "meet_greet"
                      },
                      "pickup": {
                        "depot": 243816,
                        "depot_location_type": "meet_greet"
                      }
                    },
                    "insurance": {
                      "quote_reference": "38ddeef-a7fb-4e24-a1e2-66fc3af23d76#1t0juiba8h6n2",
                      "name": "Full Protection",
                      "id": "999",
                      "price": {
                        "display": {
                          "value": 114.24,
                          "currency": "GBP"
                        },
                        "pay": {
                          "value": 114.24,
                          "currency": "EUR",
                          "timing": "pay_online_now"
                        }
                      },
                      "coverage_amount": {
                        "value": 60000,
                        "currency": "EUR"
                      },
                      "policy_document_url": "https://staging.rentalcover.com/pds",
                      "ipid_document_url": "https://files.rentalcover.com/ipids/uploads/staging/document.pdf"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "invalid_offer": {
                    "summary": "Invalid offer ID",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "invalid_request",
                          "message": "Offer 123 is invalid"
                        }
                      ]
                    }
                  },
                  "expired_token": {
                    "summary": "Search token expired",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "expired_token",
                          "message": "Token 'search_token' has expired."
                        }
                      ]
                    }
                  },
                  "invalid_token": {
                    "summary": "Invalid token",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "invalid_token",
                          "message": "Token 'search_token' is invalid."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error. The request failed due to a server-side issue. Please retry or contact support if the issue persists.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "internal_error": {
                    "summary": "Generic server error",
                    "value": {
                      "request_id": "01kjan66dedrpbwv4m1966dzw3",
                      "errors": [
                        {
                          "id": "500",
                          "message": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/constants": {
      "post": {
        "summary": "Car constants",
        "description": "This endpoint returns localised car rental constants used across the Cars API collection, such as extras, fuel policies, payment timings, and transmission types.\n\nIt also returns customer service contact email addresses per requested language for partner support scenarios where Booking.com handles travellers' communication directly. \nTo retrieve all constants, send an empty request body.",
        "operationId": "constants",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/cars_constants_input"
              },
              "examples": {
                "allConstants": {
                  "summary": "Example request for all constants",
                  "value": {
                    "languages": [
                      "de",
                      "en-gb"
                    ]
                  }
                },
                "specificConstants": {
                  "summary": "Example request for specific constants",
                  "value": {
                    "constants": [
                      "customer_services",
                      "fuel_policies"
                    ],
                    "languages": [
                      "en-gb",
                      "fr",
                      "de"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cars_constants_output"
                },
                "example": {
                  "request_id": "01jpvx9va93ghgwxq7zypagvdr",
                  "data": {
                    "car_categories": [
                      {
                        "id": "carriers",
                        "name": {
                          "de": "Großraumfahrzeug",
                          "en-gb": "People carrier"
                        }
                      },
                      {
                        "id": "estate",
                        "name": {
                          "de": "Kombi",
                          "en-gb": "Estate"
                        }
                      },
                      {
                        "id": "large",
                        "name": {
                          "de": "Groß",
                          "en-gb": "Large"
                        }
                      },
                      {
                        "id": "medium",
                        "name": {
                          "de": "Mittelklasse",
                          "en-gb": "Medium"
                        }
                      },
                      {
                        "id": "premium",
                        "name": {
                          "de": "Premium",
                          "en-gb": "Premium"
                        }
                      },
                      {
                        "id": "small",
                        "name": {
                          "de": "Klein",
                          "en-gb": "Small"
                        }
                      },
                      {
                        "id": "suvs",
                        "name": {
                          "de": "SUV",
                          "en-gb": "SUV"
                        }
                      }
                    ],
                    "customer_services": [
                      {
                        "id": "email",
                        "name": {
                          "de": "customer.service-de@cars.booking.com",
                          "en-gb": "customer.service@cars.booking.com"
                        }
                      }
                    ],
                    "depot_services": [
                      {
                        "id": "meet_greet",
                        "name": {
                          "de": "Meet & Greet",
                          "en-gb": "Meet & Greet"
                        }
                      },
                      {
                        "id": "shuttle",
                        "name": {
                          "de": "Shuttlebus",
                          "en-gb": "Shuttle Bus"
                        }
                      }
                    ],
                    "depot_types": [
                      {
                        "id": "airport_hotel",
                        "name": {
                          "de": "Airport-Hotel",
                          "en-gb": "Airport hotel"
                        }
                      },
                      {
                        "id": "car_rental_centre",
                        "name": {
                          "de": "Mietwagenstation",
                          "en-gb": "Car rental centre"
                        }
                      },
                      {
                        "id": "downtown",
                        "name": {
                          "de": "Innenstadt",
                          "en-gb": "Downtown"
                        }
                      },
                      {
                        "id": "in_terminal",
                        "name": {
                          "de": "Im Terminal",
                          "en-gb": "In terminal"
                        }
                      },
                      {
                        "id": "meet_greet",
                        "name": {
                          "de": "Meet & Greet",
                          "en-gb": "Meet & Greet"
                        }
                      },
                      {
                        "id": "outside_terminal",
                        "name": {
                          "de": "Außerhalb des Terminals",
                          "en-gb": "Outside of terminal"
                        }
                      },
                      {
                        "id": "shuttle_bus",
                        "name": {
                          "de": "Shuttlebus",
                          "en-gb": "Shuttle bus"
                        }
                      },
                      {
                        "id": "trainstation",
                        "name": {
                          "de": "Bahnhof",
                          "en-gb": "Train station"
                        }
                      }
                    ],
                    "extras": [
                      {
                        "id": "additional_driver",
                        "name": {
                          "de": "Zusätzlicher Fahrer",
                          "en-gb": "Additional driver"
                        }
                      },
                      {
                        "id": "baby_seat",
                        "name": {
                          "de": "Babyschale",
                          "en-gb": "Baby seat"
                        }
                      },
                      {
                        "id": "bluetooth_handsfree_kit",
                        "name": {
                          "de": "Bluetooth-Freisprecheinrichtung",
                          "en-gb": "Bluetooth hands-free kit"
                        }
                      },
                      {
                        "id": "booster_seat",
                        "name": {
                          "de": "Kindersitzerhöhung",
                          "en-gb": "Child booster seat"
                        }
                      },
                      {
                        "id": "child_booster_seat",
                        "name": {
                          "de": "Kindersitzerhöhung",
                          "en-gb": "Child booster seat"
                        }
                      },
                      {
                        "id": "child_seat",
                        "name": {
                          "de": "Kindersitz",
                          "en-gb": "Child seat"
                        }
                      },
                      {
                        "id": "child_seat_isofix",
                        "name": {
                          "de": "ISOFIX",
                          "en-gb": "ISOFIX"
                        }
                      },
                      {
                        "id": "etc_card_electronic_toll_collection_card",
                        "name": {
                          "de": "ETC",
                          "en-gb": "ETC"
                        }
                      },
                      {
                        "id": "excess_protection",
                        "name": {
                          "de": "Geringere Selbstbeteiligung",
                          "en-gb": "Reduced excess"
                        }
                      },
                      {
                        "id": "fast_track",
                        "name": {
                          "de": "Express-Zugang",
                          "en-gb": "Queue jump"
                        }
                      },
                      {
                        "id": "gps",
                        "name": {
                          "de": "Navi",
                          "en-gb": "GPS"
                        }
                      },
                      {
                        "id": "infant_seat",
                        "name": {
                          "de": "Babyschale",
                          "en-gb": "Baby seat"
                        }
                      },
                      {
                        "id": "luggage_rack",
                        "name": {
                          "de": "Gepäckträger",
                          "en-gb": "Luggage rack"
                        }
                      },
                      {
                        "id": "personal_travel_assistant",
                        "name": {
                          "de": "Persönlicher Reiseassistent",
                          "en-gb": "Personal travel assistant"
                        }
                      },
                      {
                        "id": "queue_jump",
                        "name": {
                          "de": "Express-Zugang",
                          "en-gb": "Queue jump"
                        }
                      },
                      {
                        "id": "roof_rack",
                        "name": {
                          "de": "Dachgepäckträger",
                          "en-gb": "Roof rack"
                        }
                      },
                      {
                        "id": "ski_box",
                        "name": {
                          "de": "Skibox",
                          "en-gb": "Ski box"
                        }
                      },
                      {
                        "id": "ski_rack",
                        "name": {
                          "de": "Skiträger",
                          "en-gb": "Ski rack"
                        }
                      },
                      {
                        "id": "skierized_equipment",
                        "name": {
                          "de": "Winterausstattung",
                          "en-gb": "Winter sports equipment"
                        }
                      },
                      {
                        "id": "snow_chains",
                        "name": {
                          "de": "Schneeketten",
                          "en-gb": "Snow chains"
                        }
                      },
                      {
                        "id": "snow_tyres",
                        "name": {
                          "de": "Winterreifen",
                          "en-gb": "Snow tyres"
                        }
                      },
                      {
                        "id": "wifi_mobile",
                        "name": {
                          "de": "WLAN-Router",
                          "en-gb": "Wifi router"
                        }
                      },
                      {
                        "id": "wifi_router",
                        "name": {
                          "de": "WLAN-Router",
                          "en-gb": "Wifi router"
                        }
                      }
                    ],
                    "special_offers": [
                      {
                        "id": "one_additional_driver",
                        "name": {
                          "de": "1 zusätzlicher Fahrer inbegriffen",
                          "en-gb": "1 additional driver included"
                        }
                      },
                      {
                        "id": "two_additional_drivers",
                        "name": {
                          "de": "2 zusätzliche Fahrer inbegriffen",
                          "en-gb": "2 additional drivers included"
                        }
                      },
                      {
                        "id": "three_additional_drivers",
                        "name": {
                          "de": "3 zusätzliche Fahrer inbegriffen",
                          "en-gb": "3 additional drivers included"
                        }
                      },
                      {
                        "id": "all_additional_drivers",
                        "name": {
                          "de": "Alle zusätzlichen Fahrer inbegriffen",
                          "en-gb": "All additional drivers included"
                        }
                      },
                      {
                        "id": "gps",
                        "name": {
                          "de": "Navi inbegriffen",
                          "en-gb": "GPS included"
                        }
                      },
                      {
                        "id": "baby_or_child_seat",
                        "name": {
                          "de": "Babyschale / Kindersitz inbegriffen",
                          "en-gb": "Baby/child seat included"
                        }
                      },
                      {
                        "id": "priority_pickup",
                        "name": {
                          "de": "Priority-Abholung inbegriffen",
                          "en-gb": "Priority pick-up included"
                        }
                      },
                      {
                        "id": "wifi_device",
                        "name": {
                          "de": "WLAN inbegriffen",
                          "en-gb": "Wifi included"
                        }
                      },
                      {
                        "id": "sim_card",
                        "name": {
                          "de": "SIM-Karte inbegriffen",
                          "en-gb": "SIM card included"
                        }
                      },
                      {
                        "id": "upgrade",
                        "name": {
                          "de": "Upgrade auf die nächste Fahrzeuggruppe inbegriffen",
                          "en-gb": "Upgrade to the next car group included"
                        }
                      },
                      {
                        "id": "black_friday",
                        "name": {
                          "de": "Black Friday",
                          "en-gb": "Black Friday"
                        }
                      },
                      {
                        "id": "getaway_deal",
                        "name": {
                          "de": "Kurztrip-Angebot",
                          "en-gb": "Getaway deal"
                        }
                      },
                      {
                        "id": "mobile_rate",
                        "name": {
                          "de": "Handypreis",
                          "en-gb": "Mobile rate"
                        }
                      }
                    ],
                    "fuel_policies": [
                      {
                        "id": "free_tank",
                        "name": {
                          "de": "Kostenlose Tankfüllung",
                          "en-gb": "Free tank"
                        }
                      },
                      {
                        "id": "prepay_no_refunds",
                        "name": {
                          "de": "Vorab-Einkauf",
                          "en-gb": "Pre-purchase (non-refundable)"
                        }
                      },
                      {
                        "id": "prepay_part_refunds",
                        "name": {
                          "de": "Vorab-Einkauf (Teilerstattung)",
                          "en-gb": "Pre-purchase (partial refund)"
                        }
                      },
                      {
                        "id": "prepay_refunds",
                        "name": {
                          "de": "Vorab-Einkauf",
                          "en-gb": "Pre-purchase (refundable)"
                        }
                      },
                      {
                        "id": "return_same",
                        "name": {
                          "de": "Gleiche Tankfüllung",
                          "en-gb": "Like for like"
                        }
                      },
                      {
                        "id": "return_same_or_prepay_no_refunds",
                        "name": {
                          "de": "Gleiche Tankfüllung",
                          "en-gb": "Like for like"
                        }
                      },
                      {
                        "id": "return_same_preauth",
                        "name": {
                          "de": "Gleiche Tankfüllung (Vorabbuchung)",
                          "en-gb": "Like for like (pre-authorisation)"
                        }
                      },
                      {
                        "id": "unlimited",
                        "name": {
                          "de": "Unbegrenzte Kilometer",
                          "en-gb": "Unlimited mileage"
                        }
                      }
                    ],
                    "fuel_types": [
                      {
                        "id": "electric",
                        "name": {
                          "de": "Rein elektrisch",
                          "en-gb": "Fully electric"
                        }
                      },
                      {
                        "id": "hybrid",
                        "name": {
                          "de": "Hybrid",
                          "en-gb": "Hybrid"
                        }
                      },
                      {
                        "id": "petrol",
                        "name": {
                          "de": "Benzin",
                          "en-gb": "Petrol"
                        }
                      },
                      {
                        "id": "plug_in_hybrid",
                        "name": {
                          "de": "Plug-in-Hybrid",
                          "en-gb": "Plug-in hybrid"
                        }
                      }
                    ],
                    "general": [
                      {
                        "id": "airport",
                        "name": {
                          "de": "Flughafen (im Terminal)",
                          "en-gb": "Airport (in terminal)"
                        }
                      },
                      {
                        "id": "air_conditioning",
                        "name": {
                          "de": "Klimaanlage",
                          "en-gb": "Air Conditioning"
                        }
                      },
                      {
                        "id": "before_pickup",
                        "name": {
                          "de": "Kostenlose Stornierung vor der Abholung",
                          "en-gb": "Free cancellation before pick-up"
                        }
                      },
                      {
                        "id": "each_per_rental",
                        "name": {
                          "de": "Jeder pro Miete",
                          "en-gb": "Each per rental"
                        }
                      },
                      {
                        "id": "free_cancellation",
                        "name": {
                          "de": "Kostenlose Stornierung",
                          "en-gb": "Free cancellation"
                        }
                      },
                      {
                        "id": "kilometers",
                        "name": {
                          "de": "km",
                          "en-gb": "km"
                        }
                      },
                      {
                        "id": "limited",
                        "name": {
                          "de": "Begrenzt",
                          "en-gb": "Limited"
                        }
                      },
                      {
                        "id": "miles",
                        "name": {
                          "de": "Meilen",
                          "en-gb": "miles"
                        }
                      },
                      {
                        "id": "n_large_bag",
                        "name": {
                          "de": "N großer Koffer",
                          "en-gb": "N Large bag"
                        }
                      },
                      {
                        "id": "n_large_bags",
                        "name": {
                          "de": "N große Koffer",
                          "en-gb": "N Large bags"
                        }
                      },
                      {
                        "id": "n_small_bag",
                        "name": {
                          "de": "N kleiner Koffer",
                          "en-gb": "N Small bag"
                        }
                      },
                      {
                        "id": "n_small_bags",
                        "name": {
                          "de": "N kleine Koffer",
                          "en-gb": "N Small bags"
                        }
                      },
                      {
                        "id": "per_rental",
                        "name": {
                          "de": "Pro Miete",
                          "en-gb": "Per rental"
                        }
                      }
                    ],
                    "payment_timings": [
                      {
                        "id": "pay_partial_online_now",
                        "name": {
                          "de": "Teils jetzt zahlen, teils später",
                          "en-gb": "Pay part now, part later"
                        }
                      },
                      {
                        "id": "pay_online_now",
                        "name": {
                          "de": "Jetzt zahlbar",
                          "en-gb": "Pay now"
                        }
                      },
                      {
                        "id": "pay_at_pickup",
                        "name": {
                          "de": "Zahlbar bei der Abholung",
                          "en-gb": "Pay at pick-up"
                        }
                      }
                    ],
                    "protection_levels": [
                      {
                        "id": "basic",
                        "name": {
                          "de": "Basis",
                          "en-gb": "Basic"
                        }
                      },
                      {
                        "id": "zero_excess",
                        "name": {
                          "de": "Kein Eigenanteil",
                          "en-gb": "Zero excess"
                        }
                      }
                    ],
                    "review_scores": [
                      {
                        "id": "cleanliness",
                        "name": {
                          "de": "Sauberkeit",
                          "en-gb": "Cleanliness"
                        }
                      },
                      {
                        "id": "condition",
                        "name": {
                          "de": "Fahrzeugzustand",
                          "en-gb": "Car condition"
                        }
                      },
                      {
                        "id": "drop_off_speed",
                        "name": {
                          "de": "Abgabegeschwindigkeit",
                          "en-gb": "Drop-off speed"
                        }
                      },
                      {
                        "id": "friendliness",
                        "name": {
                          "de": "Hilfsbereitschaft",
                          "en-gb": "Helpfulness"
                        }
                      },
                      {
                        "id": "location",
                        "name": {
                          "de": "Lage",
                          "en-gb": "Location"
                        }
                      },
                      {
                        "id": "pick_up_speed",
                        "name": {
                          "de": "Abholgeschwindigkeit",
                          "en-gb": "Pick-up speed"
                        }
                      },
                      {
                        "id": "value_for_money",
                        "name": {
                          "de": "Preis-Leistungs-Verhältnis",
                          "en-gb": "Value for money"
                        }
                      }
                    ],
                    "transmission": [
                      {
                        "id": "automatic",
                        "name": {
                          "de": "Automatik",
                          "en-gb": "Automatic"
                        }
                      },
                      {
                        "id": "manual",
                        "name": {
                          "de": "Schaltgetriebe",
                          "en-gb": "Manual"
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/depots": {
      "post": {
        "description": "Retrieve a paginated list of car rental depots. Supports incremental updates via the `last_modified` filter.",
        "summary": "Depots",
        "operationId": "depots",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/depots_input"
              },
              "example": {
                "last_modified": "2026-03-01T11:05:00+00:00",
                "maximum_results": 100,
                "languages": [
                  "en-gb",
                  "nl"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Depots retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/depots_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 5944,
                      "contact": {
                        "email": "depot@test.booking.com",
                        "telephone": "+31882847620"
                      },
                      "city": -2140479,
                      "dropoff": {
                        "instructions": {
                          "en-gb": "The procedure for returning the vehicle will be explained to you at the rental counter.",
                          "nl": "De procedure voor het inleveren van de auto zal worden toegelicht aan de balie."
                        },
                        "working_hours": {
                          "monday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "tuesday": [
                            {
                              "closing_time": "12:00:00",
                              "opening_time": "07:00:00"
                            },
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "14:00:00"
                            }
                          ],
                          "wednesday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "thursday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "friday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "saturday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "sunday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ]
                        }
                      },
                      "location": {
                        "address": "5 Aankomstpassage",
                        "airport": "AMS",
                        "coordinates": {
                          "latitude": 52.309456,
                          "longitude": 4.762266
                        },
                        "country": "nl",
                        "depot_location_type": "airport_hotel",
                        "name": {
                          "en-gb": "Amsterdam Airport Schiphol - Terminal 3",
                          "nl": "Amsterdam Luchthaven Schiphol - Terminal 3"
                        },
                        "post_code": "1118 AX"
                      },
                      "pickup": {
                        "instructions": {
                          "en-gb": null,
                          "nl": null
                        },
                        "working_hours": {
                          "monday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "tuesday": [
                            {
                              "closing_time": "12:00:00",
                              "opening_time": "07:00:00"
                            },
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "14:00:00"
                            }
                          ],
                          "wednesday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "thursday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "friday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "saturday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ],
                          "sunday": [
                            {
                              "closing_time": "21:00:00",
                              "opening_time": "07:00:00"
                            }
                          ]
                        }
                      },
                      "services": [
                        "shuttle"
                      ],
                      "supplier": 47,
                      "ratings": {
                        "number_of_reviews": 120,
                        "score": 8.7
                      }
                    }
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "invalid_parameter": {
                    "summary": "Malformed request",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "invalid_parameter",
                          "message": "Parameter 'last_modified' is invalid. last_modified value must not be earlier than 7 days ago."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. Try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "internal_error": {
                    "summary": "Generic server error",
                    "value": {
                      "request_id": "01kjan66dedrpbwv4m1966dzw3",
                      "errors": [
                        {
                          "id": "internal_server_error",
                          "message": "An unexpected error occurred while processing the request. Please try again later or contact support if the issue persists."
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/depots/reviews/scores": {
      "post": {
        "description": "Use this endpoint to retrieve review scores and score breakdowns for depots, including the overall review score and total number of reviews.",
        "summary": "Depot scores",
        "operationId": "depotScores",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/components-schemas-input"
              },
              "example": {
                "maximum_results": 10
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/components-schemas-output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 5944,
                      "breakdown": {
                        "cleanliness": {
                          "score": 8.7
                        },
                        "condition": {
                          "score": 8.7
                        },
                        "drop_off_speed": {
                          "score": 8.7
                        },
                        "friendliness": {
                          "score": null
                        },
                        "likeliness_rent_again": {
                          "score": 8.7
                        },
                        "location": {
                          "score": 8.7
                        },
                        "pick_up_speed": {
                          "score": 8.7
                        },
                        "value_for_money": {
                          "score": 8.7
                        }
                      },
                      "number_of_reviews": 105,
                      "score": 9.1
                    }
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/details": {
      "post": {
        "description": "Use this endpoint to fetch car details like bag capacity, number of doors, brand and model, etc.",
        "summary": "Car details",
        "operationId": "details",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/details_components-schemas-input"
              },
              "example": {
                "last_modified": "2026-04-01T11:05:00+00:00",
                "maximum_results": 100
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/details_components-schemas-output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 37715,
                      "capacity": {
                        "bags": {
                          "large": 1,
                          "small": 1
                        },
                        "doors": "4/2",
                        "seats": "4+2"
                      },
                      "country": "es",
                      "features": [
                        "air_conditioning",
                        "all_wheel_drive"
                      ],
                      "image": "https://example.com/image.jpg",
                      "make": "Hyundai",
                      "model": "Elantra",
                      "specification": {
                        "code": "ECAR",
                        "description": "economy",
                        "fuel": "petrol",
                        "transmission": "automatic"
                      },
                      "supplier": 423
                    }
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/suppliers": {
      "post": {
        "description": "Use this endpoint to fetch a list of car rental suppliers. <br/>You can use a supplier ID (or an array of them), to retrieve specific details. <br/>Alternatively, if you do not add any ID in the request, the response will include all suppliers.",
        "summary": "Suppliers",
        "operationId": "suppliers",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Cars"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/cars_suppliers_input"
              },
              "example": {
                "suppliers": [
                  62
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cars_suppliers_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 62,
                      "name": "Budget",
                      "logo": "https://example.com/path_to_the_logo.jpeg"
                    }
                  ],
                  "metadata": {
                    "next_page": null,
                    "total_results": 1
                  }
                }
              }
            }
          }
        }
      }
    },
    "/cars/terms-and-conditions": {
      "post": {
        "description": "Use this endpoint to retrieve the terms and conditions for a specific car during the pre-booking process. The response includes structured content in the requested language.",
        "summary": "Retrieve terms and conditions.",
        "operationId": "terms-and-conditions",
        "tags": [
          "Cars"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "example": {
                "offer": 123456789,
                "currency": "USD",
                "language": "en-us",
                "search_token": "eyJkcml2ZXJzQWdlIjozMCwiZHJvcE9mZkRhdGVUaW1lIjo"
              },
              "schema": {
                "$ref": "#/components/schemas/cars_terms_and_conditions_input"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "example": {
                  "data": {
                    "key_info": {
                      "common": {
                        "credit_cards_allowed": true,
                        "debit_cards_allowed": true,
                        "driver_age": 25,
                        "insurance_available": true,
                        "rental_duration": 3
                      },
                      "damage_excess": {
                        "content": [
                          "This is the maximum amount you'll pay if the car's bodywork gets damaged or stolen"
                        ],
                        "excess_value": "$1000",
                        "subtitle": "Your liability in case of damage",
                        "title": "Damage excess"
                      },
                      "deposit": {
                        "accepted_cards": [
                          {
                            "title": "Visa credit card",
                            "type": "VISA"
                          }
                        ],
                        "accepted_cards_title": "Accepted payment methods",
                        "content": [
                          "A security deposit of $200 will be required at pick-up"
                        ],
                        "subtitle": "Required at pick-up",
                        "title": "Security deposit"
                      },
                      "disclaimers": [
                        "All information is subject to local supplier terms and conditions"
                      ],
                      "driver_and_license": {
                        "needed_items": [
                          "Valid driver's license",
                          "Credit card in main driver's name"
                        ],
                        "title": "Driver requirements",
                        "top_text": "Required documents for pick-up"
                      },
                      "mileage": {
                        "content": "Unlimited mileage included",
                        "subtitle": "Distance included",
                        "title": "Mileage"
                      }
                    },
                    "terms": [
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "children": [
                                  {
                                    "children": [
                                      {
                                        "text": "Driver must be <b>at least 25 years of age</b> to rent this vehicle.",
                                        "type": "clause_option"
                                      }
                                    ],
                                    "type": "sub_clause"
                                  }
                                ],
                                "title": "Age restrictions",
                                "type": "clause"
                              }
                            ],
                            "title": "Driver requirements",
                            "type": "section"
                          }
                        ],
                        "title": "Rental agreement",
                        "type": "chapter"
                      }
                    ]
                  },
                  "request_id": "01fr9ez700exycb98w90w5r9sh"
                },
                "schema": {
                  "$ref": "#/components/schemas/cars_terms_and_conditions_output"
                }
              }
            },
            "description": "Successful response."
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "invalid_offer": {
                    "summary": "Invalid offer ID",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "invalid_request",
                          "message": "Offer 123 is invalid"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. Try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "internal_error": {
                    "summary": "Generic server error",
                    "value": {
                      "request_id": "01kjan66dedrpbwv4m1966dzw3",
                      "errors": [
                        {
                          "id": "500",
                          "message": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/autocomplete": {
      "post": {
        "summary": "Retrieve autocomplete suggestions",
        "description": "Returns ranked suggestions based on the free-text query, destination popularity, and the provided context. This endpoint is designed for real-time \"as-you-type\" autocomplete experiences.\\n\\nSupports prefix matching with basic typo tolerance and is optimised for low-latency search.\\n\\nYou can optionally restrict results by destination type using filters.types.\\n\\nEach suggestion includes a destination identifier, localised name, and geographic context.",
        "operationId": "/common/autocomplete",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/autocomplete"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/autoCompleteInput"
              },
              "examples": {
                "default": {
                  "$ref": "#/components/examples/input"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response with ranked suggestions.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/autoCompleteOutput"
                },
                "examples": {
                  "default": {
                    "$ref": "#/components/examples/output"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or contains unsupported parameter values (for example, query too short or invalid `filters.types`). Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error."
          }
        }
      }
    },
    "/common/languages": {
      "post": {
        "summary": "Retrieve language codes",
        "description": "This endpoint returns a list of human language codes and their names in the corresponding language. To get the full list call the endpoint passing an empty body. The language codes returned are what is used as input and output for other endpoints.",
        "operationId": "/common/languages",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/languages"
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/languages_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "ar",
                      "name": "العربية"
                    },
                    "..."
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/common/locations/airports": {
      "post": {
        "summary": "Airports",
        "description": "This endpoint returns a list of airport codes and their names in the selected languages. The airports returned may be filtered by a location id. For example, you can get the list of airports in The Netherlands by passing: `{\"country\":\"nl\"}`. To get the full list call the endpoint passing an empty body. The airport codes returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.",
        "operationId": "/common/locations/airports",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/locations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/airportInput"
              },
              "example": {
                "country": "nl",
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/airportOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "AMS",
                      "name": {
                        "en-gb": "Schiphol Airport",
                        "zh-cn": "史基浦机场"
                      }
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/locations/cities": {
      "post": {
        "summary": "Cities",
        "description": "This endpoint returns a list of city codes and their names in the selected languages. The cities returned may be filtered by a location id. For example, you can get the list of cities in The Netherlands by passing: `{\"country\":\"nl\"}`. To get the full list call the endpoint passing an empty body. The city codes returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.",
        "operationId": "/common/locations/cities",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/locations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/citiesInput"
              },
              "example": {
                "country": "nl",
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/citiesOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": -2156821,
                      "name": {
                        "zh-cn": "兹沃勒"
                      },
                      "coordinates": {
                        "latitude": 52.378281,
                        "longitude": 4.90007
                      }
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": "..."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/locations/countries": {
      "post": {
        "summary": "Countries",
        "description": "This endpoint returns a list of country codes and their names in the selected languages. The countries returned may be filtered by a location id. For example, you can get the list of countries that are associated with the European Alps region by passing: `{\"region\":1199}`. <br/><br/>To get the full list call the endpoint passing an empty body. The returned country codes are used as input and output for other endpoints. <br/><br/>This endpoint implements pagination of the results.",
        "operationId": "/common/locations/countries",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/locations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/countriesInput"
              },
              "example": {
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/countriesOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "ad",
                      "name": {
                        "en-gb": "Andorra",
                        "zh-cn": "安道尔"
                      }
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": "..."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/locations/districts": {
      "post": {
        "summary": "Districts",
        "description": "This endpoint returns a list of districts with translations in the selected languages. The districts returned may be filtered by a location id. For example, you can get the list of districts in Amsterdam by passing: `{\"city\":-2140479}`. <br/><br/>To get the full list call the endpoint passing an empty body. The district ids returned are what is used as input and output for other endpoints.<br/><br/> This endpoint implements pagination of the results.",
        "operationId": "/common/locations/districts",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/locations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/districtsInput"
              },
              "example": {
                "city": -2140479,
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/districtsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 145,
                      "name": {
                        "en-gb": "Amsterdam City Centre",
                        "zh-cn": "阿姆斯特丹市中心"
                      },
                      "coordinates": {
                        "latitude": 52.378281,
                        "longitude": 4.90007
                      }
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/locations/landmarks": {
      "post": {
        "summary": "Landmarks",
        "description": "This endpoint returns a list of relevant geographical landmark codes and their names in the selected languages. The landmarks returned may be filtered by a location id. For example, you can get the list of landmarks that are associated with the city of Paris in France by passing: `{\"city\":-1456928}`. <br/><br/>To get the full list call the endpoint passing an empty body. The landmark codes returned are what is used as input and output for other endpoints. <br/><br/>This endpoint implements pagination of the results.",
        "operationId": "/common/locations/landmarks",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/locations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/landmarksInput"
              },
              "example": {
                "city": -2140479,
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/landmarksOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 1,
                      "coordinates": {
                        "latitude": 52.378281,
                        "longitude": 4.90007
                      },
                      "name": {
                        "en-gb": "Amsterdam Central Station",
                        "zh-cn": "阿姆斯特丹中央车站"
                      }
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": "..."
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/locations/regions": {
      "post": {
        "summary": "Regions",
        "description": "This endpoint returns a list of regions with translations in the selected languages. The regions returned may be filtered by a location id. For example, you can get the list of regions in the Netherlands or that the Netherlands is a part of by passing: `{\"country\":\"nl\"}`. To get the full list call the endpoint passing an empty body. The region ids returned are what is used as input and output for other endpoints. This endpoint implements pagination of the results.",
        "operationId": "/common/locations/regions",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/locations"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/regionsInput"
              },
              "example": {
                "country": "nl",
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/regionsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 1003,
                      "name": {
                        "en-gb": "Drenthe",
                        "zh-cn": "德伦特省"
                      }
                    },
                    "..."
                  ],
                  "metadata": {
                    "next_page": null
                  }
                }
              }
            }
          }
        }
      }
    },
    "/common/payments/cards": {
      "post": {
        "summary": "Retrieve payment cards",
        "description": "This endpoint returns a list of supported payment cards and their names in English. Examples of payment types are the different credit and debit cards. <br/><br/>To get the full list call the endpoint passing an empty body. The codes returned are what is used as input and output for other endpoints.",
        "operationId": "/common/payments/cards",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/payments"
        ],
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cards_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": 1,
                      "name": "American Express"
                    },
                    "..."
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/common/payments/currencies": {
      "post": {
        "summary": "Retrieve currency codes",
        "description": "This endpoint returns a list of currency codes and their names in the selected languages. To get the full list call the endpoint passing an empty body. <br/><br/>The currency codes returned are what is used as input and output for other endpoints.",
        "operationId": "/common/payments/currencies",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Common/payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/currencies_input"
              },
              "example": {
                "languages": [
                  "en-gb",
                  "zh-cn"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/currencies_output"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "AED",
                      "name": {
                        "en-gb": "U.A.E. dirham",
                        "zh-cn": "阿联酋迪拉姆"
                      }
                    },
                    "..."
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/orders/preview": {
      "post": {
        "summary": "Preview an order",
        "description": "Use this endpoint to calculate the final price, including a detailed price breakdown, payment schedule, and cancellation policies for accommodation and car rentals.\nProvide the booker's details and preferred currency to receive personalised pricing.\nFor accommodations:\nInclude check-in and check-out dates.\nInclude room allocations and selected products.\nFor cars:\nInclude the offer ID and search token.\nOptionally include an insurance quote_reference (from /cars/availability) to attach third-party insurance.",
        "operationId": "orders/preview",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/previewInput"
              },
              "examples": {
                "accommodation_example": {
                  "summary": "Preview input for accommodation",
                  "value": {
                    "currency": "EUR",
                    "accommodation": {
                      "id": 6745031,
                      "booker": {
                        "country": "nl",
                        "platform": "mobile",
                        "travel_purpose": "leisure",
                        "user_groups": [
                          "authenticated"
                        ]
                      },
                      "checkin": "!START_DATE!",
                      "checkout": "!END_DATE!",
                      "products": [
                        {
                          "id": "674503106_275710478_0_2_0",
                          "allocation": {
                            "number_of_adults": 1,
                            "children": [
                              8
                            ]
                          }
                        },
                        {
                          "id": "674503113_275710486_0_1_0",
                          "allocation": {
                            "number_of_adults": 1,
                            "children": []
                          }
                        }
                      ]
                    }
                  }
                },
                "car_example": {
                  "summary": "Preview input for car",
                  "value": {
                    "currency": "EUR",
                    "car": {
                      "offer": 123456789,
                      "search_token": "eyJhbGciOiJIUzI1NiJ9.eyJwIjp7ImJvb2tlciI6eyJjb3VudHJ5IjoidXMifX0sImF1ZCI6Ii9ob3RlbHMvc2VhcmNoIiwiZXhwIjoxNzUwMDAwMDAwfQ.XYZ123AbcDefGHIjklMNOpqrsTUVwxYZ456789",
                      "products": [
                        {
                          "id": "001234567890",
                          "amount": 1
                        }
                      ],
                      "insurance": {
                        "quote_reference": "38ddeef-a7fb-4e24-a1e2-66fc3af23d76#1t0juiba8h6n2"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/previewOutput"
                },
                "examples": {
                  "accommodation_example": {
                    "summary": "Preview output for accommodation",
                    "value": {
                      "request_id": "01fr9ez700exycb98w90w5r9sh",
                      "data": {
                        "accommodation": {
                          "id": 6745031,
                          "currency": {
                            "accommodation": "EUR",
                            "booker": null
                          },
                          "general_policies": {
                            "payment": {
                              "pay_online_now": {
                                "dates": [
                                  {
                                    "at": "!TODAY!",
                                    "price": {
                                      "accommodation_currency": 177.65,
                                      "booker_currency": null
                                    }
                                  }
                                ],
                                "method_required": false,
                                "methods": {
                                  "airplus": true,
                                  "cards": [
                                    1,
                                    2,
                                    3
                                  ],
                                  "wallet": true
                                }
                              },
                              "pay_online_later": {
                                "dates": [
                                  {
                                    "at": "!TODAY!",
                                    "price": {
                                      "accommodation_currency": 0,
                                      "booker_currency": null
                                    }
                                  },
                                  {
                                    "at": "!START_DATE-2!",
                                    "price": {
                                      "accommodation_currency": 177.65,
                                      "booker_currency": null
                                    }
                                  },
                                  {
                                    "at": "!START_DATE!",
                                    "price": {
                                      "accommodation_currency": 0,
                                      "booker_currency": null
                                    }
                                  }
                                ],
                                "method_required": false,
                                "methods": {
                                  "airplus": true,
                                  "cards": [
                                    1,
                                    2,
                                    3,
                                    5
                                  ],
                                  "wallet": true
                                }
                              },
                              "pay_at_the_property": {
                                "dates": [
                                  {
                                    "at": "!TODAY!",
                                    "price": {
                                      "accommodation_currency": 0,
                                      "booker_currency": null
                                    }
                                  },
                                  {
                                    "at": "!START_DATE!",
                                    "price": {
                                      "accommodation_currency": 177.65,
                                      "booker_currency": null
                                    }
                                  }
                                ],
                                "method_required": true,
                                "methods": {
                                  "airplus": true,
                                  "cards": [
                                    1,
                                    2
                                  ],
                                  "wallet": false
                                }
                              }
                            }
                          },
                          "price": {
                            "base": {
                              "accommodation_currency": 100,
                              "booker_currency": null
                            },
                            "chargeable_online": {
                              "accommodation_currency": 117.41,
                              "booker_currency": null
                            },
                            "charges": [
                              {
                                "charge": 142,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "total_amount": {
                                  "accommodation_currency": 6,
                                  "booker_currency": null
                                }
                              },
                              {
                                "charge": 21,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": true
                                },
                                "total_amount": {
                                  "accommodation_currency": 11.41,
                                  "booker_currency": null
                                }
                              },
                              {
                                "charge": 22,
                                "condition": null,
                                "included_in": {
                                  "display": true,
                                  "chargeable_online": false
                                },
                                "total_amount": {
                                  "accommodation_currency": 5.59,
                                  "booker_currency": null
                                }
                              }
                            ],
                            "display": {
                              "accommodation_currency": 123,
                              "booker_currency": null
                            },
                            "total": {
                              "accommodation_currency": 123,
                              "booker_currency": null
                            }
                          },
                          "products": [
                            {
                              "id": "1000420_278556531_2_0_0",
                              "bundle": null,
                              "deal": null,
                              "inventory": {
                                "third_party": false,
                                "type": "sell"
                              },
                              "policies": {
                                "cancellation": [
                                  {
                                    "from": "now",
                                    "price": {
                                      "accommodation_currency": 0,
                                      "booker_currency": null
                                    }
                                  },
                                  {
                                    "from": "!START_DATE-2!T22:00:00+00:00",
                                    "price": {
                                      "accommodation_currency": 177.65,
                                      "booker_currency": null
                                    }
                                  }
                                ],
                                "meal_plan": {
                                  "meals": [],
                                  "plan": "no_plan"
                                }
                              },
                              "price": {
                                "base": {
                                  "accommodation_currency": 155.96,
                                  "booker_currency": null
                                },
                                "chargeable_online": {
                                  "accommodation_currency": 172.88,
                                  "booker_currency": null
                                },
                                "charges": [
                                  {
                                    "charge": 142,
                                    "condition": null,
                                    "included_in": {
                                      "display": true,
                                      "chargeable_online": true
                                    },
                                    "mode": "per_person_per_night",
                                    "percentage": null,
                                    "total_amount": {
                                      "accommodation_currency": 6,
                                      "booker_currency": null
                                    },
                                    "unit_amount": {
                                      "accommodation_currency": 3,
                                      "booker_currency": null
                                    }
                                  },
                                  {
                                    "charge": 21,
                                    "condition": null,
                                    "included_in": {
                                      "display": true,
                                      "chargeable_online": false
                                    },
                                    "mode": "percentage",
                                    "percentage": 9,
                                    "total_amount": {
                                      "accommodation_currency": 14.04,
                                      "booker_currency": null
                                    },
                                    "unit_amount": null
                                  },
                                  {
                                    "charge": 22,
                                    "condition": null,
                                    "included_in": {
                                      "display": true,
                                      "chargeable_online": true
                                    },
                                    "mode": "percentage",
                                    "percentage": 7,
                                    "total_amount": {
                                      "accommodation_currency": 10.92,
                                      "booker_currency": null
                                    },
                                    "unit_amount": null
                                  }
                                ],
                                "display": {
                                  "accommodation_currency": 186.92,
                                  "booker_currency": null
                                },
                                "total": {
                                  "accommodation_currency": 186.92,
                                  "booker_currency": null
                                }
                              }
                            },
                            {
                              "id": "tpi-1000420_95127794_2_0_0",
                              "deal": null,
                              "inventory": {
                                "third_party": true,
                                "type": "sell"
                              },
                              "policies": {
                                "cancellation": [
                                  {
                                    "from": "now",
                                    "price": {
                                      "accommodation_currency": 170,
                                      "booker_currency": null
                                    }
                                  }
                                ],
                                "meal_plan": {
                                  "meals": [],
                                  "plan": "no_plan"
                                }
                              },
                              "price": {
                                "base": {
                                  "accommodation_currency": 162.98,
                                  "booker_currency": null
                                },
                                "chargeable_online": null,
                                "charges": [
                                  {
                                    "charge": 3,
                                    "condition": 30,
                                    "included_in": {
                                      "display": false,
                                      "chargeable_online": null
                                    },
                                    "mode": "per_stay",
                                    "percentage": null,
                                    "total_amount": {
                                      "accommodation_currency": 10,
                                      "booker_currency": null
                                    },
                                    "unit_amount": null
                                  },
                                  {
                                    "charge": 142,
                                    "included_in": {
                                      "display": true,
                                      "chargeable_online": null
                                    },
                                    "mode": "per_person_per_night",
                                    "percentage": null,
                                    "total_amount": {
                                      "accommodation_currency": 6,
                                      "booker_currency": null
                                    },
                                    "unit_amount": {
                                      "accommodation_currency": 3,
                                      "booker_currency": null
                                    },
                                    "condition": null
                                  },
                                  {
                                    "charge": 21,
                                    "condition": null,
                                    "included_in": {
                                      "display": true,
                                      "chargeable_online": null
                                    },
                                    "mode": "percentage",
                                    "percentage": 9,
                                    "total_amount": {
                                      "accommodation_currency": 14.67,
                                      "booker_currency": null
                                    },
                                    "unit_amount": null
                                  },
                                  {
                                    "charge": 22,
                                    "condition": null,
                                    "included_in": {
                                      "display": true,
                                      "chargeable_online": null
                                    },
                                    "mode": "percentage",
                                    "percentage": 7,
                                    "total_amount": {
                                      "accommodation_currency": 11.41,
                                      "booker_currency": null
                                    },
                                    "unit_amount": null
                                  }
                                ],
                                "display": {
                                  "accommodation_currency": 195.06,
                                  "booker_currency": null
                                },
                                "total": {
                                  "accommodation_currency": 195.06,
                                  "booker_currency": null
                                }
                              }
                            }
                          ]
                        },
                        "order_token": "..."
                      }
                    }
                  },
                  "car_example": {
                    "summary": "Preview output for car",
                    "value": {
                      "request_id": "01fr9ez700exycb98w90w5r9sh",
                      "data": {
                        "car": {
                          "offer": 123456789,
                          "currency": {
                            "booker": "EUR",
                            "payment": "EUR"
                          },
                          "price": {
                            "base": {
                              "display": {
                                "value": 129.99,
                                "currency": "EUR",
                                "timing": "pay_online_now"
                              },
                              "pay": {
                                "value": 129.99,
                                "currency": "EUR",
                                "timing": "pay_online_now"
                              }
                            },
                            "extra_charges": [
                              {
                                "non_conditional": [
                                  {
                                    "charge_type": "one_way_fee",
                                    "amount": {
                                      "display": {
                                        "value": 15,
                                        "currency": "EUR"
                                      },
                                      "pay": {
                                        "value": 15,
                                        "currency": "EUR",
                                        "timing": "pay_online_now"
                                      }
                                    }
                                  }
                                ]
                              }
                            ],
                            "products": [
                              {
                                "id": "10000000006012",
                                "type": "baby_seat",
                                "selected_quantity": 1,
                                "mode": "per_rental",
                                "price": {
                                  "unit_amount": {
                                    "display": {
                                      "value": 25,
                                      "currency": "EUR"
                                    },
                                    "pay": {
                                      "value": 25,
                                      "currency": "EUR",
                                      "timing": "pay_online_now"
                                    }
                                  },
                                  "total_amount": {
                                    "display": {
                                      "value": 25,
                                      "currency": "EUR"
                                    },
                                    "pay": {
                                      "value": 25,
                                      "currency": "EUR",
                                      "timing": "pay_online_now"
                                    }
                                  }
                                }
                              },
                              {
                                "id": "10000000006012",
                                "type": "additional_driver",
                                "selected_quantity": 5,
                                "mode": "per_day",
                                "price": {
                                  "unit_amount": {
                                    "display": {
                                      "value": 8,
                                      "currency": "EUR"
                                    },
                                    "pay": {
                                      "value": 7,
                                      "currency": "USD",
                                      "timing": "pay_online_now"
                                    }
                                  },
                                  "total_amount": {
                                    "display": {
                                      "value": 40,
                                      "currency": "EUR"
                                    },
                                    "pay": {
                                      "value": 35,
                                      "currency": "USD",
                                      "timing": "pay_online_now"
                                    }
                                  }
                                }
                              }
                            ],
                            "total": {
                              "value": 209.99,
                              "currency": "EUR",
                              "timing": "pay_online_now"
                            }
                          },
                          "policies": {
                            "cancellation": {
                              "details": {
                                "context": "before_pickup",
                                "duration": "PT48H"
                              },
                              "type": "free_cancellation"
                            },
                            "damage_excess": {
                              "amount": {
                                "display": {
                                  "value": 1000,
                                  "currency": "EUR",
                                  "timing": "pay_at_pickup"
                                },
                                "pay": {
                                  "value": 1000,
                                  "currency": "EUR",
                                  "timing": "pay_at_pickup"
                                }
                              }
                            },
                            "deposit": {
                              "amount": {
                                "display": {
                                  "value": 200,
                                  "currency": "EUR",
                                  "timing": "pay_at_pickup"
                                },
                                "pay": {
                                  "value": 200,
                                  "currency": "EUR",
                                  "timing": "pay_at_pickup"
                                }
                              }
                            },
                            "fuel_policy": "return_same",
                            "mileage": {
                              "distance_limit": 300,
                              "distance_unit": "kilometers",
                              "amount": null,
                              "currency": null,
                              "type": "limited"
                            },
                            "payment": {
                              "dates": [
                                {
                                  "at": "2025-11-01",
                                  "amount": {
                                    "display": {
                                      "value": 129.99,
                                      "currency": "EUR",
                                      "timing": "pay_online_now"
                                    },
                                    "pay": {
                                      "value": 129.99,
                                      "currency": "EUR",
                                      "timing": "pay_online_now"
                                    }
                                  }
                                }
                              ]
                            },
                            "theft_excess": {
                              "amount": {
                                "display": {
                                  "value": 1500,
                                  "currency": "EUR",
                                  "timing": "pay_at_pickup"
                                },
                                "pay": {
                                  "value": 1500,
                                  "currency": "EUR",
                                  "timing": "pay_at_pickup"
                                }
                              }
                            }
                          },
                          "insurance": {
                            "quote_reference": "38ddeef-a7fb-4e24-a1e2-66fc3af23d76#1t0juiba8h6n2",
                            "name": "Full Protection",
                            "id": "999",
                            "price": {
                              "display": {
                                "value": 45,
                                "currency": "EUR"
                              },
                              "pay": {
                                "value": 45,
                                "currency": "EUR",
                                "timing": "pay_online_now"
                              }
                            },
                            "coverage_amount": {
                              "value": 60000,
                              "currency": "EUR"
                            },
                            "policy_document_url": "https://staging.rentalcover.com/en/pds",
                            "ipid_document_url": "https://files.rentalcover.com/ipids.pdf"
                          }
                        },
                        "order_token": "sample-order-token-1234"
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "invalid_car_offer": {
                    "summary": "Invalid offer ID",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "invalid_request",
                          "message": "Offer 123 is invalid"
                        }
                      ]
                    }
                  },
                  "invalid_request": {
                    "summary": "Malformed request",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "invalid_request",
                          "message": "Invalid request parameters. Check required fields and their formats."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. Try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "internal_error": {
                    "summary": "Generic server error",
                    "value": {
                      "request_id": "01kjan66dedrpbwv4m1966dzw3",
                      "errors": [
                        {
                          "id": "500",
                          "message": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/orders/create": {
      "post": {
        "summary": "Create an order",
        "description": "Use this endpoint to create and confirm an order using a valid order token and payment details.",
        "operationId": "/create",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/create_beta_input"
              },
              "examples": {
                "accommodation": {
                  "summary": "Accommodation order with pay online now",
                  "$ref": "#/components/examples/input_accommodation"
                },
                "car": {
                  "summary": "Car rental order with pay at pickup",
                  "$ref": "#/components/examples/input_car"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/create_beta_output"
                },
                "examples": {
                  "output": {
                    "$ref": "#/components/examples/examples-output"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "missing_parameter": {
                    "summary": "Missing parameter error",
                    "value": {
                      "request_id": "01kkc2ft6g1ayfk2zfpfvsxpnh",
                      "errors": [
                        {
                          "id": "missing_parameter",
                          "message": "Parameter 'car.booker.email' is missing."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "The request could not be completed due to a conflict. This may occur if:\n- The order contains unavailable items.\n- A reservation already exists for the same request (duplicate submission).\n\nRefer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_duplicate_response"
                },
                "examples": {
                  "order_unavailable": {
                    "summary": "Order unavailable error",
                    "value": {
                      "request_id": "01kkxmx797zvybfxfsy8byzj8z",
                      "errors": [
                        {
                          "id": "order_unavailable",
                          "message": "Order has unavailable items: vehicle '123456789' for this order is unavailable."
                        }
                      ]
                    }
                  },
                  "duplicate_car_reservation": {
                    "summary": "Duplicate car reservation error",
                    "value": {
                      "request_id": "01kkxn37vb2e2x5957j5vj9ghr",
                      "errors": [
                        {
                          "id": "duplicate_request",
                          "message": "This reservation already exists for the submitted request. Use the returned reservation ID to retrieve the booking via /orders/details/cars/live and check its status (booked or processed). Do not retry the request.",
                          "reservation": "982045031"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. Try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "server_error": {
                    "summary": "Generic server error",
                    "value": {
                      "request_id": "01kjan66dedrpbwv4m1966dzw3",
                      "errors": [
                        {
                          "id": "internal_server_error",
                          "message": null
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/orders/details": {
      "post": {
        "summary": "Orders details",
        "description": "Use this endpoint to fetch detailed information about existing orders across accommodations, cars, flights, attractions, and taxis. Useful for **syncing your system with Booking.com order data, monitoring updates, and performing reporting or analytics across services**.\n\nYou can query orders by:\n- **Creation** or **update date** — retrieve orders created or updated within a 7-day range.\n- **Travel dates** — filter by start or end date (up to 7 days).\n- **Order** or **reservation ID** — fetch details for specific orders.\n\n**Notes:**\n- Only one filter type (created, updated, start, end, orders, reservations) or pagination (page) should be provided per request.\n- 'currency' must be a **three-letter ISO 4217 code**. Defaults to product base currency if omitted.\n- 'extras' can request additional data (currently supports 'payment').\n- 'services' filters results by travel service type: accommodations, cars, flights, attractions, or taxis.\n\n**This endpoint is ideal for:**\n- Displaying booking details in partner dashboards or traveller confirmation pages.\n- Generating invoices, receipts, or post-booking communications.\n- Performing reporting, reconciliation, or analytics across all travel services.\n See the [Order reporting guide](/demand/docs/orders-api/order-details) for more details.",
        "operationId": "/orders/details",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "Filter by last update date",
                    "description": "Retrieve orders that were last updated within a specific time range. Use this to sync incremental changes, such as status updates, cancellations, or modifications.",
                    "$ref": "#/components/schemas/inputUpdated"
                  },
                  {
                    "title": "Filter by creation date",
                    "description": "Retrieve orders that were created within a specific time range. Useful for initial data ingestion, reporting, or tracking newly created bookings.",
                    "$ref": "#/components/schemas/inputCreated"
                  },
                  {
                    "title": "Filter by start date",
                    "description": "Retrieve orders based on the start date of the travel service (for example, check-in, pickup, or departure). Ideal for operational workflows and upcoming trips.",
                    "$ref": "#/components/schemas/inputStart"
                  },
                  {
                    "title": "Filter by end date",
                    "description": "Retrieve orders based on the end date of the travel service (for example, check-out or return). Useful for post-stay processing, reporting, or completed trips.",
                    "$ref": "#/components/schemas/inputEnd"
                  },
                  {
                    "title": "Filter by order IDs",
                    "description": "Retrieve details for a specific list of order IDs. Use this when you already know the order identifiers and need to fetch precise records.",
                    "$ref": "#/components/schemas/inputOrder"
                  },
                  {
                    "title": "Filter by reservation IDs",
                    "description": "Retrieve orders linked to a specific list of reservation IDs across services. Useful when your system stores reservation-level identifiers instead of order IDs.",
                    "$ref": "#/components/schemas/inputReservations"
                  },
                  {
                    "title": "Paginate through all orders",
                    "description": "Retrieve orders using a pagination token. Use this to iterate through large datasets when processing all available orders.",
                    "$ref": "#/components/schemas/inputPage"
                  }
                ]
              },
              "examples": {
                "byCreated": {
                  "summary": "Filter by creation date",
                  "value": {
                    "created": {
                      "from": "2026-03-26T02:00:00+00:00",
                      "to": "2026-03-28T02:00:00+00:00"
                    },
                    "currency": "EUR",
                    "maximum_results": 20,
                    "sort": {
                      "by": "created",
                      "direction": "descending"
                    },
                    "extras": [
                      "payment"
                    ]
                  }
                },
                "byUpdated": {
                  "summary": "Filter by last updated date",
                  "value": {
                    "updated": {
                      "from": "2026-03-26T02:00:00+00:00",
                      "to": "2026-03-28T02:00:00+00:00"
                    },
                    "currency": "EUR",
                    "maximum_results": 20,
                    "sort": {
                      "by": "updated",
                      "direction": "descending"
                    },
                    "extras": [
                      "payment"
                    ]
                  }
                },
                "byStart": {
                  "summary": "Filter by start date",
                  "value": {
                    "start": {
                      "from": "2026-04-01",
                      "to": "2026-04-07"
                    },
                    "currency": "EUR",
                    "services": [
                      "accommodations",
                      "cars"
                    ]
                  }
                },
                "byEnd": {
                  "summary": "Filter by end date",
                  "value": {
                    "end": {
                      "from": "2026-04-01",
                      "to": "2026-04-07"
                    },
                    "currency": "EUR",
                    "maximum_results": 20
                  }
                },
                "byOrders": {
                  "summary": "Filter by order IDs",
                  "value": {
                    "orders": [
                      "509430129718799",
                      "509430129718800"
                    ],
                    "currency": "EUR",
                    "extras": [
                      "payment"
                    ]
                  }
                },
                "byReservations": {
                  "summary": "Filter by reservation IDs",
                  "value": {
                    "reservations": [
                      "12345677",
                      "76543210"
                    ],
                    "currency": "EUR"
                  }
                },
                "byPage": {
                  "summary": "Paginate through results",
                  "value": {
                    "page": "eyJvZmZzZXQiOjIwLCJsaW1pdCI6MjB9",
                    "extras": [
                      "payment"
                    ]
                  }
                },
                "output": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "509430129718799",
                      "accommodations": {
                        "inventory": {
                          "third_party": false,
                          "type": "sell"
                        },
                        "location": {
                          "address": "111 Street Road",
                          "city": 20089219,
                          "country": "us"
                        },
                        "name": "Test Booking Hotel USA",
                        "number_of_guests": 2,
                        "reservation": "12345677",
                        "stay_probability": 0.12
                      },
                      "affiliate": 111111,
                      "attractions": null,
                      "booker": {
                        "address": {
                          "city": "Amsterdam",
                          "country": "nl"
                        },
                        "email": "johndoe@booking.com",
                        "language": "en-gb",
                        "name": {
                          "first_name": "john",
                          "last_name": "doe"
                        },
                        "platform": "mobile",
                        "telephone": "+100000000",
                        "travel_purpose": "business"
                      },
                      "cars": {
                        "pickup_location": {
                          "city": "San Francisco",
                          "country": "us"
                        },
                        "dropoff_location": {
                          "city": "Los Angeles",
                          "country": "us"
                        },
                        "payment": {
                          "timing": "pay_at_pickup"
                        },
                        "reservation": "CAR-99887766"
                      },
                      "commission": {
                        "actual_commission_amount": {
                          "booker_currency": 17.5,
                          "product_currency": 20.6
                        },
                        "actual_percentage": null,
                        "estimated_commission_amount": {
                          "booker_currency": null,
                          "product_currency": null
                        }
                      },
                      "created": "2025-11-28T02:00:00+00:00",
                      "currencies": {
                        "booker": "EUR",
                        "product": "USD"
                      },
                      "end": "2026-03-28T02:00:00+00:00",
                      "flights": null,
                      "label": "One123",
                      "loyalty_reward": [
                        {
                          "amount": 15,
                          "currency": "USD",
                          "eligible": true,
                          "fulfillment_at": "2023-02-10",
                          "fulfillment_by": "partner",
                          "loyalty_data": [
                            {
                              "name": "Email Id",
                              "value": "john_doe@booking.com"
                            },
                            {
                              "name": "Loyalty ID",
                              "value": "10101010"
                            }
                          ],
                          "type": "point"
                        }
                      ],
                      "price": {
                        "commissionable_price": {
                          "booker_currency": 160,
                          "product_currency": 188.32
                        },
                        "total_price": {
                          "booker_currency": 170.01,
                          "product_currency": 200.1
                        }
                      },
                      "start": "2026-03-21T02:00:00+00:00",
                      "status": "booked",
                      "taxis": null,
                      "updated": "2025-11-28T02:00:00+00:00"
                    }
                  ],
                  "metadata": {
                    "next_page": null,
                    "total_results": 1
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response. Returns a list of orders matching the requested filter criteria.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ordersDetailsOutput"
                },
                "examples": {
                  "output": {
                    "$ref": "#/components/examples/details_examples-output"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/orders/details/accommodations": {
      "post": {
        "summary": "Orders with accommodation details",
        "description": "Use this endpoint to retrieve detailed information for one or more accommodation orders.You can request order details either by **reservation** or **order** ID depending on your integration.\n- The response includes all key information for each order, including booking status, pricing, commission, cancellation details, and optional extras.\n- Results are sorted by order creation date in descending order, with the most recently booked orders listed first.",
        "operationId": "/orders/details/accommodations",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "AccommodationsDetailsInputByOrders",
                    "$ref": "#/components/schemas/accommodations_inputOrder"
                  },
                  {
                    "title": "AccommodationsDetailsInputByReservations",
                    "$ref": "#/components/schemas/inputReservation"
                  }
                ]
              },
              "examples": {
                "byOrders": {
                  "summary": "Retrieve by order IDs",
                  "value": {
                    "currency": "USD",
                    "extras": [
                      "policies",
                      "extra_charges"
                    ],
                    "orders": [
                      "509430129718799",
                      "509430129718800"
                    ]
                  }
                },
                "byReservations": {
                  "summary": "Retrieve by reservation IDs",
                  "value": {
                    "currency": "USD",
                    "extras": [
                      "policies",
                      "extra_charges"
                    ],
                    "reservations": [
                      "2321873123",
                      "4666773123"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response containing accommodation order details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/outputAccommodationsOrder"
                },
                "examples": {
                  "default": {
                    "$ref": "#/components/examples/accommodations_examples-output"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or contains unsupported parameter values. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/orders/details/cars": {
      "post": {
        "summary": "Orders with car details",
        "description": "Use this endpoint to retrieve detailed information for one or more car rental orders.\n\n- You can request car order details using your **reservation** ID.\n- The response includes booking and cancellation details, commission, pricing, and optional extras (for example, policies).\n- Results are sorted by the date of order creation in descending order, with the most recently booked orders listed first.",
        "operationId": "/orders/details/cars",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "CarsDetailsInputByOrders",
                    "$ref": "#/components/schemas/carsDetailsInputOrder",
                    "deprecated": true,
                    "description": "DEPRECATED: Do not use the order ID in your request, use the reservation ID instead."
                  },
                  {
                    "title": "CarsDetailsInputByReservations",
                    "$ref": "#/components/schemas/carsDetailsInputReservation"
                  }
                ]
              },
              "example": {
                "currency": "USD",
                "extras": [
                  "policies"
                ],
                "reservations": [
                  "11223344"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/carsDetailsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "id": "123456789",
                      "affiliate": 1234567,
                      "commission": {
                        "actual_amount": {
                          "depot_currency": 45.5,
                          "booker_currency": 66.34
                        },
                        "actual_percentage": 0.25,
                        "estimated_amount": {
                          "depot_currency": 45.5,
                          "booker_currency": 66.34
                        }
                      },
                      "currency": {
                        "depot": "EUR",
                        "booker": "USD"
                      },
                      "dropoff": {
                        "date": "2025-10-18T00:00:00"
                      },
                      "label": "One123",
                      "pickup": {
                        "date": "2025-10-15T00:00:00"
                      },
                      "price": {
                        "commissionable": {
                          "depot_currency": 170.01,
                          "booker_currency": 186.87
                        },
                        "total": {
                          "depot_currency": 170.01,
                          "booker_currency": 186.87
                        }
                      },
                      "products": [
                        {
                          "policies": {
                            "payment": {
                              "timing": "pay_online_now"
                            }
                          },
                          "price": {
                            "base": {
                              "depot_currency": 170.01,
                              "booker_currency": 186.87
                            },
                            "total": {
                              "depot_currency": 170.01,
                              "booker_currency": 186.87
                            }
                          },
                          "status": "booked"
                        }
                      ],
                      "status": "booked"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/orders/details/flights": {
      "post": {
        "summary": "Orders with flight details",
        "description": "Use this endpoint to retrieve detailed information for one or more flight orders.\n\n- You can request flight order details either by **order ID** or by **reservation ID**.\n- The response includes structured order data, including pricing, itinerary segments with IATA airport codes, etc.\n\nThis endpoint is ideal for:\n- Displaying flight booking details in traveller dashboards or confirmation pages.\n- Generating post-booking communications and invoices.\n- Performing reporting or reconciliation tasks that require accurate itinerary and pricing data.",
        "operationId": "/orders/details/flights",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/flights_input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/flights_output"
                },
                "example": {
                  "data": [
                    {
                      "id": "ORDER_ID",
                      "reservation": "RESERVATION_ID",
                      "currency": {
                        "booker": "EUR",
                        "order": "USD"
                      },
                      "itineraries": [
                        {
                          "departure": {
                            "airport": "CAI",
                            "date_time": "2024-03-01T07:00:00+00:00"
                          },
                          "arrival": {
                            "airport": "LXR",
                            "date_time": "2024-03-01T08:10:00+00:00"
                          }
                        }
                      ],
                      "label": "SAMPLE LABEL",
                      "price": {
                        "order_currency": 212.86,
                        "booker_currency": 197.87
                      },
                      "status": "booked"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/orders/details/cars/terms-and-conditions": {
      "post": {
        "summary": "Car order terms & conditions",
        "description": "Retrieve the full, structured terms and conditions for one or more car rental orders.\n\nThe response contains **hierarchical legal content** organised into chapters containing nested sections, clauses, sub-clauses, and clause options.\n\n**Use cases**:\n-Displaying full rental contract details to travellers.\n-Providing terms and conditions on order detail pages.\n-Recreating the booking voucher terms section.\n-Supporting legal and compliance requirements.\n\nNotes:\n-Include at least one order ID. Invalid IDs will return null.\n-Language defaults to English if not specified or unsupported. Language uses an ISO 639-1 language code (for example en-gb).\n-You can optionally filter the response to return only voucher-required terms.",
        "operationId": "cars-terms-and-conditions",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/terms-and-conditions_components-schemas-input"
              },
              "example": {
                "booker": {
                  "country": "gb"
                },
                "language": "en-gb",
                "orders": [
                  "765255700",
                  "invalid_order"
                ],
                "filters": {
                  "voucher": true
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful response containing terms and conditions for requested orders. Invalid IDs return null.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/terms-and-conditions_components-schemas-output"
                },
                "example": {
                  "request_id": "123456789",
                  "data": {
                    "765255700": {
                      "terms": [
                        {
                          "type": "chapter",
                          "title": "Rental agreement",
                          "children": [
                            {
                              "type": "section",
                              "title": "Driver requirements",
                              "children": [
                                {
                                  "type": "clause",
                                  "title": "Age restrictions",
                                  "children": [
                                    {
                                      "type": "sub_clause",
                                      "children": [
                                        {
                                          "type": "clause_option",
                                          "text": "Driver must be <b>at least 25 years of age</b> to rent this vehicle."
                                        }
                                      ]
                                    }
                                  ]
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    },
                    "invalid_order": {
                      "terms": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details."
          },
          "500": {
            "description": "Internal server error. Try again later or contact support."
          }
        }
      }
    },
    "/orders/details/cars/faq": {
      "post": {
        "summary": "Retrieve Car rental FAQs",
        "description": "Returns a list of frequently asked questions (FAQs) and their answers related to car rentals. You can request one or more preferred languages using the languages parameter.\nIf content is not available in any of the requested languages, the response defaults to English.",
        "operationId": "/cars/FAQs",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "description": "Request parameters to retrieve FAQs",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FaqInput"
              },
              "example": {
                "languages": [
                  "en-gb",
                  "fr",
                  "de",
                  "es"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response containing the list of FAQs and corresponding answers, returned in each requested language where available.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FaqOutput"
                },
                "example": {
                  "request_id": "123456789",
                  "data": {
                    "faqs": [
                      {
                        "question": {
                          "de": "Was ist, wenn ich meine Buchungsbestätigung nicht erhalten habe?",
                          "fr": "Que dois-je faire si je n'ai pas reçu ma confirmation de réservation ?",
                          "en-gb": "What if I haven’t received my booking confirmation?",
                          "es": "¿Qué hago si no he recibido la confirmación de mi reserva?"
                        },
                        "answers": {
                          "de": [
                            "Die meisten Buchungen werden sofort bestätigt. Bitte überprüfen Sie Ihren Spam-Ordner, wenn Sie nichts in Ihrem Posteingang finden.",
                            "Sie können den Status Ihrer Buchung jederzeit online einsehen:",
                            "Wenn Sie die App benutzen, tippen Sie unten auf dem Bildschirm auf „Buchungen“.",
                            "Wenn Sie die Webseite verwenden, vergewissern Sie sich, dass Sie angemeldet sind und sich auf der Seite „Mietwagen“ befinden. Klicken Sie dann oben auf „Buchung bearbeiten“.",
                            "Wie ist der Status?",
                            "Wenn Sie feststellen, dass Ihre Buchung noch nicht bestätigt ist, ist sie noch in Bearbeitung – wir schicken Ihnen eine E-Mail, sobald sie bestätigt ist. Im unwahrscheinlichen Fall, dass wir auf Probleme stoßen, werden wir Sie so schnell wie möglich benachrichtigen."
                          ],
                          "fr": [
                            "La plupart des réservations sont immédiatement confirmées. Si vous n'avez pas reçu d'e-mail de confirmation, veuillez vérifier vos spams. ",
                            "Vous pouvez aussi vérifier le statut de votre réservation en ligne :",
                            "Sur l'appli, appuyez sur « Réservations » en bas de l'écran.",
                            "Sur le site Internet, connectez-vous à votre compte et rendez-vous sur la page « Voitures de location ». Ensuite, cliquez sur « Gérer la réservation ».",
                            "Quel est le statut de ma réservation ?",
                            "Si vous voyez que votre réservation n'est pas encore confirmée, cela signifie qu'elle est en cours de traitement. Nous vous enverrons un e-mail dès qu'elle sera confirmée. Dans l'éventualité où votre réservation rencontrerait un problème, nous vous en informerons dans les meilleurs délais."
                          ],
                          "en-gb": [
                            "Most bookings are confirmed straight away, so please check your spam folder if there’s nothing in your inbox. ",
                            "You can always check the status of your booking online:",
                            "If you’re using the app, tap ‘Bookings’ at the bottom of the screen.",
                            "If you’re using the website, make sure you’re signed in and on the ‘Car rentals’ page - then hit ‘Manage booking’ at the top.",
                            "What’s the status?",
                            "If you find that your booking isn’t confirmed yet, we’re working on it - and we’ll email you as soon as it is. In the unlikely event that we run into any problems, we’ll let you know as soon as we can."
                          ],
                          "es": [
                            "La mayoría de las reservas se confirman al momento, así que si no la tienes en la bandeja de entrada, mira en la carpeta de spam.",
                            "Puedes consultar online el estado de tu reserva siempre que quieras:",
                            "Si utilizas la app, dale a \"Reservas\" en la parte de abajo de la pantalla.",
                            "Si utilizas la web, comprueba que has iniciado sesión y después ve a la página de \"Alquiler de coches\" y dale a \"Gestionar la reserva\" en la parte de arriba.",
                            "¿Cuál es el estado?",
                            "Si ves que la reserva aún no está confirmada es que estamos gestionándola. Te enviaremos un e-mail en cuanto lo sepamos. Si hubiera algún problema, te lo haremos saber lo antes posible."
                          ]
                        }
                      }
                    ]
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request, e.g., unsupported language code.",
            "content": {
              "application/json": {
                "example": {
                  "error": "Unsupported language code: 'xx'"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error.",
            "content": {
              "application/json": {
                "example": {
                  "error": "An unexpected error occurred. Please try again later."
                }
              }
            }
          }
        }
      }
    },
    "/orders/details/cars/live": {
      "post": {
        "summary": "Live Car order details",
        "description": "Returns enriched, live car order details for a specific reservation. This endpoint is intended for partner use cases that require full car, supplier, pricing, and driver information. It is a temporary endpoint and will be deprecated once these changes are merged into the primary /orders/details/cars endpoint in v3.3.",
        "operationId": "/details/cars/live",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "currency": {
                    "$ref": "#/components/schemas/currencyId"
                  },
                  "reservations": {
                    "type": "array",
                    "description": "List of reservation IDs to retrieve live car order details for. Currently limited to a single reservation per request.",
                    "items": {
                      "type": "string"
                    },
                    "maxItems": 1,
                    "minItems": 1
                  },
                  "booker": {
                    "description": "Information about the person who made the booking. Required for car order details.\"",
                    "type": "object",
                    "properties": {
                      "country": {
                        "$ref": "#/components/schemas/countryId"
                      }
                    },
                    "required": [
                      "country"
                    ]
                  }
                },
                "required": [
                  "reservations",
                  "booker"
                ]
              },
              "example": {
                "currency": "USD",
                "reservations": [
                  "11223344"
                ],
                "booker": {
                  "country": "nl"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Live car order details retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ordersDetailsCarsOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": [
                    {
                      "affiliate": 1234567,
                      "reservation": "11223344",
                      "duration": 3,
                      "status": "confirmed",
                      "pickup": {
                        "datetime": "2025-10-15T10:00:00",
                        "location": "Dublin Airport",
                        "depot_type": "Airport",
                        "depot_id": "12345",
                        "instructions": "Proceed to shuttle bus zone 3."
                      },
                      "dropoff": {
                        "datetime": "2025-10-18T10:00:00",
                        "location": "Dublin Airport",
                        "depot_type": "Airport",
                        "depot_id": "12345",
                        "instructions": "Follow signs to car rental return area."
                      },
                      "driver": {
                        "name": "John Doe",
                        "email": "john.doe@example.com",
                        "telephone": "+15558675309"
                      },
                      "car": {
                        "id": 803765581,
                        "image": "https://example.com/images/car_compact.jpg",
                        "category": "Compact",
                        "transmission": "Automatic",
                        "doors": "4",
                        "seats": "5",
                        "air_conditioning": true,
                        "big_suitcase": "2",
                        "small_suitcase": "1",
                        "currency": "EUR",
                        "make_and_model": "Toyota Corolla",
                        "supplier": {
                          "id": "SUP123",
                          "name": "Avis",
                          "telephone": "+353 1 800 123456",
                          "confirmation_number": "ZYX987"
                        },
                        "price": {
                          "base": {
                            "display": {
                              "value": 110,
                              "currency": "USD"
                            },
                            "pay": {
                              "value": 100,
                              "currency": "EUR",
                              "timing": "pay_online_now"
                            }
                          },
                          "pre_discount_base": {
                            "display": {
                              "value": 132,
                              "currency": "USD"
                            },
                            "pay": {
                              "value": 120,
                              "currency": "EUR",
                              "timing": "pay_online_now"
                            }
                          },
                          "total": [
                            {
                              "display": {
                                "value": 110,
                                "currency": "USD"
                              },
                              "pay": {
                                "value": 100,
                                "currency": "EUR",
                                "timing": "pay_online_now"
                              }
                            },
                            {
                              "display": {
                                "value": 0,
                                "currency": "USD"
                              },
                              "pay": {
                                "value": 0,
                                "currency": "EUR",
                                "timing": "pay_at_pickup"
                              }
                            }
                          ]
                        },
                        "policies": {
                          "deposit": {
                            "value": 500,
                            "currency": "EUR",
                            "timing": "pay_at_pickup"
                          },
                          "mileage": {
                            "type": "unlimited"
                          },
                          "fuel_policy": "return_same",
                          "cancellation": {
                            "type": "free_cancellation",
                            "schedule": [
                              {
                                "from": "2025-10-14T10:00:00Z",
                                "to": "2025-10-17T09:59:59Z",
                                "free_cancellation": true,
                                "price": null
                              },
                              {
                                "from": "2025-10-17T10:00:00Z",
                                "to": "2025-10-19T10:00:00Z",
                                "free_cancellation": false,
                                "price": {
                                  "display": {
                                    "value": 25,
                                    "currency": "USD"
                                  },
                                  "pay": {
                                    "value": 22.73,
                                    "currency": "EUR"
                                  }
                                }
                              }
                            ]
                          }
                        }
                      },
                      "products": [
                        {
                          "id": "14383444951010",
                          "type": "additional_driver",
                          "selected_quantity": 1,
                          "mode": "each_per_rental",
                          "price": {
                            "display": {
                              "value": 16.49,
                              "currency": "USD"
                            },
                            "pay": {
                              "value": 14.99,
                              "currency": "EUR",
                              "timing": "pay_at_pickup"
                            }
                          }
                        }
                      ]
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/orders/modify": {
      "post": {
        "summary": "Modify an order",
        "description": "Use this endpoint to modify certain aspects of an accommodation order, such as credit card details, checkin/checkout dates, and room configurations (guest allocation, guest names, and smoking preferences). See the [Orders modification guide](/demand/docs/orders-api/order-modify) for examples and best practices.",
        "operationId": "/orders/modify",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "AccommodationModification",
                    "$ref": "#/components/schemas/accommodationModificationInput"
                  },
                  {
                    "title": "PaymentModification",
                    "$ref": "#/components/schemas/paymentModificationInput"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful modification",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "title": "AccommodationModificationResponse",
                      "$ref": "#/components/schemas/accommodationModificationOutput"
                    },
                    {
                      "title": "PaymentModificationResponse",
                      "$ref": "#/components/schemas/paymentModificationOutput"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/orders/modify/preview": {
      "post": {
        "summary": "Preview order modification",
        "description": "Preview whether a requested modification can be applied to an order and retrieve the expected cost impact before confirming the change.\n\nUse this endpoint to:\n\n- Check if the requested modification can be applied.\n- Review the updated total cost (for accommodation changes).\n\nNote: This endpoint does not apply any changes to the order.",
        "operationId": "/orders/modify/preview",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "title": "AccommodationModificationPreview",
                    "$ref": "#/components/schemas/accommodationModificationPreviewInput"
                  },
                  {
                    "title": "PaymentModificationPreview",
                    "$ref": "#/components/schemas/paymentModificationPreviewInput"
                  }
                ]
              },
              "examples": {
                "accommodation_dates_example": {
                  "summary": "Preview accommodation date change",
                  "value": {
                    "order": "6520081014",
                    "modification": {
                      "accommodation": {
                        "reservation": "6187285715",
                        "type": "dates",
                        "change": {
                          "checkin": "2026-04-19",
                          "checkout": "2026-04-21"
                        }
                      }
                    }
                  }
                },
                "accommodation_room_example": {
                  "summary": "Preview accommodation room change",
                  "value": {
                    "order": "6520081014",
                    "modification": {
                      "accommodation": {
                        "reservation": "6187285715",
                        "type": "room",
                        "change": {
                          "room_reservation": "9876543210",
                          "allocation": {
                            "number_of_adults": 2
                          },
                          "guests": [
                            {
                              "name": "John Doe"
                            },
                            {
                              "name": "Jane Doe"
                            }
                          ],
                          "smoking_preference": "non_smoking"
                        }
                      }
                    }
                  }
                },
                "payment_card_example": {
                  "summary": "Preview payment card change",
                  "value": {
                    "order": "6520081014",
                    "modification": {
                      "payment": {
                        "type": "card",
                        "change": {
                          "cardholder": "John Doe",
                          "number": "4111111111111111",
                          "expiry_date": "2027-12",
                          "cvc": "123"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful preview response",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "title": "AccommodationModificationPreviewResponse",
                      "$ref": "#/components/schemas/accommodationModificationPreviewOutput"
                    },
                    {
                      "title": "PaymentModificationPreviewResponse",
                      "$ref": "#/components/schemas/paymentModificationPreviewOutput"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. Try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/orders/cancel": {
      "post": {
        "summary": "Cancel an order",
        "description": "Use this endpoint to cancel a reservation within an existing order. Provide the reservation details for the travel service you want to cancel. You can optionally include the order ID to help identify the order. Only one reservation can be cancelled per request.\n\nFor step-by-step instructions, examples, and best practices, see the [Cancellations guide](/demand/docs/orders-api/cancel-order).",
        "operationId": "/orders/cancel",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Orders"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/cancelInput"
              },
              "examples": {
                "accommodation_example": {
                  "summary": "Cancel input for accommodation",
                  "value": {
                    "order": "509430129718799",
                    "accommodation": {
                      "reservation": "1234567890",
                      "reason": "My travel dates have changed and I need to book a different property."
                    }
                  }
                },
                "car_example": {
                  "summary": "Cancel input for car",
                  "value": {
                    "car": {
                      "reservation": "1234567890",
                      "reason": "My travel plans have changed and I no longer need this car rental.",
                      "booker": {
                        "country": "nl"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Indicates whether the cancellation request was successfully processed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/cancelOutput"
                },
                "example": {
                  "request_id": "01fr9ez700exycb98w90w5r9sh",
                  "data": {
                    "status": "successful"
                  }
                }
              }
            }
          },
          "400": {
            "description": "The request is invalid or missing required parameters. Refer to the [Error handling section](/demand/docs/support/error-handling/about-errors) for more details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          },
          "403": {
            "description": "Returned when the requested endpoint is not available in sandbox. Use the production environment instead.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                },
                "examples": {
                  "sandbox_blocked": {
                    "summary": "Endpoint not available in the sandbox environment",
                    "value": {
                      "request_id": "01kjan7r7yvff5yg95gxy1cjhy",
                      "errors": [
                        {
                          "id": "sandbox_blocked",
                          "message": "The /orders/cancel endpoint for cars is not available in the sandbox. Use the production environment instead."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal server error. Try again later or contact support.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/error_response"
                }
              }
            }
          }
        }
      }
    },
    "/messages/send": {
      "post": {
        "summary": "Send a message",
        "description": "Use this endpoint to send a message to a conversation. You can include plain text and optionally attach a file using an attachment ID from a previous upload.",
        "operationId": "send",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/send_input"
              },
              "example": {
                "conversation": "8586a789-44f4-5521-9f27-f5efd097cba6",
                "accommodation": 6819547,
                "content": "Hello! This is my first message",
                "attachments": [
                  "c325f460-1dc6-11f0-80f0-8d0908786f77"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/send_output"
                },
                "example": {
                  "request_id": "cdb0b154-2eae-481b-8fee-fb2725296e1f",
                  "data": {
                    "message": "3164e570-19e0-11f0-baca-e5019c8df435"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/messages/latest": {
      "post": {
        "summary": "Retrieve latest messages",
        "description": "Use this endpoint to **fetch the most recent messages**, including messages sent by both the property and the guest. By default, up to **100 messages** are returned in reverse chronological order (newest first).\n\nThis endpoint is ideal for:\n- **Synchronising message threads** between your system and the Booking.com platform.\n- **Polling for updates** to detect new messages since your last request.",
        "operationId": "latest",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/latest_input"
              },
              "example": {}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/latest_output"
                },
                "example": {
                  "request_id": "0248d85a-17e0-44b3-a37c-7d4b5c03f58b",
                  "data": {
                    "messages": [
                      {
                        "conversation": {
                          "id": "b2364f9b-6466-599a-a947-0d35cff4f492",
                          "reservation": "4439608993",
                          "accommodation": "5589515"
                        },
                        "content": "Hello Pega, welcome to CS Training Test Hotel Sloterdijk 10! We’re very happy to have you with us.\\nYour check-in date is : Tuesday 5 August 2025\\nYour check-in time is : 00:00 \\nNumber of nights: 3\\n\nWe hope you have a pleasant trip and enjoy your stay with us.\\n\nBest regards,\nThe CS Training Test Hotel Sloterdijk 10 Team.",
                        "id": "52100000-2be9-11f0-bced-bdc849c480b6",
                        "sender": {
                          "participant": "930d9af8-2390-5e43-a4d7-235b52a30a14",
                          "metadata": {
                            "type": "property",
                            "name": "CS Training Test Hotel Sloterdijk 10"
                          }
                        },
                        "attachments": [],
                        "timestamp": "2025-05-08T08:49:15.000Z"
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "/messages/latest/confirm": {
      "post": {
        "summary": "Confirm message receipt",
        "description": "Use this endpoint to confirm receipt of messages. Confirmation is required in order to receive new messages from POST /messages/latest.",
        "operationId": "confirm",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/confirm_input"
              },
              "example": {
                "messages": [
                  "8586a789-44f4-5521-9f27-f5efd097cba"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/confirm_output"
                },
                "example": {
                  "request_id": "cdb0b154-2eae-481b-8fee-fb2725296e1f",
                  "confirmedMessages": [
                    "8586a789-44f4-5521-9f27-f5efd097cba"
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/messages/conversations": {
      "post": {
        "summary": "Retrieve a conversation",
        "description": "Use this endpoint to retrieve a conversation available to the authenticated user.",
        "operationId": "conversations",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Conversations"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/conversations_input"
              },
              "examples": [
                {
                  "conversationExample": {
                    "summary": "Retrieve conversation based on accommodation and conversation ID",
                    "value": {
                      "accommodation": "6819547",
                      "conversation": "c3cc6522-aa63-559d-99f1-94efdd527c3c"
                    }
                  },
                  "reservationExample": {
                    "summary": "Retrieve conversation based on accommodation and reservation ID",
                    "value": {
                      "accommodation": "6819547",
                      "reservation": "4338284887"
                    }
                  }
                }
              ]
            }
          }
        },
        "responses": {
          "200": {
            "description": "Conversation retrieved successfully.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/conversations_output"
                },
                "example": {
                  "request_id": "7889a8c0-aa43-494c-863d-72d2306849c1",
                  "data": {
                    "conversation": {
                      "id": "c3cc6522-aa63-559d-99f1-94efdd527c3c",
                      "reservation": "4338284887",
                      "messages": [
                        {
                          "id": "af3d7fd0-1c50-11f0-81cd-6d243d208da3",
                          "sender": "6c22a16d-a3bd-5f5b-82d9-ce1030f21b1f",
                          "content": "Thank you for choosing Demand API Messaging Test Hotel...",
                          "attachments": [],
                          "timestamp": "2025-04-18T12:28:51.149Z"
                        }
                      ],
                      "participants": [
                        {
                          "id": "5dba2525-2c49-5d2c-91cc-7195526c0c7a",
                          "metadata": {
                            "type": "guest"
                          }
                        },
                        {
                          "id": "6c22a16d-a3bd-5f5b-82d9-ce1030f21b1f",
                          "metadata": {
                            "type": "property",
                            "name": "6819547"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/messages/attachments/upload": {
      "post": {
        "summary": "Upload attachment",
        "description": "Use this endpoint to upload a file to be used as a message attachment. The response includes an attachment ID to reference when sending messages.",
        "operationId": "upload",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attachments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/upload_input"
              },
              "example": {
                "accommodation": 6819547,
                "conversation": "8586a789-44f4-5521-9f27-f5efd097cba6",
                "file_size": 17580,
                "file_name": "a3e062a0-3e6b-4592-9df2-64cf83688084.jpg",
                "file_type": "image/jpeg",
                "file_content": "/9j/4AAQSkZJRgABAQACWAJYAAD/2wCEAAgGBgc"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/upload_output"
                },
                "example": {
                  "request_id": "c249e7b6-be70-411b-bcb7-0c2d49313199",
                  "data": {
                    "attachment": "695b7f90-2c08-11f0-9cee-134ca9b067d1"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/messages/attachments/download": {
      "post": {
        "summary": "Download attachment",
        "description": "Use this endpoint to retrieve a file that was attached to a message. The response includes the file in a base64-encoded format.",
        "operationId": "download",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Attachments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/download_input"
              },
              "example": {
                "conversation": "8586a789-44f4-5521-9f27-f5efd097cba6",
                "accommodation": 6819547,
                "attachment": "9635be40-1dc6-11f0-8893-0130f0cdef6d"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/download_output"
                },
                "example": {
                  "request_id": "773e2c0d-1ab3-449b-b88a-3d6b5ce09ae7",
                  "data": {
                    "conversation": "8586a789-44f4-5521-9f27-f5efd097cba6",
                    "file_content": "/9j/4AAQSkZJRgABAQACWAJYAAD/2wCEAAgGBgc",
                    "attachment": "9635be40-1dc6-11f0-8893-0130f0cdef6d"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/messages/attachments/metadata": {
      "post": {
        "summary": "Retrieve attachment metadata",
        "description": "Use this endpoint to get basic information about an uploaded file, such as its name, type, and size.",
        "operationId": "metadata",
        "parameters": [
          {
            "$ref": "#/components/parameters/AffiliateIdHeader"
          }
        ],
        "tags": [
          "Messages"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/metadata_input"
              },
              "example": {
                "conversation": "8586a789-44f4-5521-9f27-f5efd097cba6",
                "accommodation": 6819547,
                "attachment": "9635be40-1dc6-11f0-8893-0130f0cdef6d"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successful response.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/metadata_output"
                },
                "example": {
                  "request_id": "fec1a9bb-9c85-42fc-a109-3707e1ed4de7",
                  "data": {
                    "metadata": {
                      "file_size": 92620,
                      "file_name": "1ce51916-d8de-4144-a4be-265ccae5df9d.jpg",
                      "file_type": "image/jpeg"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "string"
      }
    },
    "parameters": {
      "AffiliateIdHeader": {
        "in": "header",
        "name": "X-Affiliate-Id",
        "schema": {
          "type": "integer"
        },
        "required": true,
        "description": "Include here your Affiliate identifier number"
      }
    },
    "schemas": {
      "accommodationId": {
        "description": "A signed integer number that uniquely identifies an accommodation property. The full list can be obtained by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).",
        "type": "integer",
        "minimum": 1
      },
      "airportId": {
        "description": "A three-letter code that uniquely identifies an airport as defined by the International Air Transport Association (IATA). The full list can be obtained by calling  <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/airports\" target=\"_blank\">common/locations/airports</a>.",
        "type": "string",
        "pattern": "^[A-Z]{3}$",
        "example": "AMS"
      },
      "booker": {
        "title": "Booker",
        "description": "The booker's information.",
        "type": "object",
        "properties": {
          "country": {
            "description": "The booker country for showing the best price for that user and obeying laws regarding the display of taxes and fees.",
            "type": "string",
            "pattern": "^[a-z]{2}$"
          },
          "platform": {
            "description": "The booker platform for showing the platform based deals and prices.",
            "type": "string",
            "enum": [
              "android",
              "desktop",
              "ios",
              "mobile",
              "tablet"
            ]
          },
          "state": {
            "description": "The booker state for showing the best price for that user and obeying laws regarding the display of taxes and fees. Currently applicable only for country US.",
            "type": "string",
            "pattern": "^[a-z]{2}$"
          },
          "travel_purpose": {
            "description": "The travel purpose of the booker.",
            "type": "string",
            "enum": [
              "business",
              "leisure"
            ]
          },
          "user_groups": {
            "description": "The user groups that the booker is a member of.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "authenticated"
              ]
            }
          }
        },
        "required": [
          "country",
          "platform"
        ]
      },
      "checkin": {
        "description": "The checkin date. Must be within 500 days in the future and in the format yyyy-mm-dd.",
        "type": "string",
        "format": "date"
      },
      "checkout": {
        "description": "The checkout date. Must be later than {checkin}. Must be between 1 and 90 days after {checkin}. Must be within 500 days in the future and in the format yyyy-mm-dd.",
        "type": "string",
        "format": "date"
      },
      "cityId": {
        "description": "A signed integer number that uniquely identifies a city. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/cities\" target=\"_blank\">common/locations/cities</a>.",
        "type": "integer"
      },
      "coordinates": {
        "title": "AccommodationsSearchCoordinatesOutput",
        "description": "Limit the result list to the specified coordinates.",
        "type": "object",
        "properties": {
          "latitude": {
            "description": "Specify a latitude (as well as a longitude and radius) to do searches around a specific location.",
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "description": "Specify a longitude (as well as a latitude and radius) to do searches around a specific location.",
            "type": "number",
            "format": "double"
          },
          "radius": {
            "description": "The radius is km to search around the specified latitude and longitude.",
            "type": "number",
            "format": "double"
          }
        }
      },
      "countryId": {
        "description": "A two-letter code that uniquely identifies a country. This code is defined by the ISO 3166-1 alpha-2 standard (ISO2) as described here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/countries\" target=\"_blank\">common/locations/countries</a>.",
        "type": "string",
        "pattern": "^[a-z]{2}$",
        "example": "nl"
      },
      "currencyId": {
        "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
        "type": "string",
        "pattern": "^[A-Z]{3}$",
        "example": "EUR"
      },
      "districtId": {
        "description": "A signed integer number that uniquely identifies a district. Typically, districts define known areas within a city. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/districts\" target=\"_blank\">common/locations/districts</a>.",
        "type": "integer",
        "minimum": 1
      },
      "extras": {
        "description": "Input parameter to request for additional information about the products.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "extra_charges",
            "products"
          ]
        }
      },
      "accommodationFacilityId": {
        "description": "A signed integer number that uniquely identifies an accommodation property facility. Examples of facilities are: Parking, Restaurant, Room service 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": 1
      },
      "accommodationTypeId": {
        "description": "A signed integer number that uniquely identifies an accommodation property type. Examples of accommodation types are: Apartment, Hostel, Hotel 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": 1
      },
      "accommodationBrandId": {
        "description": "A signed integer number that uniquely identifies an accommodation brand. Examples of brands are: Radisson Blu, WestCord Hotels, Westin etc. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/accommodations/accommodations/chains\" target=\"_blank\">/accommodations/chains</a>.",
        "type": "integer",
        "minimum": 1
      },
      "cancellation_type_filter": {
        "description": "Filters the results by cancellation type. Currently, only 'free_cancellation' is supported. This will return all products that can be cancelled without incurring any fees within a specified time frame. **⚠ DEPRECATED:** The 'non_refundable' cancellation type filter is deprecated and will be removed in further versions. ",
        "type": "string",
        "enum": [
          "free_cancellation",
          "non_refundable"
        ]
      },
      "meal_plan_filter": {
        "description": "Filter the result based on the selected meal plan. Example: When specified breakfast_included, it will show the product with free breakfast.",
        "type": "string",
        "enum": [
          "all_inclusive",
          "breakfast_included",
          "full_board",
          "half_board"
        ]
      },
      "paymentTimingFilter": {
        "description": "This parameter specifies that the results should only return accommodation and blocks that contain the specified payment timings.",
        "type": "string",
        "enum": [
          "pay_at_the_property",
          "pay_online"
        ]
      },
      "roomFacilityId": {
        "description": "A signed integer number that uniquely identifies an accommodation property room facility. Examples of facilities are: Coffee/Tea maker, TV, Airconditioning, 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": 1
      },
      "allocation": {
        "description": "The exact allocation of guests to rooms.",
        "type": "array",
        "items": {
          "properties": {
            "children": {
              "description": "The children ages for this room.",
              "type": "array",
              "items": {
                "type": "integer",
                "minimum": 0,
                "maximum": 17
              }
            },
            "number_of_adults": {
              "description": "The number of adults for this room.",
              "type": "integer",
              "minimum": 1
            }
          },
          "required": [
            "number_of_adults"
          ]
        }
      },
      "guests": {
        "title": "AccommodationsGuests",
        "description": "The guest details for the request.",
        "type": "object",
        "properties": {
          "allocation": {
            "$ref": "#/components/schemas/allocation"
          },
          "children": {
            "description": "Array with the children ages.",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            }
          },
          "number_of_adults": {
            "description": "The number of adults for the search.",
            "type": "integer",
            "minimum": 1
          },
          "number_of_rooms": {
            "description": "The number of rooms needed.",
            "type": "integer",
            "minimum": 1
          }
        },
        "required": [
          "number_of_adults",
          "number_of_rooms"
        ]
      },
      "landmarkId": {
        "description": "A signed integer number that uniquely identifies a relevant geographical landmark, like a monument or a natural attraction. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/landmarks\" target=\"_blank\">common/locations/landmarks</a>.",
        "type": "integer",
        "minimum": 1
      },
      "page": {
        "description": "Pagination token used to retrieve the next page of results. Obtained from `next_page`.",
        "type": "string"
      },
      "regionId": {
        "description": "A signed integer number that uniquely identifies a geographical region. Regions usually define official administrative areas within a country, but may also include multiple countries and in some cases un-official but popular designations for geographical areas. An example of a region that crosses multiple countries is the Alps in Europe. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/regions\" target=\"_blank\">common/locations/regions</a>.",
        "type": "integer",
        "minimum": 1
      },
      "maximumResults": {
        "description": "The maximum number of results to return.",
        "type": "integer",
        "multipleOf": 10,
        "minimum": 10,
        "maximum": 100,
        "default": 100
      },
      "searchInput": {
        "title": "AccommodationsSearchInput",
        "type": "object",
        "properties": {
          "accommodations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationId"
            },
            "maxItems": 100
          },
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "booker": {
            "$ref": "#/components/schemas/booker"
          },
          "checkin": {
            "$ref": "#/components/schemas/checkin"
          },
          "checkout": {
            "$ref": "#/components/schemas/checkout"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "coordinates": {
            "$ref": "#/components/schemas/coordinates"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "extras": {
            "$ref": "#/components/schemas/extras"
          },
          "filters": {
            "description": "Filter criteria for the search results",
            "type": "object",
            "properties": {
              "24_hour_reception": {
                "description": "Filter the result based if the front desk reception is available 24/7. When specified true, the result will filter the products where front desk is available 24/7.",
                "type": "boolean"
              },
              "accommodation_facilities": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accommodationFacilityId"
                }
              },
              "accommodation_types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accommodationTypeId"
                }
              },
              "brands": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accommodationBrandId"
                }
              },
              "cancellation_type": {
                "$ref": "#/components/schemas/cancellation_type_filter"
              },
              "dormitories": {
                "description": "This parameter specifies if the results should include dormitory beds or rooms. The default behaviour will include the dormitory beds or rooms with other results. When this flag is set to 'only', the response will only include dormitory beds or rooms. When this flag is set to 'exclude', the response will exclude dormitory beds or rooms. When this flag is set to 'include', the response will include dormitory beds or rooms with other results.",
                "type": "string",
                "default": "include",
                "enum": [
                  "include",
                  "exclude",
                  "only"
                ]
              },
              "meal_plan": {
                "$ref": "#/components/schemas/meal_plan_filter"
              },
              "payment": {
                "description": "The payment filter for the request",
                "type": "object",
                "properties": {
                  "credit_card_required": {
                    "description": "Filter to show accommodations which require credit card",
                    "type": "boolean"
                  },
                  "timing": {
                    "$ref": "#/components/schemas/paymentTimingFilter"
                  }
                }
              },
              "price": {
                "description": "If specified, will return only results where the price *per night* falls in the specified range (inclusive). This filter requires that a currency is passed",
                "type": "object",
                "properties": {
                  "maximum": {
                    "description": "Set the maximum price per night, in the specified currency, or omit to indicate no upper limit.",
                    "type": "integer"
                  },
                  "minimum": {
                    "description": "Set the minimum price per night, in the specified currency, or omit to indicate no lower limit.",
                    "type": "integer"
                  }
                }
              },
              "rating": {
                "description": "The rating filter for the request",
                "type": "object",
                "properties": {
                  "minimum_review_score": {
                    "description": "Show only hotels with review_score >= that. Review score should be in the range 1 to 10.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 10
                  },
                  "stars": {
                    "description": "Limit to accommodations with the given number(s) of stars. Stars should be in the range of 1 to 5.",
                    "type": "array",
                    "items": {
                      "type": "number",
                      "minimum": 1,
                      "maximum": 5
                    }
                  }
                }
              },
              "room_facilities": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/roomFacilityId"
                }
              },
              "sustainability_certification": {
                "description": "Filter the result based on if the property has sustainability certification. When specified true, the result will filter and return only the accommodations that have sustainability certification.",
                "type": "boolean"
              },
              "travel_proud": {
                "description": "Filter the result based on if the property is LGBTQ+ friendly. When specified true, the result will filter and return only the accommodations that are Proud Certified.",
                "type": "boolean"
              }
            }
          },
          "guests": {
            "$ref": "#/components/schemas/guests"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "sort": {
            "description": "The sorting parameters for the response",
            "type": "object",
            "properties": {
              "by": {
                "description": "The way to sort your results. NOTE: When ordering by distance please make sure to specify the latitude and longitude!",
                "type": "string",
                "enum": [
                  "distance",
                  "price",
                  "review_score",
                  "stars"
                ]
              },
              "direction": {
                "description": "Specifies the sort direction. Please note that descending order is not supported when sorting by distance.",
                "type": "string",
                "enum": [
                  "ascending",
                  "descending"
                ]
              }
            }
          }
        },
        "required": [
          "booker",
          "checkin",
          "checkout",
          "guests"
        ]
      },
      "requestId": {
        "description": "Uniquely identifies the request. Please provide this identifier when contacting support.",
        "type": "string"
      },
      "commission": {
        "title": "AccommodationsCommission",
        "description": "Commission details for the partner for a given accommodation",
        "type": "object",
        "properties": {
          "amount": {
            "description": "The actual commission amount for the partner.",
            "type": "number",
            "format": "double",
            "minimum": 0
          },
          "percentage": {
            "description": "Percentage of the fee that will be received as commission.",
            "type": "number",
            "format": "double",
            "minimum": 0
          }
        }
      },
      "currency": {
        "type": "object",
        "properties": {
          "accommodation": {
            "$ref": "#/components/schemas/currencyId"
          },
          "booker": {
            "$ref": "#/components/schemas/currencyId"
          }
        }
      },
      "deepLinkUrl": {
        "description": "A mobile app URL that directs the user to a specific page or content within the Booking.com app. The link can only be used on a device with the Booking.com app installed. It typically includes an Affiliate ID (AID) to attribute bookings to the affiliate partner when users are redirected",
        "type": "string",
        "format": "url"
      },
      "monetaryAmount": {
        "type": "number",
        "format": "double",
        "multipleOf": 0.01,
        "exclusiveMinimum": 0
      },
      "priceMultiCurrencyOutput": {
        "title": "AccommodationsPriceMultiCurrency",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "chargeTypeId": {
        "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
      },
      "conditionId": {
        "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
      },
      "display": {
        "description": "Indicates if this charge is included in the display price.",
        "type": "boolean"
      },
      "totalAmountV32": {
        "description": "The total price for this charge.",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "chargeSummarySearchV32": {
        "title": "AccommodationsSearchChargeSummary",
        "description": "A charge summed across multiple products.",
        "type": "object",
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/chargeTypeId"
          },
          "condition": {
            "$ref": "#/components/schemas/conditionId"
          },
          "included_in": {
            "title": "ChargeIncludedIn",
            "description": "Indicates where this charge is included",
            "type": "object",
            "properties": {
              "display": {
                "$ref": "#/components/schemas/display"
              }
            }
          },
          "total_amount": {
            "$ref": "#/components/schemas/totalAmountV32"
          }
        }
      },
      "PriceSummarySearchV32": {
        "title": "OrdersPreviewProductSumPriceOutput",
        "description": "The price components of all the products selected summed.",
        "type": "object",
        "properties": {
          "base": {
            "description": "The sum base price of all products selected. Does not include any extra charges.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          },
          "charges": {
            "description": "The sum of charges for all products selected, grouped by charge type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/chargeSummarySearchV32"
            }
          },
          "display": {
            "description": "The display price that must be shown to the traveller. Equivalent to base + charges where included_in.display=true.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          },
          "total": {
            "description": "The total sum price. Includes all extra charges of all products.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          }
        }
      },
      "productId": {
        "description": "Unique ID of the product.",
        "type": "string"
      },
      "bundleId": {
        "description": "The bundle ID of the product comprising of value added products.",
        "type": "integer"
      },
      "dealV32": {
        "title": "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.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          },
          "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"
              ]
            }
          }
        }
      },
      "inventoryOutputType": {
        "description": "Type of inventory - either net or sell rates.",
        "type": "string",
        "enum": [
          "net",
          "sell"
        ]
      },
      "inventoryOutput": {
        "title": "InventoryOutput",
        "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": {
            "$ref": "#/components/schemas/inventoryOutputType"
          }
        }
      },
      "productCancellationType": {
        "description": "The cancellation policy applicable to this product: \"free_cancellation\" allows a period for free cancellation, \"non_refundable\" means immediate loss of total amount, \"partially_refundable\" means a portion of the amount may be refunded if the booking is cancelled.",
        "type": "string",
        "enum": [
          "free_cancellation",
          "non_refundable",
          "partially_refundable"
        ]
      },
      "productCancellationPolicySearch": {
        "title": "AccommodationsProductCancellationPolicy",
        "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": {
            "$ref": "#/components/schemas/productCancellationType"
          }
        }
      },
      "productMealPlanPolicy": {
        "title": "AccommodationsProductMealPlanPolicy",
        "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"
            ]
          }
        }
      },
      "productPaymentTimings": {
        "description": "The payment timings supported by this product.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "pay_at_the_property",
            "pay_online_later",
            "pay_online_now"
          ]
        }
      },
      "productPaymentPolicyNew": {
        "title": "AccommodationsProductPaymentPolicyNew",
        "description": "Payment terms and conditions for this product.",
        "type": "object",
        "properties": {
          "prepayment_required": {
            "description": "Whether prepayment is required for this product.",
            "type": "boolean"
          },
          "timings": {
            "$ref": "#/components/schemas/productPaymentTimings"
          }
        }
      },
      "productPoliciesSearch": {
        "title": "AccommodationsProductPolicies",
        "description": "The policies for this product.",
        "type": "object",
        "properties": {
          "cancellation": {
            "$ref": "#/components/schemas/productCancellationPolicySearch"
          },
          "meal_plan": {
            "$ref": "#/components/schemas/productMealPlanPolicy"
          },
          "payment": {
            "$ref": "#/components/schemas/productPaymentPolicyNew"
          }
        }
      },
      "basePriceV32": {
        "description": "The base price. It does not include any extra charges.",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "chargeMode": {
        "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"
        ]
      },
      "chargePercentage": {
        "description": "The percentage of 'base' that this charge amounts to. Only applicable when 'mode' is 'percentage'.",
        "type": "number",
        "multipleOf": 0.01,
        "exclusiveMinimum": 0,
        "nullable": true
      },
      "unitAmountV32": {
        "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": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        },
        "nullable": true
      },
      "chargeBreakdownSearchV32": {
        "description": "The charge breakdown. Includes taxes and fees.",
        "type": "array",
        "items": {
          "title": "AccommodationsCharge",
          "description": "Detailed information about an individual charge, including where it is applied.",
          "type": "object",
          "properties": {
            "charge": {
              "$ref": "#/components/schemas/chargeTypeId"
            },
            "condition": {
              "$ref": "#/components/schemas/conditionId"
            },
            "included_in": {
              "title": "ChargeIncludedIn",
              "description": "Indicates where this charge is included",
              "type": "object",
              "properties": {
                "display": {
                  "$ref": "#/components/schemas/display"
                }
              }
            },
            "mode": {
              "$ref": "#/components/schemas/chargeMode"
            },
            "percentage": {
              "$ref": "#/components/schemas/chargePercentage"
            },
            "total_amount": {
              "$ref": "#/components/schemas/totalAmountV32"
            },
            "unit_amount": {
              "$ref": "#/components/schemas/unitAmountV32"
            }
          }
        }
      },
      "displayPriceV32": {
        "description": "The display price that must be shown to the traveller in accordance with local booker protection laws. This price includes the base accommodation cost and all charges that are legally required to be part of the displayed amount. Equivalent to base + charges where included_in.display=true.",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "totalPriceV32": {
        "description": "The total price. Includes all extra charges.",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "priceSearchV32": {
        "title": "AccommodationsSearchProductPrice",
        "description": "Contains the price components of an accommodation product. The 'base', 'display', 'chargeable_online' prices, and 'charges' are returned only when explicitly requested using extras=extra_charges.",
        "type": "object",
        "properties": {
          "base": {
            "$ref": "#/components/schemas/basePriceV32"
          },
          "charges": {
            "$ref": "#/components/schemas/chargeBreakdownSearchV32"
          },
          "display": {
            "$ref": "#/components/schemas/displayPriceV32"
          },
          "total": {
            "$ref": "#/components/schemas/totalPriceV32"
          }
        }
      },
      "roomIdString": {
        "description": "A unique identifier for a specific room within an accommodation property. You can retrieve the full list of available room IDs by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).",
        "type": "string"
      },
      "product": {
        "title": "AccommodationsSearchProductOutput",
        "description": "Details product information. It requires `{\"extras\":[\"products\"]}`.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/productId"
          },
          "bundle": {
            "$ref": "#/components/schemas/bundleId"
          },
          "children": {
            "description": "The ages of the children allocated to this product.",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            }
          },
          "deal": {
            "$ref": "#/components/schemas/dealV32"
          },
          "inventory": {
            "$ref": "#/components/schemas/inventoryOutput"
          },
          "number_available": {
            "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": {
            "$ref": "#/components/schemas/productPoliciesSearch"
          },
          "price": {
            "$ref": "#/components/schemas/priceSearchV32"
          },
          "room": {
            "$ref": "#/components/schemas/roomIdString"
          }
        }
      },
      "url": {
        "description": "Internet address for the property page on Booking.com.",
        "type": "string",
        "format": "url"
      },
      "accommodationSearch": {
        "title": "AccommodationsSearchDataOutput",
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationId"
          },
          "commission": {
            "$ref": "#/components/schemas/commission"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "deep_link_url": {
            "$ref": "#/components/schemas/deepLinkUrl"
          },
          "price": {
            "$ref": "#/components/schemas/PriceSummarySearchV32"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/product"
            }
          },
          "url": {
            "$ref": "#/components/schemas/url"
          }
        }
      },
      "searchOutput": {
        "title": "AccommodationsSearchOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationSearch"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "availability_extras": {
        "description": "Input parameter to request for additional information about this product.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "extra_charges"
          ]
        }
      },
      "free_cancellation_type_filter": {
        "description": "Filters the result for the cancellation type specified. Possible values are free_cancellation. The result will contain all the products with free_cancellation.",
        "type": "string",
        "enum": [
          "free_cancellation"
        ]
      },
      "paymentInputFilter": {
        "description": "Payment input information to filter results.",
        "properties": {
          "timing": {
            "$ref": "#/components/schemas/paymentTimingFilter"
          }
        }
      },
      "filters": {
        "title": "AccommodationsAvailabilityFiltersInput",
        "description": "The filters to apply in this availability request.",
        "type": "object",
        "properties": {
          "cancellation_type": {
            "$ref": "#/components/schemas/free_cancellation_type_filter"
          },
          "meal_plan": {
            "$ref": "#/components/schemas/meal_plan_filter"
          },
          "payment": {
            "$ref": "#/components/schemas/paymentInputFilter"
          }
        }
      },
      "availabilityInput": {
        "title": "AccommodationsAvailabilityInput",
        "type": "object",
        "properties": {
          "accommodations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationId"
            }
          },
          "booker": {
            "$ref": "#/components/schemas/booker"
          },
          "checkin": {
            "$ref": "#/components/schemas/checkin"
          },
          "checkout": {
            "$ref": "#/components/schemas/checkout"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "extras": {
            "$ref": "#/components/schemas/availability_extras"
          },
          "filters": {
            "$ref": "#/components/schemas/filters"
          },
          "guests": {
            "$ref": "#/components/schemas/guests"
          }
        },
        "required": [
          "accommodations",
          "booker",
          "checkin",
          "checkout",
          "guests"
        ]
      },
      "children": {
        "description": "The information about maximum number of children and their allowed ages for this room.",
        "type": "array",
        "items": {
          "title": "AccommodationsChildren",
          "type": "object",
          "properties": {
            "total": {
              "description": "The maximum number of children for this room.",
              "type": "integer",
              "minimum": 1
            },
            "from_age": {
              "description": "The youngest age of the children allowed in this room.",
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "to_age": {
              "description": "The oldest age of the children allowed in this room.",
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            },
            "free_stay": {
              "description": "Whether children in this age bracket will be staying for free. False indicates their cost was already included in the price.",
              "type": "boolean"
            }
          }
        }
      },
      "maximumOccupancy": {
        "title": "AccommodationsMaximumOccupancy",
        "description": "Information related to maximum number of occupancy inside the room.",
        "type": "object",
        "properties": {
          "adults": {
            "description": "The maximum number of adults for this room.",
            "type": "integer",
            "minimum": 1
          },
          "children": {
            "$ref": "#/components/schemas/children"
          },
          "total": {
            "description": "The maximum number of guests for this room.",
            "type": "integer",
            "minimum": 1
          }
        }
      },
      "priceCurrencyOutput": {
        "title": "AccommodationsPriceCurrency",
        "description": "The price in both accommodation and booker currencies (booker might be null, if not requested)",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "productDetailedCancellationPolicyMultiCurrency": {
        "description": "The cancellation policy schedule for this product.",
        "type": "array",
        "items": {
          "title": "AccommodationsProductDetailedCancellationPolicyMultiCurrency",
          "type": "object",
          "properties": {
            "from": {
              "description": "The time from which this cancellation fee applies.",
              "oneOf": [
                {
                  "title": "Date-Time",
                  "type": "string",
                  "format": "date-time",
                  "description": "ISO 8601 date-time",
                  "example": "2026-06-01T12:00:00Z"
                },
                {
                  "title": "Literal 'now'",
                  "type": "string",
                  "enum": [
                    "now"
                  ],
                  "description": "Indicates that the cancellation fee applies immediately at booking time."
                },
                {
                  "title": "Not applicable (Null)",
                  "type": "null"
                }
              ]
            },
            "price": {
              "description": "The cancellation fee.",
              "$ref": "#/components/schemas/priceCurrencyOutput"
            }
          }
        }
      },
      "dataTypes_productCancellationType": {
        "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"
        ]
      },
      "productCancellationPolicyAvailabilityMultiCurrency": {
        "title": "AccommodationsProductCancellationPolicyMultiCurrency",
        "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"
          },
          "schedule": {
            "$ref": "#/components/schemas/productDetailedCancellationPolicyMultiCurrency"
          },
          "type": {
            "$ref": "#/components/schemas/dataTypes_productCancellationType"
          }
        }
      },
      "productPoliciesMultiCurrencyAvailability": {
        "title": "AccommodationsProductPolicies",
        "description": "The policies for this product.",
        "type": "object",
        "properties": {
          "cancellation": {
            "$ref": "#/components/schemas/productCancellationPolicyAvailabilityMultiCurrency"
          },
          "meal_plan": {
            "$ref": "#/components/schemas/productMealPlanPolicy"
          },
          "payment": {
            "$ref": "#/components/schemas/productPaymentPolicyNew"
          }
        }
      },
      "chargeableOnline": {
        "description": "Whether this charge is chargeable online or not. Not applicable to \"pay_at_the_property\" timing.",
        "type": "boolean",
        "nullable": true
      },
      "chargeBreakdownV32": {
        "description": "The charge breakdown. Includes taxes and fees.",
        "type": "array",
        "items": {
          "title": "AccommodationsChargeWithChargeableOnline",
          "description": "Detailed information about an individual charge, including where it is applied.",
          "type": "object",
          "properties": {
            "charge": {
              "$ref": "#/components/schemas/chargeTypeId"
            },
            "condition": {
              "$ref": "#/components/schemas/conditionId"
            },
            "included_in": {
              "title": "ChargeIncludedIn",
              "description": "Indicates where this charge is included",
              "type": "object",
              "properties": {
                "chargeable_online": {
                  "$ref": "#/components/schemas/chargeableOnline"
                },
                "display": {
                  "$ref": "#/components/schemas/display"
                }
              }
            },
            "mode": {
              "$ref": "#/components/schemas/chargeMode"
            },
            "percentage": {
              "$ref": "#/components/schemas/chargePercentage"
            },
            "total_amount": {
              "$ref": "#/components/schemas/totalAmountV32"
            },
            "unit_amount": {
              "$ref": "#/components/schemas/unitAmountV32"
            }
          }
        }
      },
      "chargeableOnlinePriceV32": {
        "description": "The amount collected by Booking.com from the Virtual Credit Cards (VCCs) when using online payment methods (e.g., pay_online_now, pay_online_later). Equivalent to `base + charges` where `included_in.chargeable_online=true`. Returns `null` for agency-model properties where Booking.com does not process payments.",
        "type": "object",
        "properties": {
          "accommodation_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        },
        "nullable": true
      },
      "priceV32": {
        "title": "AccommodationsProductPrice",
        "description": "Contains the price components of an accommodation product. The 'base', 'display', 'chargeable_online' prices, and 'charges' are returned only when explicitly requested using extras=extra_charges.",
        "type": "object",
        "properties": {
          "base": {
            "$ref": "#/components/schemas/basePriceV32"
          },
          "charges": {
            "$ref": "#/components/schemas/chargeBreakdownV32"
          },
          "chargeable_online": {
            "$ref": "#/components/schemas/chargeableOnlinePriceV32"
          },
          "display": {
            "$ref": "#/components/schemas/displayPriceV32"
          },
          "total": {
            "$ref": "#/components/schemas/totalPriceV32"
          }
        }
      },
      "availabilityProduct": {
        "title": "AccommodationsAvailabilityProductOutput",
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/productId"
          },
          "bundle": {
            "$ref": "#/components/schemas/bundleId"
          },
          "deal": {
            "$ref": "#/components/schemas/dealV32"
          },
          "inventory": {
            "$ref": "#/components/schemas/inventoryOutput"
          },
          "maximum_occupancy": {
            "$ref": "#/components/schemas/maximumOccupancy"
          },
          "number_available": {
            "description": "How many units of this product are still available.",
            "type": "integer",
            "minimum": 1
          },
          "policies": {
            "$ref": "#/components/schemas/productPoliciesMultiCurrencyAvailability"
          },
          "price": {
            "$ref": "#/components/schemas/priceV32"
          },
          "room": {
            "$ref": "#/components/schemas/roomIdString"
          }
        }
      },
      "chargeSummaryV32": {
        "title": "AccommodationsChargeSummary",
        "description": "A charge summed across multiple products.",
        "type": "object",
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/chargeTypeId"
          },
          "condition": {
            "$ref": "#/components/schemas/conditionId"
          },
          "included_in": {
            "title": "ChargeIncludedIn",
            "description": "Indicates where this charge is included",
            "type": "object",
            "properties": {
              "display": {
                "$ref": "#/components/schemas/display"
              },
              "chargeable_online": {
                "$ref": "#/components/schemas/chargeableOnline"
              }
            }
          },
          "total_amount": {
            "$ref": "#/components/schemas/totalAmountV32"
          }
        }
      },
      "recommendation_priceV32": {
        "title": "AccommodationsRecommendationPrice",
        "description": "Contains the price components of the recommended accommodation product or selection of products. The 'base', 'display', 'chargeable_online' prices, and 'charges' are returned only when explicitly requested using extras=extra_charges.",
        "type": "object",
        "properties": {
          "base": {
            "$ref": "#/components/schemas/basePriceV32"
          },
          "charges": {
            "description": "The charge breakdown. Includes taxes and fees.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/chargeSummaryV32"
            }
          },
          "chargeable_online": {
            "$ref": "#/components/schemas/chargeableOnlinePriceV32"
          },
          "display": {
            "$ref": "#/components/schemas/displayPriceV32"
          },
          "total": {
            "$ref": "#/components/schemas/totalPriceV32"
          }
        }
      },
      "recommendation_children": {
        "description": "The ages of the children allocated to this product.",
        "type": "array",
        "items": {
          "type": "integer",
          "minimum": 0,
          "maximum": 17
        }
      },
      "numberOfAdults": {
        "description": "The number of adults allocated to this product.",
        "type": "integer",
        "minimum": 1
      },
      "productV32": {
        "title": "AccommodationsAvailabilityRecommendationProductOutput",
        "description": "Represents a recommended product and its allocation details.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/productId"
          },
          "children": {
            "$ref": "#/components/schemas/recommendation_children"
          },
          "number_of_adults": {
            "$ref": "#/components/schemas/numberOfAdults"
          },
          "price": {
            "$ref": "#/components/schemas/recommendation_priceV32"
          }
        }
      },
      "recommendation": {
        "title": "AccommodationsAvailabilityRecommendationOutput",
        "description": "The products recommended for the provided search criteria.",
        "type": "object",
        "properties": {
          "price": {
            "$ref": "#/components/schemas/recommendation_priceV32"
          },
          "products": {
            "description": "",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/productV32"
            }
          }
        }
      },
      "availability": {
        "title": "AccommodationsAvailabilityDataOutput,",
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationId"
          },
          "currency": {
            "$ref": "#/components/schemas/currency"
          },
          "deep_link_url": {
            "$ref": "#/components/schemas/deepLinkUrl"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/availabilityProduct"
            }
          },
          "recommendation": {
            "$ref": "#/components/schemas/recommendation"
          },
          "url": {
            "$ref": "#/components/schemas/url"
          }
        }
      },
      "availabilityOutput": {
        "title": "AccommodationsAvailabilityOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/availability"
            }
          }
        }
      },
      "accommodationChainId": {
        "description": "A signed integer number that uniquely identifies an accommodation chain. Examples of chains are: Radisson Hotel Group, Hilton Worldwide etc. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/accommodations/accommodations/chains\" target=\"_blank\">/accommodations/chains</a>.",
        "type": "integer",
        "minimum": 1
      },
      "accommodationBrand": {
        "title": "AccommodationsChainsBrandDataOutput",
        "description": "Returns the internal code and name of an accommodation brand.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationBrandId"
          },
          "name": {
            "description": "Name of the accommodation brand.",
            "type": "string"
          }
        }
      },
      "accommodationChain": {
        "title": "AccommodationsChainsOutput",
        "description": "Returns the internal code, name and list of associated brands for an accommodation chain.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationChainId"
          },
          "brands": {
            "description": "List of all the brands associated with this accommodation chain.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationBrand"
            }
          },
          "name": {
            "description": "Name of the accommodation chain.",
            "type": "string"
          }
        }
      },
      "output": {
        "title": "AccommodationsChainsBrandOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationChain"
            }
          }
        }
      },
      "languageId": {
        "description": "A [IETF language tag code](https://en.wikipedia.org/wiki/IETF_language_tag) that uniquely identifies a supported human language or dialect. **Note:** Demand API only accepts lowercase for the language codes. Examples: \"nl\" for Dutch/Nederlands or \"en-us\" for English (US). To retrieve the full list of supported languages, call the `/common/languages` endpoint in the same Demand API version you are using.",
        "type": "string",
        "pattern": "^[a-z]{2}(-[a-z]{2})?$",
        "example": "en-us"
      },
      "input": {
        "title": "AccommodationsConstantsInput",
        "type": "object",
        "properties": {
          "constants": {
            "description": "Allows to filter the results only for specific sections.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "accommodation_facilities",
                "accommodation_themes",
                "accommodation_types",
                "bed_types",
                "charge_types",
                "facility_types",
                "review_scores",
                "room_facilities",
                "room_types"
              ]
            }
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          }
        }
      },
      "facilityTypeId": {
        "description": "A signed integer number that uniquely identifies the accommodation facility type. 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": 1
      },
      "translatedString": {
        "title": "TranslatedString",
        "description": "A string localised in multiple languages.",
        "type": "object",
        "patternProperties": {
          "^[a-z]{2}(-[a-z]{2})$": {
            "description": "The content localised in this language.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "accommodationFacility": {
        "title": "AccommodationsFacilityOutput",
        "description": "A service, equipment or characteristic available at property level, like for example: \"Swimming pool outdoor\".",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationFacilityId"
          },
          "facility_type": {
            "$ref": "#/components/schemas/facilityTypeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "facility_type",
          "name"
        ],
        "additionalProperties": false
      },
      "accommodationThemeId": {
        "description": "A signed integer number that uniquely identifies an accommodation property theme. Examples of themes are: Beach/Seaside, Ski/Wintersports, Luxury 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": 1
      },
      "accommodationTheme": {
        "title": "AccommodationsThemeOutput",
        "description": "Accommodations can be grouped in \"themes\" depending on their characteristics. For example: \"Beach/Seaside\".",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationThemeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "accommodationType": {
        "title": "AccommodationsTypeOutput",
        "description": "The type of an accommodation. Examples of types are \"Hotel\", \"Apartment\", etc.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationTypeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "bedTypeId": {
        "description": "A signed integer number that uniquely identifies a bed type. Examples of bed types are: Single, Double 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": 1
      },
      "bedType": {
        "title": "AccommodationsBedTypeOutput",
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/bedTypeId"
          },
          "description": {
            "description": "Translated description of the bed size in metric.",
            "$ref": "#/components/schemas/translatedString"
          },
          "description_imperial": {
            "description": "Translated description of the bed size in imperial.",
            "$ref": "#/components/schemas/translatedString"
          },
          "name": {
            "description": "Translated name of the bed type.",
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "description",
          "description_imperial",
          "name"
        ],
        "additionalProperties": false
      },
      "chargeType": {
        "title": "AccommodationsChargeTypeOutput",
        "description": "These are additional charges, which may be included or excluded from the reservation price. If excluded, the amounts may be added by the property upon checkout. The exclusions depend on several factors like local legislation, and sometimes can only be indicated but not be calculated at the time of the reservation.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/chargeTypeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "facilityType": {
        "title": "AccommodationsFacilityTypeOutput",
        "description": "A more generic designation meant to group a set of facilities.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/facilityTypeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "reviewScore": {
        "title": "AccommodationsReviewScoreOutput",
        "description": "Review score category name for each score interval.",
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/translatedString"
          },
          "minimum_score": {
            "description": "The minimum score of this review score category.",
            "type": "number",
            "multipleOf": 0.1,
            "minimum": 1,
            "maximum": 10
          },
          "maximum_score": {
            "description": "The maximum score of this review score category",
            "type": "number",
            "multipleOf": 0.1,
            "minimum": 1,
            "maximum": 10
          }
        },
        "required": [
          "name",
          "minimum_score",
          "maximum_score"
        ],
        "additionalProperties": false
      },
      "roomFacility": {
        "title": "AccommodationsRoomFacilityOutput",
        "description": "A service, equipment or characteristic available at room level, like for example: \"Coffee/Tea maker\".",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/roomFacilityId"
          },
          "facility_type": {
            "$ref": "#/components/schemas/facilityTypeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "facility_type",
          "name"
        ],
        "additionalProperties": false
      },
      "roomTypeId": {
        "description": "A signed integer number that uniquely identifies an accommodation property room type. Example of room types are: Suite, Apartment, Twin/Double 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": 1
      },
      "roomType": {
        "title": "AccommodationsRoomTypeOutput",
        "description": "Designations for different types of rooms, based on topology and/or setup. Examples: \"Twin/Double\" or \"Dormitory room\".",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/roomTypeId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        },
        "required": [
          "id",
          "name"
        ],
        "additionalProperties": false
      },
      "constants_output": {
        "title": "AccommodationsConstantsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "title": "ConstantsDataOutput",
            "type": "object",
            "properties": {
              "accommodation_facilities": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accommodationFacility"
                }
              },
              "accommodation_themes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accommodationTheme"
                }
              },
              "accommodation_types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/accommodationType"
                }
              },
              "bed_types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/bedType"
                }
              },
              "charge_types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/chargeType"
                }
              },
              "facility_types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/facilityType"
                }
              },
              "review_scores": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/reviewScore"
                }
              },
              "room_facilities": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/roomFacility"
                }
              },
              "room_types": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/roomType"
                }
              }
            }
          }
        }
      },
      "extrasV32": {
        "description": "Input parameter to request for additional information about the accommodation property. It should be passed as a JSON array with one or more items.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "bundles",
            "description",
            "facilities",
            "payment",
            "photos",
            "policies",
            "refuses_free_cancellation_requests",
            "rooms"
          ]
        }
      },
      "detailsInput": {
        "title": "AccommodationsDetailsInput",
        "type": "object",
        "properties": {
          "accommodation_facilities": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationFacilityId"
            }
          },
          "accommodation_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationTypeId"
            }
          },
          "accommodations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationId"
            },
            "maxItems": 100
          },
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "brands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationBrandId"
            }
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "extras": {
            "$ref": "#/components/schemas/extrasV32"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            }
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "payment": {
            "$ref": "#/components/schemas/paymentInputFilter"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "valueAddType": {
        "description": "Identifies the type of value-added benefit included in the bundle, such as complimentary services, monetary credits, percentage discounts, or experiential amenities. Enum values encode how the benefit is applied, including time scope (per day or per stay) and unit scope (per room or per adult).",
        "type": "string",
        "enum": [
          "parking",
          "food_drink_credit_per_day_per_room",
          "food_drink_credit_per_day_per_adult",
          "property_credit_per_day_per_room",
          "food_drink_credit_per_stay_per_adult",
          "food_drink_credit_per_stay_per_room",
          "property_credit_per_day_per_adult",
          "property_credit_per_stay_per_adult",
          "property_credit_per_stay_per_room",
          "food_drink_discount",
          "property_discount",
          "early_checkin",
          "late_checkout",
          "late_checkin",
          "spa_daily",
          "spa_hourly",
          "spa_massage",
          "high_speed_internet",
          "airport_transfer",
          "safari_game_drive",
          "safari_walk",
          "pets_stay",
          "bottle_of_wine",
          "bottle_of_champagne",
          "park_sleep_fly"
        ]
      },
      "valueAddTranslated": {
        "title": "ValueAddTranslatedOutput",
        "type": "object",
        "description": "Value-added service with its type and descriptive text localised in multiple languages.",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/valueAddType"
          },
          "description": {
            "title": "TranslatedStringArray",
            "description": "List of descriptive text lines for the value-added service, localised in multiple languages.",
            "type": "object",
            "patternProperties": {
              "^[a-z]{2}(-[a-z]{2})$": {
                "description": "The content localised in this language.",
                "type": "array",
                "nullable": true,
                "items": {
                  "$ref": "#/components/schemas/translatedString"
                }
              }
            }
          }
        }
      },
      "bundleTranslated": {
        "title": "BundleTranslatedOutput",
        "type": "object",
        "description": "List of value-added services included in this bundle.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Bundle identifier"
          },
          "value_adds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/valueAddTranslated"
            }
          }
        }
      },
      "valueAdds_bundlesTranslated": {
        "title": "BundlesTranslatedOutput",
        "description": "List of value-added bundles available for this accommodation. Each bundle groups one or more value-added benefits and includes localised descriptive text for display.",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/bundleTranslated"
        }
      },
      "checkinCheckoutTimes": {
        "title": "AccommodationsCheckinCheckoutTimesOutput",
        "type": "object",
        "properties": {
          "checkin_from": {
            "description": "The time from when checkin starts at this property.",
            "type": [
              "string",
              "null"
            ],
            "pattern": "(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:00"
          },
          "checkin_to": {
            "description": "The time till when checkin can be done at this property.",
            "type": [
              "string",
              "null"
            ],
            "pattern": "(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:00"
          },
          "checkout_from": {
            "description": "The time from when checkout starts at this property.",
            "type": [
              "string",
              "null"
            ],
            "pattern": "(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:00"
          },
          "checkout_to": {
            "description": "The time till when checkout can be done at this property.",
            "type": [
              "string",
              "null"
            ],
            "pattern": "(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]:00"
          }
        }
      },
      "contact": {
        "title": "AccommodationsContactOutput",
        "description": "Contact information of the accommodation. It can be `null` if the data is missing.",
        "type": "object",
        "properties": {
          "email": {
            "description": "Email address of the accommodation. It can be `null` if the data is missing.",
            "type": "string",
            "nullable": true
          },
          "telephone": {
            "description": "Telephone number of the accommodation. It can be `null` if the data is missing.",
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "contacts": {
        "title": "AccommodationsContactsOutput",
        "description": "Contact information of the accommodation.",
        "type": "object",
        "properties": {
          "general": {
            "$ref": "#/components/schemas/contact"
          },
          "reservations": {
            "$ref": "#/components/schemas/contact"
          }
        }
      },
      "traderAddress": {
        "title": "AccommodationsAddress",
        "description": "An address object.",
        "type": "object",
        "properties": {
          "address_line": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "country": {
            "type": "string"
          },
          "post_code": {
            "type": "string"
          }
        }
      },
      "description": {
        "title": "AccommodationsDescriptionOutput",
        "description": "Textual information about the accommodation. Requires `{\"extras\":[\"description\"]}`.",
        "type": "object",
        "properties": {
          "host_type": {
            "description": "Type of host.",
            "type": "string",
            "enum": [
              "private",
              "professional",
              "unknown"
            ]
          },
          "important_information": {
            "description": "Text containing important information about the property. The value is translated in the requested languages.",
            "$ref": "#/components/schemas/translatedString"
          },
          "license_numbers": {
            "description": "List of all the license numbers of this accommodation property.",
            "type": "array",
            "nullable": true,
            "items": {
              "type": "string"
            }
          },
          "text": {
            "description": "The translated description text of this accommodation property in the requested languages. The maximum number of characters returned may be limited by contract.",
            "$ref": "#/components/schemas/translatedString"
          },
          "trader": {
            "title": "TraderOutput",
            "description": "The trader information.",
            "type": "object",
            "nullable": true,
            "properties": {
              "address": {
                "description": "The address of the trader",
                "$ref": "#/components/schemas/traderAddress"
              },
              "email": {
                "description": "The email of the trader",
                "type": "string"
              },
              "name": {
                "description": "The name of the trader",
                "type": "string"
              },
              "registration_number": {
                "description": "The registration number of the trader",
                "type": "string"
              },
              "telephone": {
                "description": "The telephone of the trader",
                "type": "string"
              },
              "trade_register": {
                "description": "The trade register name",
                "type": "string"
              },
              "trader_verified": {
                "description": "Indicates whether the trader has successfully met Booking.com's internal verification process, based on established criteria and checklists",
                "type": "boolean"
              }
            }
          }
        }
      },
      "facility": {
        "title": "AccommodationsFacilityOutput",
        "description": "Facility information for the accommodation.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationFacilityId"
          },
          "attributes": {
            "type": "array",
            "items": {
              "description": "List of optional attributes for this facility.",
              "type": "string",
              "enum": [
                "offsite",
                "paid"
              ]
            }
          }
        }
      },
      "internetFacility": {
        "title": "AccommodationsInternetFacilityOutput",
        "description": "Information about the internet facilities available at the accommodation.",
        "type": "object",
        "properties": {
          "charge_mode": {
            "type": "string",
            "description": "The charging model for internet access at the accommodation.",
            "nullable": true,
            "enum": [
              "charges_are_applicable",
              "free",
              "per_day",
              "per_half_hour",
              "per_hour",
              "per_minute"
            ]
          },
          "connection_type": {
            "type": "string",
            "description": "The type of internet connection available, whether wireless (Wi-Fi) or wired.",
            "nullable": true,
            "enum": [
              "wifi",
              "wired"
            ]
          },
          "coverage": {
            "type": "string",
            "description": "The extent of the internet coverage within the accommodation, indicating the areas where internet access is available.",
            "nullable": true,
            "enum": [
              "all_rooms",
              "business_center",
              "entire_property",
              "public_areas",
              "some_rooms"
            ]
          },
          "price": {
            "description": "The price for using the internet facility, if applicable.",
            "$ref": "#/components/schemas/monetaryAmount",
            "minimum": 0,
            "nullable": true
          }
        }
      },
      "parkingFacility": {
        "title": "AccommodationsParkingFacilityOutput",
        "description": "Information about the parking facilities available at the accommodation, including pricing, type, location, and reservation requirements.",
        "type": "object",
        "properties": {
          "charge_mode": {
            "type": "string",
            "description": "The charging model for parking, such as per hour, per day, or free.",
            "nullable": true,
            "enum": [
              "free",
              "charges_are_applicable",
              "charges_may_apply",
              "per_hour",
              "per_day",
              "per_week",
              "per_stay"
            ]
          },
          "location": {
            "type": "string",
            "description": "The location of the parking facility relative to the accommodation (on-site or nearby).",
            "nullable": true,
            "enum": [
              "on_site",
              "nearby"
            ]
          },
          "price": {
            "$ref": "#/components/schemas/monetaryAmount",
            "description": "The price for using the parking facility, if applicable.",
            "minimum": 0,
            "nullable": true
          },
          "reservation": {
            "type": "string",
            "description": "Indicates whether a reservation is required for parking at the accommodation.",
            "nullable": true,
            "enum": [
              "needed",
              "not_needed",
              "not_possible"
            ]
          },
          "type": {
            "type": "string",
            "description": "The type of parking available, either public or private.",
            "nullable": true,
            "enum": [
              "private",
              "public"
            ]
          }
        }
      },
      "restaurantFacility": {
        "title": "AccommodationsRestaurantFacilityOutput",
        "description": "Information about the restaurant facilities available at the accommodation.",
        "type": "object",
        "properties": {
          "accept_reservations": {
            "description": "Indicates whether the restaurant accepts reservations.",
            "type": "boolean"
          },
          "guests_only": {
            "description": "Indicates whether the restaurant is exclusive to guests or open to the public.",
            "type": "boolean"
          },
          "name": {
            "type": "string",
            "description": "The name of the restaurant."
          },
          "status": {
            "type": "string",
            "description": "The operational status of the restaurant (e.g., open or closed).",
            "nullable": true,
            "enum": [
              "closed",
              "open"
            ]
          }
        }
      },
      "swimmingPoolFacility": {
        "title": "AccommodationsSwimmingPoolFacilityOutput",
        "description": "Details about the swimming pool occupancy limits and options.",
        "type": "object",
        "properties": {
          "allowed_age_type": {
            "type": "string",
            "description": "The age group allowed to use the swimming pool (e.g., adults only, all ages, or kids only).",
            "nullable": true,
            "enum": [
              "adults_only",
              "all_ages",
              "kids_only"
            ]
          },
          "payment_type": {
            "type": "string",
            "description": "The payment model for pool access, either free or paid.",
            "nullable": true,
            "enum": [
              "free",
              "paid"
            ]
          },
          "type": {
            "type": "string",
            "description": "The type of swimming pool (indoor, outdoor, or a combination).",
            "nullable": true,
            "enum": [
              "indoor",
              "indoor_and_outdoor",
              "outdoor"
            ]
          }
        }
      },
      "facilityDetails": {
        "title": "accommodationsFacilityDetailsOutput",
        "description": "Comprehensive information about the facilities available at the accommodation.",
        "type": "object",
        "properties": {
          "internet_facility": {
            "description": "Details about the internet facilities available at the accommodation, including price, charge mode and connection type.",
            "type": "object",
            "$ref": "#/components/schemas/internetFacility"
          },
          "parking_facilities": {
            "type": "array",
            "description": "A list of parking facilities available at the accommodation.",
            "items": {
              "$ref": "#/components/schemas/parkingFacility"
            }
          },
          "restaurant_facilities": {
            "type": "array",
            "description": "A list of restaurant facilities available at the accommodation.",
            "items": {
              "$ref": "#/components/schemas/restaurantFacility"
            }
          },
          "swimming_pool_facilities": {
            "type": "array",
            "description": "A list of swimming pool facilities available at the accommodation.",
            "items": {
              "$ref": "#/components/schemas/swimmingPoolFacility"
            }
          }
        }
      },
      "fiscalInformation": {
        "title": "AccommodationsFiscalInformationOutput",
        "description": "All fiscal related information of this accommodation property.",
        "type": "object",
        "properties": {
          "legal_name": {
            "type": "string"
          },
          "vat_number": {
            "type": "string"
          }
        }
      },
      "checkinMethod": {
        "description": "An enumeration that describes the conditions for the checkin process and for collecting the key to access the property. This is typically relevant for non-hotel accommodations (like houses or apartments) without a 24 hours front-desk.",
        "type": "string",
        "enum": [
          "door_code",
          "lock_box",
          "reception",
          "secret_spot",
          "someone_will_meet",
          "unknown"
        ]
      },
      "keyLocation": {
        "description": "Location of the key to access this accommodation property.",
        "type": "string",
        "enum": [
          "at_the_property",
          "door_code",
          "different_place",
          "unknown"
        ]
      },
      "keyCollectionInformation": {
        "title": "AccommodationsKeyCollectionInformationOutput",
        "type": "object",
        "properties": {
          "checkin_method": {
            "$ref": "#/components/schemas/checkinMethod"
          },
          "key_location": {
            "$ref": "#/components/schemas/keyLocation"
          }
        }
      },
      "locations_cityId": {
        "description": "Uniquely identifies a city. The full list of cities can be retrieved from [/common/locations/cities](#/common/locations/cities).",
        "type": "integer"
      },
      "coordinate": {
        "type": "number",
        "multipleOf": 0.000001
      },
      "locations_coordinates": {
        "titles": "Coordinates",
        "type": "object",
        "properties": {
          "latitude": {
            "description": "The latitude.",
            "$ref": "#/components/schemas/coordinate"
          },
          "longitude": {
            "description": "The longitude.",
            "$ref": "#/components/schemas/coordinate"
          }
        }
      },
      "locations_countryId": {
        "description": "ISO 3166 country code. The full list of countries can be retrieved from [/common/locations/countries](#/common/locations/countries).",
        "type": "string",
        "pattern": "[a-z]{2}"
      },
      "accommodationLocation": {
        "title": "AccommodationsLocationOutput",
        "description": "All location related information of this accommodation property.",
        "type": "object",
        "properties": {
          "address": {
            "description": "Translated accommodation address.",
            "$ref": "#/components/schemas/translatedString"
          },
          "city": {
            "$ref": "#/components/schemas/locations_cityId"
          },
          "coordinates": {
            "$ref": "#/components/schemas/locations_coordinates"
          },
          "country": {
            "$ref": "#/components/schemas/locations_countryId"
          },
          "districts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/districtId"
            }
          },
          "postal_code": {
            "type": "string"
          },
          "regions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/regionId"
            }
          }
        }
      },
      "mealPrices": {
        "title": "MealPrices",
        "description": "Details regarding the meal pricing options offered at this accommodation.",
        "type": "object",
        "properties": {
          "breakfast": {
            "description": "The price of breakfast per person, expressed in the accommodation's local currency. If the value is null, it indicates that breakfast pricing is not available.",
            "type": "number",
            "minimum": 0,
            "nullable": true
          },
          "dinner": {
            "description": "The price of dinner per person, expressed in the accommodation's local currency. If the value is null, it indicates that dinner pricing is not available.",
            "type": "number",
            "minimum": 0,
            "nullable": true
          },
          "lunch": {
            "description": "The price of lunch per person, expressed in the accommodation's local currency. If the value is null, it indicates that lunch pricing is not available.",
            "type": "number",
            "minimum": 0,
            "nullable": true
          }
        }
      },
      "paymentCardId": {
        "description": "A signed integer number that uniquely identifies a payment type. Examples of payment types are the different credit and debit cards. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/cards\" target=\"_blank\">common/payments/cards</a>.",
        "type": "integer",
        "minimum": 1
      },
      "paymentMethods": {
        "title": "AccommodationsDetailsPaymentMethodsOutput",
        "description": "Payment methods accepted by this property.",
        "type": "object",
        "properties": {
          "cards": {
            "description": "Credit cards accepted when paying at the property",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/paymentCardId"
            }
          },
          "cash": {
            "description": "Whether this property accepts cash",
            "type": "boolean",
            "example": true
          },
          "virtual_cards": {
            "description": "Virtual credit cards accepted when paying at the property",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/paymentCardId"
            }
          }
        }
      },
      "payment": {
        "title": "AccommodationsPaymentOutput",
        "description": "Payment information related to this property. Requires `{\"extras\":[\"payment\"]}`.",
        "type": "object",
        "properties": {
          "methods": {
            "$ref": "#/components/schemas/paymentMethods"
          },
          "timings": {
            "$ref": "#/components/schemas/productPaymentTimings"
          },
          "cvc_required": {
            "description": "Whether cvc is mandatory for creating order for this accommodation.",
            "type": "boolean"
          },
          "domestic_no_cc": {
            "description": "Whether domestic bookers can book without credit card for products with free cancellation policies.",
            "type": "boolean"
          },
          "amex_cvc_required": {
            "description": "If amex card is used as payment method to create order for this accommodation, whether cvc is mandatory for that.",
            "type": "boolean"
          }
        }
      },
      "photoUrl": {
        "title": "AccommodationsPhotoUrlOutput",
        "type": "object",
        "properties": {
          "large": {
            "description": "URL of the photo image with a maximum width of 1280 pixels.",
            "type": "string",
            "format": "url",
            "example": "https://q-xx.bstatic.com/xdata/images/hotel/max1280/20934654.jpg?k=806399263699a47361bdbbefc9c872a3db03eea26c4a815f5f4df95c93e38cdb&o="
          },
          "standard": {
            "description": "URL of the photo image with a maximum width of 500 pixels.",
            "type": "string",
            "format": "url",
            "example": "https://q-xx.bstatic.com/xdata/images/hotel/max500/20934654.jpg?k=806399263699a47361bdbbefc9c872a3db03eea26c4a815f5f4df95c93e38cdb&o="
          },
          "thumbnail": {
            "description": "URL of the photo thumbnail image with dimensions 100x100 pixels.",
            "type": "string",
            "format": "url",
            "example": "https://q-xx.bstatic.com/xdata/images/hotel/100x100/20934654.jpg?k=806399263699a47361bdbbefc9c872a3db03eea26c4a815f5f4df95c93e38cdb&o="
          },
          "thumbnail_large": {
            "description": "URL of the photo thumbnail image with dimensions 300x300 pixels.",
            "type": "string",
            "format": "url",
            "example": "https://q-xx.bstatic.com/xdata/images/hotel/300x300/20934654.jpg?k=806399263699a47361bdbbefc9c872a3db03eea26c4a815f5f4df95c93e38cdb&o="
          }
        }
      },
      "accommodationPhoto": {
        "title": "AccommodationsPhotoOutput",
        "type": "object",
        "properties": {
          "main_photo": {
            "description": "Flags this as the main photo. Not returned otherwise.",
            "type": "boolean",
            "example": true
          },
          "tags": {
            "type": "array",
            "items": {
              "description": "A list of tags associated with the photo. Manually generated.",
              "type": "string",
              "example": "Bathroom"
            }
          },
          "url": {
            "$ref": "#/components/schemas/photoUrl"
          }
        }
      },
      "petsPolicy": {
        "title": "AccommodationsPetsPolicyOutput",
        "type": "object",
        "properties": {
          "allowed": {
            "description": "An enumerated value describing if pets are allowed",
            "type": "string",
            "enum": [
              "yes",
              "no",
              "upon_request"
            ]
          },
          "charge_mode": {
            "description": "An enumerated value describing the charge mode for pets",
            "type": "string",
            "enum": [
              "free",
              "charges_may_apply"
            ]
          }
        }
      },
      "referenceDate": {
        "type": "string",
        "enum": [
          "checkin",
          "checkout"
        ]
      },
      "paymentCollectionDate": {
        "type": "object",
        "properties": {
          "reference_date": {
            "$ref": "#/components/schemas/referenceDate"
          },
          "days_offset": {
            "description": "The number of days on or before reference date.",
            "type": "integer"
          }
        }
      },
      "paymentMethod": {
        "type": "string",
        "enum": [
          "bank_transfer",
          "cash",
          "credit_card",
          "paypal",
          "other"
        ]
      },
      "paymentRefundDate": {
        "type": "object",
        "properties": {
          "reference_date": {
            "$ref": "#/components/schemas/referenceDate"
          },
          "days_offset": {
            "description": "The number of days on or after reference date.",
            "type": "integer"
          }
        }
      },
      "deposit": {
        "properties": {
          "collect": {
            "properties": {
              "date": {
                "$ref": "#/components/schemas/paymentCollectionDate"
              },
              "payment_method": {
                "$ref": "#/components/schemas/paymentMethod"
              }
            }
          },
          "refund": {
            "properties": {
              "date": {
                "$ref": "#/components/schemas/paymentRefundDate"
              },
              "payment_method": {
                "$ref": "#/components/schemas/paymentMethod"
              }
            }
          }
        }
      },
      "damagePolicy": {
        "type": "object",
        "description": "DamagePolicy of the property",
        "properties": {
          "deposit": {
            "description": "If a deposit needs to be paid upfront",
            "type": "object",
            "$ref": "#/components/schemas/deposit"
          },
          "amount": {
            "description": "The amount that can be charged",
            "type": "number",
            "format": "double"
          },
          "currency": {
            "description": "Currency in which payment needs to be made",
            "type": "string"
          }
        }
      },
      "travelProud": {
        "description": "Boolean value is \"true\" if property has travel proud badge and \"false\" otherwise.",
        "type": "boolean"
      },
      "programmes": {
        "title": "AccommodationsProgrammes",
        "description": "Details of programmes undergone by the property.",
        "type": "object",
        "properties": {
          "travel_proud": {
            "$ref": "#/components/schemas/travelProud"
          }
        }
      },
      "number_of_reviews": {
        "description": "Number of validated reviews for this accommodation.",
        "type": "integer",
        "minimum": 0
      },
      "review_score": {
        "description": "A decimal number indicating the current review score of this accommodation property, in the range 1..10.",
        "type": "number",
        "multipleOf": 0.1,
        "minimum": 1,
        "maximum": 10
      },
      "rating": {
        "title": "AccommodationsDetailsRatingOutput",
        "type": "object",
        "properties": {
          "number_of_reviews": {
            "$ref": "#/components/schemas/number_of_reviews"
          },
          "preferred": {
            "description": "Boolean value is \"true\" if this accommodation is in the Booking.com's preferred program and \"false\" otherwise.",
            "type": "boolean",
            "example": true
          },
          "review_score": {
            "$ref": "#/components/schemas/review_score",
            "nullable": true
          },
          "stars": {
            "description": "Number of stars of this accommodation property.",
            "type": "number",
            "format": "double",
            "multipleOf": 0.1,
            "nullable": true,
            "minimum": 1,
            "maximum": 5,
            "example": 4
          },
          "stars_type": {
            "description": "An enumerated value describing which type of stars this accommodation has.",
            "type": "string",
            "nullable": true,
            "enum": [
              "estimated_by_accommodation",
              "estimated_by_booking",
              "official"
            ]
          }
        }
      },
      "roomAttribute": {
        "type": "string",
        "enum": [
          "non_smoking",
          "smoking",
          "work_friendly"
        ]
      },
      "bed": {
        "title": "AccommodationsBedOutput",
        "description": "Detail information about a type of bed and number of beds included in this configuration.",
        "type": "object",
        "properties": {
          "bed_type": {
            "$ref": "#/components/schemas/bedTypeId"
          },
          "number_of_beds": {
            "description": "Number of similar beds included in this configuration.",
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "bedConfiguration": {
        "title": "AccommodationsBedConfigurationOutput",
        "description": "List of all beds available for this configuration.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Uniquely identifies this bed configuration.",
            "type": "string"
          },
          "configuration": {
            "description": "Detail list of all different types and number of beds included in this configuration.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/bed"
            }
          }
        }
      },
      "bedOption": {
        "title": "AccommodationsBedOptionOutput",
        "description": "List of all possible bed arrangements. For apartments and other types of hotel accommodations, beds and bathrooms may be available as separate rooms.",
        "type": "object",
        "properties": {
          "bed_configurations": {
            "description": "Lists all alternative bed configurations that are supported.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/bedConfiguration"
            }
          },
          "has_bathroom": {
            "description": "Flags if this area includes its own bathroom.",
            "type": "boolean"
          },
          "is_bedroom": {
            "description": "Flags if this area is marked as a bedroom, otherwise, it should be considered a living room.",
            "type": "boolean"
          }
        }
      },
      "roomV32": {
        "title": "AccommodationsDetailsRoomOutput",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/roomIdString"
          },
          "attributes": {
            "description": "Lists a set of attribute qualifiers for this room. Will not be returned if no relevant attributes are applicable.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/roomAttribute"
            }
          },
          "bed_options": {
            "description": "Lists all possible bedding options for this room or apartment.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/bedOption"
            }
          },
          "cots_and_extra_beds": {
            "title": "AccommodationsRoomsCotsAndExtraBedsOutput",
            "description": "Lists room options regarding adding cots and/or extra beds.",
            "type": "object",
            "properties": {
              "are_allowed_together": {
                "description": "Flags if cots and extra beds can be placed together in the room. `true` allows both up to their maximum limits. `false` requires exclusive choice of either cots or extra beds.",
                "type": "boolean"
              },
              "maximum_number_of_cots": {
                "description": "Maximum number of cots that can be added.",
                "type": "integer",
                "minimum": 0
              },
              "maximum_number_of_extra_beds": {
                "description": "Maximum number of extra beds that can be added.",
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "description": {
            "description": "Translated description of the room.",
            "$ref": "#/components/schemas/translatedString"
          },
          "facilities": {
            "description": "The list of facilities available in this room. Requires `{\"extras\":[\"rooms\",\"facilities\"]}`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/facility"
            }
          },
          "maximum_occupancy": {
            "title": "AccommodationsDetailsMaximumOccupancyOutput",
            "description": "Occupancy limits and options.",
            "type": "object",
            "properties": {
              "adults": {
                "description": "Maximum number of adults.",
                "type": "integer",
                "minimum": 0
              },
              "children": {
                "description": "Maximum number of children.",
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "name": {
            "description": "Translated name of the room.",
            "$ref": "#/components/schemas/translatedString"
          },
          "number_of_rooms": {
            "title": "AccommodationsNumberOfRoomsOutput",
            "description": "Total rooms available.",
            "type": "object",
            "properties": {
              "bathrooms": {
                "description": "Total number of bathrooms.",
                "type": "integer",
                "minimum": 0
              },
              "bedrooms": {
                "description": "Total number of rooms equipped or that can be fitted with a bed.",
                "type": "integer",
                "minimum": 0
              },
              "living_rooms": {
                "description": "Total number of rooms without a bed.",
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "photos": {
            "description": "List of photos for this accommodation room. The maximum number of photos returned may be limited by contract. Requires `{\"extras\":[\"rooms\",\"photos\"]}`. The photos are returned in no particular order.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationPhoto"
            }
          },
          "room_type": {
            "$ref": "#/components/schemas/roomTypeId"
          },
          "size": {
            "description": "The room area in square meters.",
            "type": "number",
            "minimum": 0,
            "example": 20
          }
        }
      },
      "accommodationDetail": {
        "title": "AccommodationsDetailsDataOutput",
        "description": "All static information related to an accommodation property (excludes information on availability).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationId"
          },
          "accommodation_type": {
            "$ref": "#/components/schemas/accommodationTypeId"
          },
          "booker_address_required": {
            "description": "A boolean indicating whether a booker address is required for the property. If true, a booker address must be provided in the orders/create endpoint. If false, the booker address is not required and can be omitted from the orders/create endpoint.",
            "type": "boolean"
          },
          "brands": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationBrandId"
            }
          },
          "bundles": {
            "$ref": "#/components/schemas/valueAdds_bundlesTranslated"
          },
          "checkin_checkout_times": {
            "$ref": "#/components/schemas/checkinCheckoutTimes"
          },
          "contacts": {
            "$ref": "#/components/schemas/contacts"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "description": {
            "$ref": "#/components/schemas/description"
          },
          "facilities": {
            "description": "The list of facilities available in this property. Requires `{\"extras\":[\"facilities\"]}`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/facility"
            }
          },
          "facility_details": {
            "description": "Provides detailed information about the facilities available at the accommodation. This data is accessible by including `{\"extras\":[\"facilities\"]}` in the request.",
            "$ref": "#/components/schemas/facilityDetails"
          },
          "fiscal_information": {
            "$ref": "#/components/schemas/fiscalInformation"
          },
          "is_genius": {
            "description": "Whether the accommodation is genius.",
            "type": "boolean"
          },
          "key_collection_information": {
            "$ref": "#/components/schemas/keyCollectionInformation"
          },
          "location": {
            "$ref": "#/components/schemas/accommodationLocation"
          },
          "long_stay_friendly": {
            "description": "Whether the accommodation is long stay friendly.",
            "type": "boolean"
          },
          "meal_prices": {
            "$ref": "#/components/schemas/mealPrices"
          },
          "name": {
            "description": "Translated name of the accommodation property.",
            "$ref": "#/components/schemas/translatedString"
          },
          "number_of_rooms": {
            "description": "Total number of rooms in the property. Please note that this is not an availability call and that this number is mostly used to determine the size and type of a property.",
            "type": "integer",
            "minimum": 0
          },
          "payment": {
            "$ref": "#/components/schemas/payment"
          },
          "photos": {
            "description": "List of photos for this accommodation property. The maximum number of photos returned may be limited by contract. Requires `{\"extras\":[\"photos\"]}`. The photos are returned in no particular order.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationPhoto"
            }
          },
          "policies": {
            "title": "AccommodationsPoliciesOutput",
            "description": "Set of price relevant rules, options and constraints defined by the accommodation for this product. Requires `{\"extras\":[\"policies\"]}`.",
            "type": "object",
            "properties": {
              "cots_and_extra_beds": {
                "description": "Prices for cots and extra beds.",
                "type": "array",
                "items": {
                  "title": "PoliciesCotsAndExtraBedsOutput",
                  "type": "object",
                  "properties": {
                    "age": {
                      "title": "AccommodationsPoliciesAgeOutput",
                      "description": "Ages to which this entry is applicable. Children are aged 0-17. 18/null means adult. The interval is inclusive.",
                      "type": "object",
                      "properties": {
                        "from": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        },
                        "to": {
                          "type": [
                            "integer",
                            "null"
                          ],
                          "minimum": 0,
                          "maximum": 18
                        }
                      }
                    },
                    "mode": {
                      "description": "How the price is applied per cot/extra bed.",
                      "type": "string",
                      "enum": [
                        "per_night",
                        "per_stay"
                      ]
                    },
                    "price": {
                      "description": "Non-null when the price is fixed or free.",
                      "$ref": "#/components/schemas/monetaryAmount",
                      "minimum": 0,
                      "nullable": true
                    },
                    "type": {
                      "description": "Whether this entry relates to a cot or an extra bed.",
                      "type": "string",
                      "enum": [
                        "cot",
                        "extra_bed"
                      ]
                    }
                  }
                }
              },
              "maximum_checkin_age": {
                "description": "Defines the maximum (inclusive) check-in age for this property. If null, then there is no maximum age for checking in",
                "type": "integer",
                "minimum": 18
              },
              "minimum_checkin_age": {
                "description": "Defines the minimum (inclusive) check-in age for this property.",
                "type": "integer",
                "minimum": 18
              },
              "minimum_guest_age": {
                "description": "Defines the minimum age (inclusive) for staying in this property. If \"0\", then a guest of any age is allowed.",
                "type": "integer",
                "minimum": 0
              },
              "pets": {
                "$ref": "#/components/schemas/petsPolicy"
              },
              "damage": {
                "$ref": "#/components/schemas/damagePolicy"
              }
            }
          },
          "price_category": {
            "description": "Indicates the qualitative price reference (between $ and $$$$) on how expensive an accommodation is. Accommodations in the same city are sorted by ascending price (average per guest per night in the last month), the ones in the lowest 25 percentile are in category $, between 25 and 50 percentile are in category $$, between 50 and 75 percentile are in category $$$, remaining ones are in category $$$$.",
            "type": "string",
            "pattern": "[$]{0,4}"
          },
          "programmes": {
            "$ref": "#/components/schemas/programmes"
          },
          "ranking": {
            "description": "The public ranking of the accommodation.",
            "type": "number",
            "minimum": 0
          },
          "rating": {
            "$ref": "#/components/schemas/rating"
          },
          "refuses_free_cancellation_requests": {
            "description": "Shows whether the property does not accept requests to waive the cancellation fee. Check this field before sending the cancellation request.\n\ntrue: The property does not accept waiving the cancellation fee.\nfalse: The property may approve a request to cancel the reservation without paying the cancellation fee",
            "type": "boolean"
          },
          "rooms": {
            "description": "The list of room types available at this property. Requires `{\"extras\":[\"rooms\"]}`.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/roomV32"
            }
          },
          "spoken_languages": {
            "description": "Languages spoken by the staff of this accommodation property.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            }
          },
          "themes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationThemeId"
            }
          },
          "url": {
            "title": "AccommodationsUrlsOutput",
            "description": "Consolidated URLs for web and app redirects.",
            "type": "object",
            "properties": {
              "app": {
                "description": "A mobile app URL that directs the user to a specific page or content within the Booking.com app. The link can only be used on a device with the Booking.com app installed. It typically includes an Affiliate ID (AID) to attribute bookings to the affiliate partner when users are redirected.",
                "$ref": "#/components/schemas/deepLinkUrl"
              },
              "web": {
                "description": "Internet address for the property page on Booking.com.",
                "$ref": "#/components/schemas/url"
              }
            }
          },
          "work_friendly": {
            "description": "Whether the accommodation is work friendly.",
            "type": "boolean"
          }
        }
      },
      "detailsOutput": {
        "title": "AccommodationsDetailsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationDetail"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      },
      "changesInput": {
        "title": "AccommodationsDetailsChangesInput",
        "type": "object",
        "properties": {
          "last_change": {
            "description": "The timestamp in ISO-8601 format from which changes to accommodations are returned (inclusive). Only UTC time zone is supported. We support changes for last 24 hours. Format: YYYY-MM-DDTHH:mm:ss+00:00",
            "type": "string",
            "format": "date-time"
          },
          "filters": {
            "description": "parameter basis which filtering needs to be done. Only one of (countries or cities) must be provided.",
            "type": "object",
            "properties": {
              "countries": {
                "description": "Filter changes based on these countries. The valid full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/countries\" target=\"_blank\">common/locations/countries</a>.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/countryId"
                }
              },
              "cities": {
                "description": "Filter changes based on these cities. The valid full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonlocations/common/locations/cities\" target=\"_blank\">common/locations/cities</a>.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/cityId"
                }
              }
            }
          }
        },
        "required": [
          "last_change"
        ]
      },
      "changes": {
        "description": "The list of changed accommodations.",
        "type": "object",
        "properties": {
          "changed": {
            "description": "Accommodations which have had relevant changes to their content since the given timestamp. Changes being tracked include: general information, standard phrase, photos, payments, facilities and rooms.",
            "type": "array",
            "items": {
              "type": "integer"
            }
          },
          "closed": {
            "description": "Accommodations which have closed since the given timestamp. Note that these same accommodations may be re-opened shortly after.",
            "type": "object",
            "properties": {
              "fraud": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "permanently": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              },
              "temporarily": {
                "type": "array",
                "items": {
                  "type": "integer"
                }
              }
            }
          },
          "opened": {
            "description": "Accommodations which have opened since the given timestamp. Note that sometimes accommodations may be closed again shortly after.",
            "type": "array",
            "items": {
              "type": "integer"
            }
          }
        }
      },
      "changesOutput": {
        "title": "AccommodationsDetailsChangesOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "changes": {
                "$ref": "#/components/schemas/changes"
              },
              "from": {
                "description": "ISO 8601 timestamp which indicates the timestamp from which the changes are returned (inclusive).",
                "type": "string",
                "format": "date-time"
              },
              "next": {
                "description": "ISO 8601 timestamp which indicates the next timestamp to be used for `last_change`. This will be 1 second after the latest change returned in the result (all changes from the \"last\" second are returned). NOTE: this field will not be present unless changes are returned. In this case, repeat the call after one minute with the same `last_change` date.",
                "type": "string",
                "format": "date-time"
              },
              "total_changes": {
                "description": "Total number of changed accommodation ids returned. If 0, then repeat the call after one minute with the same `last_change` date.",
                "type": "integer"
              }
            }
          }
        }
      },
      "travel_purpose": {
        "description": "Defines if this was a leisure or business trip.",
        "type": "string",
        "enum": [
          "business",
          "leisure"
        ]
      },
      "reviewer_type": {
        "description": "The reviewer type.",
        "type": "string",
        "enum": [
          "couple",
          "extended_group",
          "family_with_children",
          "solo_traveller"
        ]
      },
      "reviewer": {
        "title": "AccommodationsReviewer",
        "type": "object",
        "properties": {
          "countries": {
            "description": "Limits reviews to those written by reviewer from the given country.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/countryId"
            }
          },
          "travel_purposes": {
            "description": "Limits reviews to those written by specific travel purposes.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/travel_purpose"
            }
          },
          "types": {
            "description": "Limits reviews to those written by specific reviewer type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reviewer_type"
            }
          }
        }
      },
      "reviewsInput": {
        "title": "AccommodationsReviewsInput",
        "type": "object",
        "properties": {
          "accommodations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationId"
            },
            "minItems": 1,
            "maxItems": 100
          },
          "languages": {
            "description": "Limits reviews to those written in this language.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            }
          },
          "last_change": {
            "description": "Limits the reviews to those changed after the given date. Format: YYYY-MM-DD.",
            "type": "string",
            "format": "date"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "reviewer": {
            "$ref": "#/components/schemas/reviewer"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "score": {
            "title": "AccommodationsReviewScoreInput",
            "type": "object",
            "properties": {
              "maximum": {
                "description": "Limits the reviews to those having score lesser or equal to this value.",
                "type": "integer",
                "minimum": 1,
                "maximum": 10
              },
              "minimum": {
                "description": "Limits the reviews to those having score greater or equal to this value.",
                "type": "integer",
                "minimum": 1,
                "maximum": 10
              }
            }
          }
        },
        "required": [
          "accommodations"
        ]
      },
      "reviews": {
        "type": "array",
        "items": {
          "title": "AccommodationsReviewOutput",
          "type": "object",
          "properties": {
            "id": {
              "description": "Unique identifier of the review.",
              "type": "integer"
            },
            "date": {
              "description": "The date when the review was last modified. Format: YYYY-MM-DD.",
              "type": "string",
              "format": "date"
            },
            "language": {
              "$ref": "#/components/schemas/languageId"
            },
            "negative": {
              "description": "Negative comments from this review.",
              "type": [
                "string",
                "null"
              ]
            },
            "positive": {
              "description": "Positive comments from this review.",
              "type": [
                "string",
                "null"
              ]
            },
            "reviewer": {
              "title": "AccommodationsReviewerOutput",
              "type": "object",
              "properties": {
                "country": {
                  "$ref": "#/components/schemas/countryId"
                },
                "name": {
                  "description": "Name of the reviewer. If the value is null then the reviewer is anonymous.",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "travel_purpose": {
                  "$ref": "#/components/schemas/travel_purpose"
                },
                "type": {
                  "$ref": "#/components/schemas/reviewer_type"
                }
              }
            },
            "score": {
              "description": "The aggregated score of the review.",
              "type": "number",
              "multipleOf": 0.1,
              "minimum": 1,
              "maximum": 10
            },
            "summary": {
              "description": "The summary of the review.",
              "type": [
                "string",
                "null"
              ]
            },
            "text_meets_guidelines": {
              "description": "Set to true when review meets the guidelines. The review text will be removed if it doesn't meet guidelines.",
              "type": "boolean"
            }
          }
        }
      },
      "accommodationReviews": {
        "title": "AccommodationsReviewsDataOutput",
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationId"
          },
          "reviews": {
            "$ref": "#/components/schemas/reviews"
          },
          "url": {
            "$ref": "#/components/schemas/url"
          }
        }
      },
      "reviewsOutput": {
        "title": "AccommodationsReviewsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationReviews"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      },
      "reviewsScores_input": {
        "title": "AccommodationsReviewsInput",
        "type": "object",
        "properties": {
          "accommodations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationId"
            },
            "minItems": 1,
            "maxItems": 100
          },
          "languages": {
            "description": "Limits reviews to those written in this language.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            }
          },
          "reviewer": {
            "$ref": "#/components/schemas/reviewer"
          }
        },
        "required": [
          "accommodations"
        ]
      },
      "score": {
        "description": "A decimal number indicating the review score of this criteria, in the range 1..10.",
        "type": "number",
        "multipleOf": 0.1,
        "minimum": 1,
        "maximum": 10
      },
      "breakdown_schema": {
        "title": "AccommodationsReviewsBreakdownSchemaOutput",
        "type": "object",
        "properties": {
          "number_of_reviews": {
            "description": "Number of reviews for this criteria.",
            "type": "integer",
            "minimum": 0
          },
          "score": {
            "$ref": "#/components/schemas/score"
          }
        }
      },
      "breakdown": {
        "title": "AccommodationsReviewsBreakdownOutput",
        "description": "Review scores breakdown for each criteria. List of criteria includes: cleanliness, comfort, facilities, free_wifi, location, staff, value_for_money.",
        "type": "object",
        "patternProperties": {
          "^(cleanliness|comfort|facilities|free_wifi|location|staff|value_for_money)$": {
            "$ref": "#/components/schemas/breakdown_schema"
          }
        }
      },
      "distribution_schema": {
        "title": "AccommodationsReviewsDistributionSchemaOutput",
        "type": "object",
        "properties": {
          "number_of_reviews": {
            "description": "Number of reviews with this score.",
            "type": "integer",
            "minimum": 0
          },
          "percentage": {
            "description": "Percent of score distribution for this score.",
            "type": "number",
            "multipleOf": 0.01
          }
        }
      },
      "distribution": {
        "title": "AccommodationsReviewsDistributionOutput",
        "description": "Overall score distribution for each score (1-10).",
        "type": "object",
        "patternProperties": {
          "^[1-9]|10$": {
            "$ref": "#/components/schemas/distribution_schema"
          }
        }
      },
      "scores": {
        "title": "AccommodationsReviewsScoresOutput",
        "description": "",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationId"
          },
          "breakdown": {
            "$ref": "#/components/schemas/breakdown"
          },
          "distribution": {
            "$ref": "#/components/schemas/distribution"
          },
          "number_of_reviews": {
            "$ref": "#/components/schemas/number_of_reviews"
          },
          "score": {
            "$ref": "#/components/schemas/review_score"
          },
          "url": {
            "$ref": "#/components/schemas/url"
          }
        }
      },
      "reviewsScores_output": {
        "title": "AccommodationsReviewsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/scores"
            }
          }
        }
      },
      "smartSearchInput": {
        "title": "AccommodationsSmartSearchInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "booker": {
            "$ref": "#/components/schemas/booker"
          },
          "checkin": {
            "$ref": "#/components/schemas/checkin"
          },
          "checkout": {
            "$ref": "#/components/schemas/checkout"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "coordinates": {
            "$ref": "#/components/schemas/coordinates"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "extras": {
            "$ref": "#/components/schemas/extras"
          },
          "guests": {
            "$ref": "#/components/schemas/guests"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "search_query": {
            "description": "Natural language query describing the traveller’s accommodation preferences, intent, or desired experience. The query is interpreted semantically and may match accommodation features, amenities, location context, property types, traveller intent, or ranking signals.",
            "type": "string",
            "minLength": 3,
            "maxLength": 300
          },
          "sort": {
            "description": "Controls how accommodation results are ordered in the response.",
            "type": "object",
            "properties": {
              "by": {
                "description": "Primary sorting strategy applied to the search results. Use `distance` together with `coordinates` to rank accommodations by proximity.",
                "type": "string",
                "enum": [
                  "distance",
                  "price",
                  "review_score",
                  "stars"
                ]
              },
              "direction": {
                "description": "Sort direction applied to the selected sorting strategy. Descending order is not supported when sorting by `distance`.",
                "type": "string",
                "enum": [
                  "ascending",
                  "descending"
                ]
              }
            }
          }
        },
        "required": [
          "booker",
          "checkin",
          "checkout",
          "guests",
          "search_query"
        ]
      },
      "smartSearchOutput": {
        "title": "AccommodationsSmartSearchOutput",
        "description": "Search results matching the traveller query and structured search criteria.",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodationSearch"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      },
      "coordinatesInput": {
        "description": "Geographic coordinates used to search for attractions near a specific location.",
        "type": "object",
        "properties": {
          "latitude": {
            "description": "Latitude of the location.",
            "type": "number",
            "format": "double",
            "minimum": -90,
            "maximum": 90,
            "example": 52.3676
          },
          "longitude": {
            "description": "Longitude of the location.",
            "type": "number",
            "format": "double",
            "minimum": -180,
            "maximum": 180,
            "example": 4.9041
          },
          "radius": {
            "description": "Maximum distance in kilometers from the specified coordinates. Defaults to 10 km if not provided.",
            "type": "number",
            "format": "double",
            "default": 10,
            "exclusiveMinimum": 0
          }
        },
        "required": [
          "latitude",
          "longitude"
        ]
      },
      "pricing_currencyId": {
        "description": "ISO 4217 currency code. The list of supported currencies can be retrieved from [/common/payments/currencies](#/common/payments/currencies).",
        "type": "string",
        "pattern": "[A-Z]{3}"
      },
      "datesInput": {
        "description": "Date range used to search for attraction availability.",
        "type": "object",
        "properties": {
          "start_date": {
            "description": "Start date of the availability period, in ISO 8601 date format (YYYY-MM-DD).",
            "type": "string",
            "format": "date"
          },
          "end_date": {
            "description": "End date of the availability period, in ISO 8601 date format (YYYY-MM-DD). Can be the same as start_date for single-day attractions.",
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "start_date",
          "end_date"
        ]
      },
      "filtersInput": {
        "description": "Optional filters to narrow down attraction search results.",
        "type": "object",
        "properties": {
          "rating": {
            "type": "object",
            "description": "Filters based on guest review ratings.",
            "properties": {
              "minimum_review_score": {
                "description": "Minimum average guest review score, on a scale from 0 to 5.",
                "type": "number",
                "format": "double",
                "minimum": 0,
                "maximum": 5
              },
              "minimum_review_count": {
                "description": "Minimum number of guest reviews required for an attraction to be included.",
                "type": "integer",
                "format": "int64",
                "minimum": 0
              }
            }
          },
          "supported_languages": {
            "description": "Filter results by supported languages. Uses [IETF language tag codes](https://en.wikipedia.org/wiki/IETF_language_tag) in lowercase, for example \"nl\" for Dutch/Nederlands or \"en-us\" for English (US). To retrieve the full list of supported languages, call the `/common/languages` endpoint in the same Demand API version you are using.",
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[a-z]{2}(-[a-z]{2})?$"
            }
          },
          "categories": {
            "description": "Filter results by one or more attraction category IDs. Only attractions that match at least one of the specified categories are returned. If an invalid or unsupported category ID is provided, the search response will contain no results.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "PTTV32SGqJEv",
                "PTTV3YDywxmN",
                "PTTV3bWrrud5",
                "PTTV3cuXCgPo",
                "PTTV3jCHmADM",
                "PTTV3t1Fvjp9",
                "PTTV3y2qdlBL"
              ],
              "x-enumDescriptions": {
                "PTTV32SGqJEv": "Tours",
                "PTTV3YDywxmN": "Services and rentals",
                "PTTV3bWrrud5": "Workshops and classes",
                "PTTV3cuXCgPo": "Museums, arts and culture",
                "PTTV3jCHmADM": "Nature and outdoor",
                "PTTV3t1Fvjp9": "Entertainment and tickets",
                "PTTV3y2qdlBL": "Food and drink"
              }
            }
          }
        }
      },
      "sort": {
        "description": "Sorting options that control the order of the search results.",
        "type": "object",
        "properties": {
          "by": {
            "description": "Defines how the search results are sorted.",
            "type": "string",
            "enum": [
              "highest_review_score",
              "highest_weighted_review_score",
              "lowest_price_first",
              "most_popular",
              "nearest_location",
              "trending"
            ],
            "x-enumDescriptions": {
              "highest_review_score": "Shows products with the highest average review score first.",
              "highest_weighted_review_score": "Orders products by a weighted review score. A product's priority increases with a higher rating, with the weight based on the number of reviews it has.",
              "lowest_price_first": "Displays products with the lowest price first.",
              "most_popular": "Orders products based on the highest number of reservations in the last 30 days.",
              "nearest_location": "When using the coordinates search criterion, displays products closest to the provided search coordinates first.",
              "trending": "Orders products based on predicted scores from a machine learning model."
            }
          }
        }
      },
      "SearchBase": {
        "type": "object",
        "properties": {
          "attractions": {
            "description": "List of attraction IDs to search for. When provided, results are limited to these specific attractions.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "minimum": 1,
            "maximum": 100
          },
          "cities": {
            "description": "Search for attractions located in one or more cities. Use city IDs obtained from [/common/location/cities](/demand/docs/open-api/demand-api/commonlocations/common/locations/cities)",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/locations_cityId"
            },
            "minimum": 1,
            "maximum": 5
          },
          "coordinates": {
            "$ref": "#/components/schemas/coordinatesInput"
          },
          "countries": {
            "description": "Search for attractions located in one or more countries. Use ISO 3166-1 alpha-2 country codes obtained from [/common/locations/countries](/demand/docs/open-api/demand-api/commonlocations/common/locations/countries)",
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[a-z]{2}$",
              "example": "nl"
            },
            "minimum": 1,
            "maximum": 3
          },
          "currency": {
            "description": "A three-letter ISO 4217 currency code that defines the currency used for pricing in the response, for example: `EUR` or `USD`. n/See <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a> for the full list of supported currencies.",
            "$ref": "#/components/schemas/pricing_currencyId"
          },
          "dates": {
            "$ref": "#/components/schemas/datesInput"
          },
          "filters": {
            "$ref": "#/components/schemas/filtersInput"
          },
          "page": {
            "description": "Pagination token used to retrieve the next page of results. Omit this parameter on the first request and use the value returned in `metadata.next_page` for subsequent pages.",
            "type": "string"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "default": 20
          },
          "sort": {
            "$ref": "#/components/schemas/sort"
          }
        },
        "required": [
          "currency",
          "dates"
        ]
      },
      "attractionsSearchInput": {
        "oneOf": [
          {
            "title": "Search by Attractions",
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchBase"
              },
              {
                "type": "object",
                "required": [
                  "attractions"
                ],
                "properties": {
                  "cities": false,
                  "countries": false,
                  "coordinates": false
                }
              }
            ]
          },
          {
            "title": "Search by Cities",
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchBase"
              },
              {
                "type": "object",
                "required": [
                  "cities"
                ],
                "properties": {
                  "attractions": false,
                  "countries": false,
                  "coordinates": false
                }
              }
            ]
          },
          {
            "title": "Search by Countries",
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchBase"
              },
              {
                "type": "object",
                "required": [
                  "countries"
                ],
                "properties": {
                  "attractions": false,
                  "cities": false,
                  "coordinates": false
                }
              }
            ]
          },
          {
            "title": "Search by Coordinates",
            "allOf": [
              {
                "$ref": "#/components/schemas/SearchBase"
              },
              {
                "type": "object",
                "required": [
                  "coordinates"
                ],
                "properties": {
                  "attractions": false,
                  "cities": false,
                  "countries": false
                }
              }
            ]
          }
        ]
      },
      "attractionId": {
        "description": "Uniquely identifies an attraction.",
        "type": "string"
      },
      "pricing_monetaryAmount": {
        "type": "number",
        "multipleOf": 0.01,
        "exclusiveMinimum": 0
      },
      "attractionPrice": {
        "description": "Pricing information for the cheapest available adult offer for the attraction.",
        "type": "object",
        "properties": {
          "currency": {
            "description": "Currency in which the price is returned.",
            "$ref": "#/components/schemas/pricing_currencyId"
          },
          "total": {
            "$ref": "#/components/schemas/pricing_monetaryAmount"
          }
        }
      },
      "urls": {
        "type": "object",
        "description": "Platform-specific URLs for viewing this item.",
        "example": {
          "app": {
            "detail": "booking://attractions/product?slug=prvlvlwpbs1m-moco-museum-amsterdam-official-tickets&aid=956509",
            "search_results": "booking://attractions/searchresults?ufi=-2140479&pinned_product_id=PRvlvlWPbS1M&aid=956509"
          },
          "web": {
            "detail": "https://www.booking.com/attractions/nl/prvlvlwpbs1m-moco-museum-amsterdam-official-tickets.en-gb.html?selected_currency=EUR&aid=956509",
            "search_results": "https://www.booking.com/attractions/searchresults/nl/amsterdam.en-gb.html?dest_id=-2140479&pinned_product=PRvlvlWPbS1M&selected_currency=EUR&aid=956509"
          }
        },
        "properties": {
          "app": {
            "type": "object",
            "properties": {
              "detail": {
                "description": "URL to view the attraction detail page in the app.",
                "type": "string",
                "format": "uri"
              },
              "search_results": {
                "description": "URL to view the attraction within search results in the app.",
                "type": "string",
                "format": "uri"
              }
            }
          },
          "web": {
            "type": "object",
            "properties": {
              "detail": {
                "description": "URL to view the attraction detail page on the website.",
                "type": "string",
                "format": "uri"
              },
              "search_results": {
                "description": "URL to view the attraction within the website search results page.",
                "type": "string",
                "format": "uri"
              }
            }
          }
        }
      },
      "attraction": {
        "type": "object",
        "description": "Basic information about an attraction returned by the search.",
        "properties": {
          "id": {
            "description": "Unique identifier of the attraction.",
            "$ref": "#/components/schemas/attractionId"
          },
          "free_cancellation": {
            "description": "Indicates whether the attraction offers free cancellation.",
            "type": "boolean"
          },
          "price": {
            "$ref": "#/components/schemas/attractionPrice"
          },
          "urls": {
            "$ref": "#/components/schemas/urls"
          }
        }
      },
      "metadata": {
        "title": "MetadataOutput",
        "description": "Metadata about the request.",
        "type": "object",
        "properties": {
          "next_page": {
            "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
            "type": "string",
            "nullable": true
          },
          "total_results": {
            "description": "The total number of results available.",
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "attractionsSearchOutput": {
        "type": "object",
        "description": "Response object containing the list of matching attractions, pagination metadata, and a unique request identifier.",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attraction"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/metadata"
          },
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          }
        }
      },
      "DetailsBase": {
        "title": "AttractionsDetailsBase",
        "type": "object",
        "properties": {
          "attractions": {
            "description": "List of attraction IDs to retrieve details for.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attractionId"
            },
            "minItems": 1,
            "maxItems": 100
          },
          "cities": {
            "description": "Search by city ID. Retrieve the full list of supported cities IDs from the /common/location/cities endpoint.",
            "type": "array",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "$ref": "#/components/schemas/locations_cityId"
            }
          },
          "countries": {
            "description": "Search by country code. Retrieve the full list of supported country codes from the /common/locations/countries endpoint. Maximum 3 countries per request.",
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "type": "string",
              "pattern": "^[a-z]{2}$",
              "example": "nl"
            }
          },
          "languages": {
            "description": "The language in which attraction details are returned. Must be an IETF BCP 47 language code (e.g., 'fr').",
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "[a-z]{2}(-[a-z]{2})?"
            },
            "maxItems": 1,
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "description": "Pagination token used to retrieve the next page of results. Obtained from `metadata.next_page`",
            "type": "string"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "default": 20,
            "minimum": 10,
            "maximum": 500
          }
        }
      },
      "attractionsInput": {
        "title": "AttractionsDetailsInput",
        "oneOf": [
          {
            "title": "Query by Attractions",
            "allOf": [
              {
                "$ref": "#/components/schemas/DetailsBase"
              },
              {
                "type": "object",
                "required": [
                  "attractions"
                ],
                "properties": {
                  "cities": false,
                  "countries": false
                }
              }
            ]
          },
          {
            "title": "Query by Cities",
            "allOf": [
              {
                "$ref": "#/components/schemas/DetailsBase"
              },
              {
                "type": "object",
                "required": [
                  "cities"
                ],
                "properties": {
                  "attractions": false,
                  "countries": false
                }
              }
            ]
          },
          {
            "title": "Query by Countries",
            "allOf": [
              {
                "$ref": "#/components/schemas/DetailsBase"
              },
              {
                "type": "object",
                "required": [
                  "countries"
                ],
                "properties": {
                  "attractions": false,
                  "cities": false
                }
              }
            ]
          }
        ]
      },
      "attractionImage": {
        "title": "AttractionsImageOutput",
        "description": "Image information.",
        "type": "object",
        "properties": {
          "url": {
            "description": "URL of the image.",
            "type": "string",
            "format": "uri"
          }
        }
      },
      "attractionCoordinates": {
        "title": "AttractionsCoordinatesOutput",
        "description": "Geographic coordinates.",
        "type": "object",
        "properties": {
          "latitude": {
            "description": "The latitude.",
            "type": "number"
          },
          "longitude": {
            "description": "The longitude.",
            "type": "number"
          }
        }
      },
      "attractionLocation": {
        "title": "AttractionsLocationOutput",
        "description": "Location details for the attraction.",
        "type": "object",
        "properties": {
          "address": {
            "description": "The address.",
            "type": "string"
          },
          "city": {
            "$ref": "#/components/schemas/locations_cityId"
          },
          "coordinates": {
            "$ref": "#/components/schemas/attractionCoordinates"
          },
          "country": {
            "$ref": "#/components/schemas/locations_countryId"
          },
          "post_code": {
            "description": "The post code.",
            "type": "string"
          },
          "type": {
            "description": "The type of location.",
            "type": "string",
            "enum": [
              "arrival",
              "attraction",
              "departure",
              "entrance",
              "guest_pickup",
              "meeting",
              "pickup"
            ],
            "x-enumDescriptions": [
              "arrival: The location where the tour or experience ends.",
              "attraction: The location where the experience takes place or can be accessed, such as a landmark, shop, museum, or restaurant.",
              "departure: The location where the tour or experience starts, typically for day trips or multi-stop tours.",
              "entrance: The entrance point for an attraction when it has multiple access points or entry locations.",
              "guest_pickup: The location where travellers are collected before the tour or experience begins.",
              "meeting: The designated meeting point for participants before starting the experience, often used for guided tours.",
              "pickup: The location where travellers can collect their tickets before joining the experience."
            ]
          }
        }
      },
      "localisedString": {
        "description": "A string localised in multiple languages.",
        "type": "object",
        "patternProperties": {
          "[a-z]{2}(-[a-z]{2})": {
            "description": "The content localised in this language.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "details_rating": {
        "title": "AttractionsDetailsRatingOutput",
        "description": "User rating information.",
        "type": "object",
        "properties": {
          "number_of_reviews": {
            "description": "Number of ratings.",
            "type": "integer",
            "minimum": 0
          },
          "score": {
            "description": "Average rating value.",
            "type": "number",
            "minimum": 0,
            "maximum": 5
          }
        }
      },
      "attractionDetails": {
        "title": "AttractionsDetailsDataOutput",
        "description": "All static information related to an attraction.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Uniquely identifies the attraction.",
            "$ref": "#/components/schemas/attractionId"
          },
          "badges": {
            "description": "Badges that indicate notable selling points of the attraction. Examples include `best_seller` or `guest_pickup`.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "best_seller",
                "direct_admission",
                "free_cancellation",
                "guest_pickup",
                "itinerary_duration",
                "itinerary_private_tour",
                "itinerary_skip_the_line",
                "new_product",
                "service_animals_allowed"
              ]
            }
          },
          "categories": {
            "description": "Categories to which the attraction belongs.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "tours",
                "travel_services_rental",
                "workshop_classes",
                "museums_arts_culture",
                "nature_outdoor",
                "entertainment_tickets",
                "food_drinks"
              ]
            }
          },
          "duration": {
            "description": "Estimated time spent in attraction (ISO 8601 duration format).  Example: PT2H = 2 hours.",
            "type": "string",
            "example": "PT2H",
            "pattern": "^P(?:\\d+D)?(?:T(?:\\d+H)?(?:\\d+M)?(?:\\d+S)?)?$"
          },
          "photos": {
            "description": "Images of the attraction.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attractionImage"
            }
          },
          "locations": {
            "description": "Location information for the attraction.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attractionLocation"
            }
          },
          "long_description": {
            "description": "Detailed description of the attraction.",
            "$ref": "#/components/schemas/localisedString"
          },
          "name": {
            "description": "The attraction's display name.",
            "$ref": "#/components/schemas/localisedString"
          },
          "ratings": {
            "$ref": "#/components/schemas/details_rating"
          },
          "supported_languages": {
            "description": "List of languages this attraction is available in. For example: A city tour available in Spanish and German.",
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "[a-z]{2}(-[a-z]{2})?"
            }
          },
          "urls": {
            "$ref": "#/components/schemas/urls"
          }
        }
      },
      "attractionsOutput": {
        "title": "AttractionsDetailsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attractionDetails"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/metadata"
          }
        }
      },
      "error_response": {
        "title": "ErrorResponse",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "id",
                "message"
              ]
            }
          }
        },
        "required": [
          "request_id",
          "errors"
        ]
      },
      "schemas-input": {
        "title": "AttractionsReviewsInput",
        "type": "object",
        "properties": {
          "attraction": {
            "description": "Uniquely identifies an attraction to retrieve reviews for.",
            "$ref": "#/components/schemas/attractionId"
          },
          "language": {
            "description": "The language for reviews content. IETF BCP 47 language code.",
            "type": "string",
            "pattern": "[a-z]{2}(-[a-z]{2})?"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "rows": {
            "description": "The maximum number of results to return per page.",
            "type": "integer",
            "multipleOf": 10,
            "minimum": 10,
            "maximum": 100,
            "default": 10
          }
        },
        "required": [
          "attraction"
        ]
      },
      "review": {
        "title": "AttractionsReviewDataOutput",
        "description": "List of reviews for the requested attraction.",
        "type": "object",
        "properties": {
          "attraction": {
            "description": "Unique identifier of the attraction.",
            "$ref": "#/components/schemas/attractionId"
          },
          "id": {
            "description": "Unique identifier of the review.",
            "type": "string"
          },
          "author": {
            "description": "Name of the review author.",
            "type": "string"
          },
          "author_country_code": {
            "description": "ISO 3166 country code of the review author.",
            "$ref": "#/components/schemas/locations_countryId"
          },
          "rating": {
            "description": "Rating given in the review (1–5 scale).",
            "type": "integer",
            "minimum": 1,
            "maximum": 5
          },
          "text": {
            "description": "Text content of the review.",
            "type": "string"
          },
          "language": {
            "description": "Language of the review content. IETF BCP 47 language code.",
            "type": "string",
            "pattern": "[a-z]{2}(-[a-z]{2})?"
          },
          "date": {
            "description": "Date when the review was submitted.",
            "type": "string",
            "format": "date"
          }
        }
      },
      "schemas-output": {
        "title": "AttractionsReviewsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/review"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/metadata"
          }
        }
      },
      "reviewScores_input": {
        "title": "AttractionsScoresInput",
        "type": "object",
        "properties": {
          "attractions": {
            "description": "Uniquely identifies attractions to retrieve review scores for.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attractionId"
            },
            "minItems": 1,
            "maxItems": 1
          }
        },
        "required": [
          "attractions"
        ]
      },
      "scoreDetail": {
        "title": "AttractionsScoreDetail",
        "type": "object",
        "properties": {
          "number_of_reviews": {
            "description": "Number of reviews contributing to this score.",
            "type": "integer",
            "minimum": 0
          },
          "score": {
            "description": "Average score for this category.",
            "type": "number",
            "minimum": 0,
            "maximum": 5,
            "example": 4.5
          }
        }
      },
      "reviewScores_breakdown": {
        "title": "AttractionsScoresBreakdown",
        "description": "Detailed breakdown of review scores for different aspects of the attraction.",
        "type": "object",
        "properties": {
          "easy_to_access": {
            "description": "Accessibility rating based on location, transport, and convenience",
            "$ref": "#/components/schemas/scoreDetail"
          },
          "facilities_rating": {
            "description": "Assessment of facilities such as restrooms, seating areas, or amenities",
            "$ref": "#/components/schemas/scoreDetail"
          },
          "quality_of_service": {
            "description": "Rating of staff professionalism, kindness, and helpfulness.",
            "$ref": "#/components/schemas/scoreDetail"
          },
          "value_of_experience": {
            "description": "Users' perception of the overall value for money.",
            "$ref": "#/components/schemas/scoreDetail"
          }
        }
      },
      "attractionScore": {
        "title": "AttractionScore",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the attraction.",
            "$ref": "#/components/schemas/attractionId"
          },
          "breakdown": {
            "$ref": "#/components/schemas/reviewScores_breakdown"
          }
        },
        "required": [
          "id",
          "breakdown"
        ]
      },
      "reviewScores_output": {
        "title": "AttractionsScoresOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attractionScore"
            }
          }
        }
      },
      "constants_input": {
        "title": "AttractionsConstantsInput",
        "type": "object",
        "properties": {
          "languages": {
            "description": "List of language codes used to localise category names. Each category name is returned as an object keyed by language code.\n\n- If a requested language is not available, it may be omitted from the response.\n- If not provided, `en-gb` is used by default.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "maxItems": 50,
            "default": [
              "en-gb"
            ],
            "example": [
              "es"
            ]
          }
        }
      },
      "attractionCategory": {
        "title": "AttractionCategory",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the category.",
            "type": "string",
            "example": "PTTV32SGqJEv"
          },
          "name": {
            "description": "The display name of the category translated into the requested languages, keyed by language code.",
            "$ref": "#/components/schemas/translatedString"
          },
          "parent": {
            "description": "The unique identifier of the parent category. Null for root categories. Use this field to reconstruct the category hierarchy.",
            "type": [
              "string",
              "null"
            ],
            "example": null
          }
        },
        "required": [
          "id",
          "name"
        ]
      },
      "attractions_constants_output": {
        "title": "AttractionsConstantsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "categories": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/attractionCategory"
                }
              }
            }
          }
        }
      },
      "schemas-booker": {
        "description": "Defines the booker context.",
        "type": "object",
        "properties": {
          "country": {
            "description": "The booker country for showing the best price for that user and obeying laws regarding the display of taxes and fees.",
            "$ref": "#/components/schemas/countryId"
          }
        },
        "required": [
          "country"
        ]
      },
      "driver": {
        "description": "Defines the driver context.",
        "type": "object",
        "properties": {
          "age": {
            "description": "Driver age. Affects the availability and price of the products.",
            "type": "integer",
            "minimum": 18,
            "maximum": 99
          }
        },
        "required": [
          "age"
        ]
      },
      "schemas-supplierId": {
        "description": "Supplier id.",
        "type": "integer"
      },
      "schemas-filters": {
        "description": "Defines the filtering criteria for refining the request results. It allows you to specify various parameters to narrow down the available car rental options based on specific attributes.",
        "type": "object",
        "properties": {
          "air_conditioning": {
            "description": "Filters the results to include car rentals with or without air conditioning. Setting this value to true will only return vehicles with air conditioning, while false will exclude them.",
            "type": "boolean"
          },
          "car_categories": {
            "description": "Filters the results based on the selected car categories.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "carriers",
                "estate",
                "large",
                "medium",
                "premium",
                "small",
                "suvs"
              ],
              "x-enumDescriptions": {
                "carriers": "Vans or minivans designed for carrying larger groups or luggage.",
                "estate": "Station wagons or estate cars offering extra luggage space.",
                "large": "Large vehicles offering ample interior space and comfort.",
                "medium": "Mid-sized vehicles offering a balance of comfort and fuel efficiency.",
                "premium": "High-end or luxury vehicles with premium features.",
                "small": "Compact cars ideal for city driving and short distances.",
                "suvs": "Sport Utility Vehicles offering higher ground clearance and versatility."
              }
            }
          },
          "depot_location_type": {
            "description": "Filters the results based on the type of depot location where the vehicle is picked up or dropped off.",
            "type": "string",
            "enum": [
              "in_terminal",
              "car_rental_centre",
              "outside_terminal",
              "airport_hotel",
              "shuttle_bus",
              "meet_greet",
              "trainstation",
              "downtown"
            ],
            "x-enumDescriptions": {
              "in_terminal": "Depot is located inside the airport terminal building.",
              "car_rental_centre": "Depot is located in a dedicated car rental centre on or near airport grounds.",
              "outside_terminal": "Depot is outside the terminal area, usually a short walk or drive away.",
              "airport_hotel": "Depot is located at or inside an airport hotel.",
              "shuttle_bus": "Depot requires a shuttle bus transfer from the airport or another meeting point.",
              "meet_greet": "A rental agent meets the traveller in person at an agreed pick-up point (e.g., arrivals hall).",
              "trainstation": "Depot is located in or near a train station.",
              "downtown": "Depot is located in a central/downtown city area."
            }
          },
          "mileage_type": {
            "description": "Filters the results based on the mileage type associated with the rental vehicle.",
            "type": "string",
            "enum": [
              "limited",
              "unlimited"
            ]
          },
          "number_of_seats": {
            "description": "Filters the results based on the number of seats in the vehicle. This allows you to specify a vehicle that can accommodate a specific number of passengers.",
            "type": "integer"
          },
          "supplier_ids": {
            "description": "Filters the results based on the supplier ID of the vehicle. This allows you to retrieve vehicles from specific suppliers. A maximum of 10 supplier IDs can be provided.",
            "maxItems": 10,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/schemas-supplierId"
            }
          },
          "transmission_type": {
            "description": "Filters the results based on the transmission type of the vehicle.",
            "type": "string",
            "enum": [
              "automatic",
              "manual"
            ]
          }
        }
      },
      "maximumResultsCarsSearch": {
        "description": "The maximum number of results to return for car searches.",
        "type": "integer",
        "multipleOf": 10,
        "minimum": 10,
        "maximum": 500,
        "default": 500
      },
      "paymentInput": {
        "type": "object",
        "properties": {
          "timings": {
            "description": "Filters the results to include only car rentals that offer the specified payment timings. Use this parameter to search for cars based on the timing of payment (e.g., payment upfront, partial payment, or payment at the depot).",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "pay_online_now",
                "pay_partial_online_now",
                "pay_at_pickup"
              ]
            }
          }
        }
      },
      "locationAsAirport": {
        "description": "Defines location of the related route point by airport.",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          }
        }
      },
      "dataTypes_coordinates": {
        "title": "Coordinates",
        "type": "object",
        "properties": {
          "latitude": {
            "type": "number",
            "format": "double"
          },
          "longitude": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "locationAsCoordinates": {
        "description": "Defines location of the related route point by coordinates.",
        "type": "object",
        "properties": {
          "coordinates": {
            "description": "Defines the geographic coordinates of the searched location.",
            "$ref": "#/components/schemas/dataTypes_coordinates"
          }
        }
      },
      "locationAsCity": {
        "description": "Defines location of the related route point by city.",
        "type": "object",
        "properties": {
          "city": {
            "$ref": "#/components/schemas/cityId"
          }
        }
      },
      "routePointInput": {
        "description": "Defines the pickup or dropoff route point.",
        "type": "object",
        "properties": {
          "datetime": {
            "description": "Pickup / dropoff datetime.",
            "example": "2026-11-01T11:05:00",
            "format": "date-time",
            "type": "string"
          },
          "location": {
            "description": "Pickup / dropoff location.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/locationAsAirport"
              },
              {
                "$ref": "#/components/schemas/locationAsCoordinates"
              },
              {
                "$ref": "#/components/schemas/locationAsCity"
              }
            ]
          }
        },
        "required": [
          "datetime",
          "location"
        ]
      },
      "routeInput": {
        "description": "Defines the route context.",
        "type": "object",
        "properties": {
          "pickup": {
            "description": "Pick up location and time.",
            "$ref": "#/components/schemas/routePointInput"
          },
          "dropoff": {
            "description": "Drop off location and time.",
            "$ref": "#/components/schemas/routePointInput"
          }
        },
        "required": [
          "pickup",
          "dropoff"
        ]
      },
      "schemas-sort": {
        "description": "The sorting parameters for the response.",
        "type": "object",
        "properties": {
          "by": {
            "description": "The way to sort your results.",
            "type": "string",
            "enum": [
              "distance",
              "price",
              "review_score"
            ]
          },
          "direction": {
            "description": "The direction you wish for your sort.by parameter to be sorted in.",
            "type": "string",
            "enum": [
              "ascending",
              "descending"
            ]
          }
        }
      },
      "cars_search_input": {
        "type": "object",
        "properties": {
          "booker": {
            "$ref": "#/components/schemas/schemas-booker"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "driver": {
            "$ref": "#/components/schemas/driver"
          },
          "filters": {
            "$ref": "#/components/schemas/schemas-filters"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResultsCarsSearch",
            "default": 500
          },
          "language": {
            "description": "Optional. Controls the language of the Booking.com web and app URLs returned in the response. If not specified, English (en-gb) is used.",
            "$ref": "#/components/schemas/languageId",
            "default": "en-gb"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "payment": {
            "description": "Payment-related input filters that allow you to narrow down car search results based on the payment timing options.",
            "$ref": "#/components/schemas/paymentInput"
          },
          "route": {
            "$ref": "#/components/schemas/routeInput"
          },
          "sort": {
            "$ref": "#/components/schemas/schemas-sort"
          }
        },
        "required": [
          "booker",
          "currency",
          "driver",
          "route"
        ]
      },
      "carFleetId": {
        "description": "This ID corresponds to a specific car model and supplier (fleet) combination, as returned by the /cars/details endpoint. Cache the details keyed by this ID and use it to match search results to your cached data.",
        "type": "integer",
        "minimum": 1
      },
      "categories": {
        "description": "The categories assigned to the car.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "carriers",
            "estate",
            "large",
            "medium",
            "premium",
            "small",
            "suvs"
          ],
          "x-enumDescriptions": {
            "carriers": "Vans or minivans designed for carrying larger groups or luggage.",
            "estate": "Station wagons or estate cars offering extra luggage space.",
            "large": "Large vehicles offering ample interior space and comfort.",
            "medium": "Mid-sized vehicles offering a balance of comfort and fuel efficiency.",
            "premium": "High-end or luxury vehicles with premium features.",
            "small": "Compact cars ideal for city driving and short distances.",
            "suvs": "Sport Utility Vehicles offering higher ground clearance and versatility."
          }
        }
      },
      "dealsOutput": {
        "title": "Deal",
        "description": "This specifies the deal tagging for the product.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "discount_percentage": {
            "description": "Discount percentage of the applied deals.",
            "type": "integer",
            "minimum": 1
          },
          "public_price": {
            "description": "Original price of this product, before applying any discounts.",
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "tags": {
            "description": "The tags of all the applied deals.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "black_friday",
                "getaway_deal",
                "mobile_rate"
              ]
            }
          }
        }
      },
      "offerId": {
        "description": "This ID identifies the car rental offer and its associated policies. Include it when calling the /cars/availability endpoint.",
        "type": "integer",
        "minimum": 1
      },
      "cancellationOutput": {
        "description": "The cancellation policy that applies to this product.",
        "type": "object",
        "properties": {
          "details": {
            "description": "Provides the policy details if the cancellation is free. For example: \n 1. duration='PT48H' and context=before_pickup means 'Free cancellation is available up to 48 hrs before pick up'. \n 2. duration='P7D' and context=within_given_time_period_of_booking means 'Free cancellation is available within 7 days of booking'",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "context": {
                "description": "The context in which the cancellation policy applies. For example 'before_pickup'",
                "type": "string",
                "enum": [
                  "before_pickup",
                  "within_given_time_period_of_booking"
                ]
              },
              "duration": {
                "description": "The duration until which the cancellation is free. This is in ISO-8601/Duration format.",
                "type": "string",
                "pattern": "^P(?:\\dY)?(?:\\dM)?(?:\\dD)?(?:T(?:\\dH)?(?:\\dM)?(?:\\dS)?)?$"
              }
            }
          },
          "type": {
            "description": "The type of cancellation present. For example 'free_cancellation' or 'non-refundable'.",
            "type": "string",
            "enum": [
              "free_cancellation",
              "non-refundable"
            ]
          }
        }
      },
      "mileageOutput": {
        "description": "The mileage policy that applies to this product.",
        "type": "object",
        "properties": {
          "amount": {
            "description": "The amount that must be paid if the distance limit is exceeded.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "distance_limit": {
            "description": "The maximal distance limit allowed for this product before additional fees apply.",
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "distance_unit": {
            "description": "The unit of measurement for the distance limit. For example 'km' or 'miles'.",
            "type": "string",
            "enum": [
              "kilometers",
              "miles"
            ]
          },
          "type": {
            "description": "The type of mileage policy applied.",
            "type": "string",
            "enum": [
              "limited",
              "unlimited"
            ]
          }
        },
        "required": [
          "type"
        ]
      },
      "paymentOutput": {
        "description": "The payment policy that applies to this product.",
        "type": "object",
        "properties": {
          "timing": {
            "description": "The applied payment timing. For example 'pay_online_now'.",
            "type": "string",
            "enum": [
              "pay_online_now",
              "pay_partial_online_now",
              "pay_at_pickup"
            ]
          }
        },
        "required": [
          "timing"
        ]
      },
      "policiesOutput": {
        "description": "The policies that apply to this product.",
        "type": "object",
        "properties": {
          "cancellation": {
            "$ref": "#/components/schemas/cancellationOutput"
          },
          "damage_excess": {
            "description": "The maximum amount a traveller may be charged for damages to the car during the rental period, as specified by the rental agreement.",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "amount": {
                "description": "The amount to be charged.",
                "type": "number",
                "format": "double"
              },
              "currency": {
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "deposit": {
            "description": "The amount of money that will be temporarily pre-authorised or blocked on the traveller’s credit card at the rental location as a security deposit, to cover potential damage or extra charges.",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "amount": {
                "description": "The amount to be charged.",
                "type": "number",
                "format": "double"
              },
              "currency": {
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "insurance_package": {
            "description": "The supplier insurance package applied to this product by default. Use the insurance object instead when third-party insurance products are configured in your account.",
            "type": "string",
            "enum": [
              "basic",
              "inclusive",
              "zero_excess"
            ]
          },
          "fuel": {
            "description": "The fuel policy that applies to this product.",
            "type": "string",
            "enum": [
              "return_same",
              "return_same_or_prepay_no_refunds",
              "return_same_preauth",
              "free_tank",
              "prepay_no_refunds",
              "prepay_part_refunds",
              "prepay_refunds"
            ]
          },
          "mileage": {
            "$ref": "#/components/schemas/mileageOutput"
          },
          "payment": {
            "$ref": "#/components/schemas/paymentOutput"
          },
          "theft_excess": {
            "description": "The maximum amount a traveller may be charged in the event of car theft during the rental period, as outlined in the rental agreement.",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "amount": {
                "description": "The amount to be charged.",
                "type": "number",
                "format": "double"
              },
              "currency": {
                "$ref": "#/components/schemas/currencyId"
              }
            }
          }
        }
      },
      "schemas-chargeTypeId": {
        "description": "The type of this charge.",
        "type": "string"
      },
      "charge": {
        "title": "CarsCharge",
        "description": "Defines the charge, including the type of charge and its total amount.",
        "type": "object",
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/schemas-chargeTypeId"
          },
          "total_amount": {
            "description": "The total price for this charge.",
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "productPrice": {
        "description": "The price components of this product.",
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "credit_card_required": {
            "description": "Indicates whether a credit card is required as a guarantee for this vehicle.\n\n- true: A credit card must be provided and will be passed to the supplier for guarantee purposes. Applies to vehicles with 'payment.timing = pay_at_pickup'.\n- false: A credit card is explicitly not required.\n- null: Information not available or not applicable (for example, pay-online-now vehicles where credit card requirements are currently unknown).",
            "type": [
              "boolean",
              "null"
            ]
          },
          "extra_charges": {
            "title": "CarsProductExtraCharges",
            "description": "The charge breakdown. Includes taxes and fees included in the drive away price.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/charge"
            }
          },
          "total": {
            "description": "The total price. Includes all extra charges.",
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "depots_depotId": {
        "description": "Unique identifier of a depot. Retrieve the full list by calling the (/cars/depots](#/cars/depots).",
        "type": "integer",
        "minimum": 1,
        "example": 5944
      },
      "routePointOutput": {
        "description": "Defines the product pickup / dropoff route point.",
        "type": "object",
        "properties": {
          "depot": {
            "description": "The identifier of the depot used for pickup or dropoff.",
            "$ref": "#/components/schemas/depots_depotId"
          },
          "depot_location_type": {
            "description": "Type of depot location where the vehicle is picked up or dropped off. For example, 'shuttle_bus', 'in_terminal', etc.",
            "type": "string",
            "enum": [
              "in_terminal",
              "car_rental_centre",
              "outside_terminal",
              "airport_hotel",
              "shuttle_bus",
              "meet_greet",
              "trainstation",
              "downtown"
            ]
          }
        }
      },
      "routeOutput": {
        "description": "Defines the actual route associated with the product.",
        "type": "object",
        "properties": {
          "pickup": {
            "description": "Defines the product pickup route point.",
            "$ref": "#/components/schemas/routePointOutput"
          },
          "dropoff": {
            "description": "Defines the product dropoff route point.",
            "$ref": "#/components/schemas/routePointOutput"
          }
        }
      },
      "insuranceOutput": {
        "description": "Third-party insurance product for this car rental. Only present for eligible partner configurations. Null if not available.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "description": "The display name of the insurance product.",
            "type": "string",
            "examples": [
              "Full Protection"
            ]
          },
          "id": {
            "description": "The identifier for the type of insurance product.",
            "type": "string",
            "examples": [
              "999"
            ]
          },
          "price": {
            "description": "The price of the insurance product for the full rental period.",
            "type": "object",
            "properties": {
              "amount": {
                "description": "The insurance price amount.",
                "$ref": "#/components/schemas/monetaryAmount"
              },
              "currency": {
                "$ref": "#/components/schemas/currencyId"
              }
            }
          }
        }
      },
      "vehicleSupplierId": {
        "description": "Uniquely identifies a vehicle supplier. The full list can be obtained by calling [/cars/suppliers](#/cars/suppliers).",
        "type": "integer",
        "minimum": 1
      },
      "urlOutput": {
        "description": "Urls to the relevant pages.",
        "type": "object",
        "properties": {
          "app": {
            "description": "URL for the related page on Booking App.",
            "type": "string",
            "format": "uri"
          },
          "web": {
            "description": "URL for the related page on cars.booking.com.",
            "type": "string",
            "format": "uri"
          }
        }
      },
      "schemas-product": {
        "description": "Detailed information about car rental product.",
        "type": "object",
        "properties": {
          "car": {
            "$ref": "#/components/schemas/carFleetId"
          },
          "categories": {
            "$ref": "#/components/schemas/categories"
          },
          "deal": {
            "$ref": "#/components/schemas/dealsOutput"
          },
          "offer": {
            "$ref": "#/components/schemas/offerId"
          },
          "policies": {
            "$ref": "#/components/schemas/policiesOutput"
          },
          "price": {
            "$ref": "#/components/schemas/productPrice"
          },
          "route": {
            "$ref": "#/components/schemas/routeOutput"
          },
          "special_offer": {
            "description": "The special offer included with this product, if any. This can be an additional service, a free upgrade, or a promotional feature provided by the supplier. If no special offer applies, the value will be null.",
            "type": [
              "string",
              "null"
            ],
            "examples": [
              "upgrade"
            ],
            "enum": [
              "one_additional_driver",
              "two_additional_drivers",
              "three_additional_drivers",
              "all_additional_drivers",
              "gps",
              "baby_or_child_seat",
              "priority_pickup",
              "wifi_device",
              "sim_card",
              "upgrade",
              "black_friday",
              "getaway_deal",
              "mobile_rate"
            ]
          },
          "insurance": {
            "$ref": "#/components/schemas/insuranceOutput"
          },
          "supplier": {
            "description": "Related supplier id.",
            "$ref": "#/components/schemas/vehicleSupplierId"
          },
          "url": {
            "$ref": "#/components/schemas/urlOutput"
          },
          "estimated_commission": {
            "title": "EstimatedCommissionOutput",
            "description": "Estimated commission the partner may earn if the traveller books this car. Expressed in the selected currency and based on predictive modelling at search time. Only returned when the predicted commission feature is enabled for the partner. Omitted when the feature is unavailable or when a reliable estimate cannot be produced.",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "amount": {
                "description": "Estimated commission amount in the currency below.",
                "$ref": "#/components/schemas/monetaryAmount"
              },
              "currency": {
                "$ref": "#/components/schemas/currencyId"
              }
            }
          }
        }
      },
      "cars_search_output": {
        "type": "object",
        "required": [
          "request_id",
          "data"
        ],
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/schemas-product"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/metadata"
          },
          "search_token": {
            "description": "Encoded string that must be passed in subsequent requests to identify the context of the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.",
            "type": "string"
          }
        }
      },
      "cars_availability_input": {
        "type": "object",
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offerId"
          },
          "search_token": {
            "type": "string",
            "description": "The encoded search token obtained from the search results. This token is car-specific and essential for maintaining state between search and availability checks."
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "language": {
            "description": "Optional IETF language tag (e.g., 'en-gb', 'fr'). Controls the language of legal insurance documents (IPID and policy document).\nDefaults to 'en-gb' if the requested language is unavailable or not specified.\n\n Note: If mandatory insurance documents are unavailable in English, the insurance object is omitted.",
            "$ref": "#/components/schemas/languageId"
          }
        },
        "required": [
          "offer",
          "search_token",
          "currency"
        ]
      },
      "availability_cancellationOutput": {
        "description": "The cancellation policy that applies to this product.",
        "type": "object",
        "properties": {
          "details": {
            "description": "Provides the policy details if the cancellation is free. For example: \n 1. duration='PT48H' and context=BEFORE_PICKUP means 'Free cancellation is available up to 48 hrs before pick up'. \n 2. duration='P7D' and context=WITHIN_GIVEN_TIME_PERIOD_OF_BOOKING means 'Free cancellation is available within 7 days of booking'",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "context": {
                "description": "The context in which the cancellation policy applies. For example 'before_pickup'",
                "type": "string",
                "enum": [
                  "before_pickup",
                  "within_given_time_period_of_booking"
                ]
              },
              "duration": {
                "description": "The duration until which the cancellation is free. This is in ISO-8601/Duration format.",
                "type": "string",
                "pattern": "^P(?:\\dY)?(?:\\dM)?(?:\\dD)?(?:T(?:\\dH)?(?:\\dM)?(?:\\dS)?)?$"
              }
            }
          },
          "type": {
            "description": "The type of cancellation present. For example 'free_cancellation' or 'non-refundable'.",
            "type": "string",
            "enum": [
              "free_cancellation",
              "non-refundable"
            ]
          }
        }
      },
      "availability_mileageOutput": {
        "description": "The mileage policy that applies to this product.",
        "type": "object",
        "properties": {
          "distance_limit": {
            "description": "The maximal distance limit allowed for this product before additional fees apply.",
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "distance_unit": {
            "description": "The unit of measurement for the distance limit. For example 'km' or 'miles'.",
            "type": "string",
            "enum": [
              "kilometers",
              "miles"
            ]
          },
          "amount": {
            "description": "The amount that must be paid if the distance limit is exceeded.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/monetaryAmount"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "description": "The currency of the amount that must be paid if the distance limit is exceeded.",
            "anyOf": [
              {
                "$ref": "#/components/schemas/currencyId"
              },
              {
                "type": "null"
              }
            ]
          },
          "type": {
            "description": "The type of mileage policy applied.",
            "type": "string",
            "enum": [
              "limited",
              "unlimited"
            ]
          }
        }
      },
      "availability_paymentOutput": {
        "description": "The payment policy that applies to this product.",
        "type": "object",
        "properties": {
          "timing": {
            "description": "The applied payment timing. For example 'pay_online_now'.",
            "type": "string",
            "enum": [
              "pay_online_now",
              "pay_partial_online_now",
              "pay_at_pickup"
            ]
          }
        }
      },
      "availability_policiesOutput": {
        "description": "The policies that apply to this product.",
        "type": "object",
        "properties": {
          "cancellation": {
            "$ref": "#/components/schemas/availability_cancellationOutput"
          },
          "damage_excess": {
            "type": "object",
            "properties": {
              "amount": {
                "description": "The maximum amount a traveller may be charged for damages to the car during the rental period, as specified by the rental agreement.",
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/monetaryAmount"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "deposit": {
            "type": "object",
            "properties": {
              "amount": {
                "description": "The amount of money that will be temporarily pre-authorised or blocked on the traveller’s credit card at the rental location as a security deposit, to cover potential damage or extra charges.",
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/monetaryAmount"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          },
          "insurance_package": {
            "description": "The supplier insurance package that applies to this product.",
            "type": "string",
            "enum": [
              "basic",
              "inclusive",
              "zero_excess"
            ]
          },
          "fuel": {
            "description": "The fuel policy that applies to this product.",
            "type": "string",
            "enum": [
              "return_same",
              "return_same_or_prepay_no_refunds",
              "return_same_preauth",
              "free_tank",
              "prepay_no_refunds",
              "prepay_part_refunds",
              "prepay_refunds"
            ]
          },
          "mileage": {
            "$ref": "#/components/schemas/availability_mileageOutput"
          },
          "payment": {
            "$ref": "#/components/schemas/availability_paymentOutput"
          },
          "theft_excess": {
            "type": "object",
            "properties": {
              "amount": {
                "description": "The maximum amount a traveller may be charged in the event of car theft during the rental period, as outlined in the rental agreement.",
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/monetaryAmount"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            }
          }
        }
      },
      "chargeTypeIdOutput": {
        "description": "The type of this charge.",
        "type": "string"
      },
      "chargeOutput": {
        "description": "Defines the charge, including the type of charge and its total amount.",
        "type": "object",
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/chargeTypeIdOutput"
          },
          "total_amount": {
            "description": "The total price for this charge.",
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "priceOutput": {
        "description": "The price that applies to this vehicle.",
        "type": "object",
        "properties": {
          "base": {
            "description": "The base price of the vehicle.",
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "credit_card_required": {
            "description": "Indicates whether a credit card is required as a guarantee for this vehicle.\n\n- true: A credit card must be provided and will be passed to the supplier for guarantee purposes. Applies to vehicles with 'payment.timing = pay_at_pickup'.\n- false: A credit card is explicitly not required.\n- null: Information not available or not applicable (for example, pay-online-now vehicles where credit card requirements are currently unknown).",
            "type": [
              "boolean",
              "null"
            ]
          },
          "total": {
            "description": "The total price of the vehicle.",
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "extra_charges": {
            "description": "The charge breakdown. Includes taxes and fees included in the drive away price.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/chargeOutput"
            }
          }
        }
      },
      "carMonetaryAmount": {
        "description": "A monetary amount with currency code.",
        "type": "object",
        "properties": {
          "value": {
            "description": "The numeric value of the amount.",
            "type": "number",
            "format": "double"
          },
          "currency": {
            "description": "The currency code.",
            "$ref": "#/components/schemas/currencyId"
          }
        }
      },
      "carMonetaryAmountWithTiming": {
        "description": "A monetary amount with currency code and the timing of payment. Use timing to indicate whether the amount is paid online now, partially online, or at pickup.",
        "type": "object",
        "properties": {
          "value": {
            "description": "The numeric value of the amount.",
            "type": "number",
            "format": "double"
          },
          "currency": {
            "description": "The currency code.",
            "$ref": "#/components/schemas/currencyId"
          },
          "timing": {
            "description": "The payment timing.",
            "type": "string",
            "enum": [
              "pay_online_now",
              "pay_partial_online_now",
              "pay_at_pickup"
            ]
          }
        }
      },
      "carsPriceOutput": {
        "description": "Price object containing the amount shown to the traveller (display) and the actual payment amount (pay) with timing information.",
        "type": "object",
        "properties": {
          "display": {
            "description": "The price displayed to the traveller, including applicable taxes or fees.",
            "$ref": "#/components/schemas/carMonetaryAmount"
          },
          "pay": {
            "description": "The actual payment amount and timing. Indicates whether the amount is paid online now, partially online, or at pickup.",
            "$ref": "#/components/schemas/carMonetaryAmountWithTiming"
          }
        }
      },
      "productPriceOutput": {
        "description": "Pricing information for the product, including display price and payment details.",
        "type": "object",
        "properties": {
          "unit_amount": {
            "description": "The price for a single unit of this product. Use mode to determine if it’s per day or per rental.",
            "$ref": "#/components/schemas/carsPriceOutput"
          }
        }
      },
      "productOutput": {
        "description": "Detailed information about optional extras available for the vehicle, including pricing, availability, and calculation rules.",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the product."
          },
          "type": {
            "type": "string",
            "description": "Specifies the type of extra, feature, or service associated with the vehicle. For example, gps for a navigation system, baby_seat for a child seat, or wifi_router for mobile internet.",
            "enum": [
              "additional_driver",
              "baby_seat",
              "bluetooth_handsfree_kit",
              "booster_seat",
              "child_booster_seat",
              "child_seat",
              "child_seat_isofix",
              "etc_card_electronic_toll_collection_card",
              "excess_protection",
              "fast_track",
              "gps",
              "infant_seat",
              "luggage_rack",
              "personal_travel_assistant",
              "queue_jump",
              "roof_rack",
              "ski_box",
              "ski_rack",
              "skierized_equipment",
              "snow_chains",
              "snow_tyres",
              "wifi_mobile",
              "wifi_router"
            ]
          },
          "maximum_available": {
            "type": "number",
            "format": "integer",
            "description": "Maximum number of units of this product that can be selected per booking."
          },
          "mode": {
            "type": "string",
            "description": "Defines how the product price is calculated. This determines whether pricing is applied per unit, per day, or for the full rental period.",
            "enum": [
              "each_per_day",
              "each_per_rental",
              "per_day",
              "per_rental"
            ],
            "x-enumDescriptions": {
              "each_per_day": "The price is charged per unit of the product, per day of the rental period. Total cost = unit price × quantity × number of rental days.",
              "per_day": "The price is charged once per day for the product, regardless of quantity. Total cost = daily price × number of rental days.",
              "each_per_rental": "The price is charged per unit for the full rental period. Total cost = unit price × quantity.",
              "per_rental": "The price is charged once for the entire rental period, regardless of quantity or duration."
            }
          },
          "price": {
            "$ref": "#/components/schemas/productPriceOutput"
          }
        }
      },
      "dealOutput": {
        "description": "This specifies the deal tagging for the product.",
        "type": "object",
        "nullable": true,
        "properties": {
          "discount_percentage": {
            "description": "Discount percentage of the applied deals.",
            "type": "integer",
            "minimum": 1
          },
          "public_price": {
            "description": "Original price of this product, before applying any discounts.",
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "tags": {
            "description": "The tags of all the applied deals.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "black_friday",
                "getaway_deal",
                "mobile_rate"
              ]
            }
          }
        }
      },
      "availability_routePointOutput": {
        "description": "Defines the product pick up / drop off route point.",
        "type": "object",
        "properties": {
          "depot": {
            "description": "The identifier of the depot used for pick up or drop off.",
            "$ref": "#/components/schemas/depots_depotId"
          },
          "depot_location_type": {
            "description": "The type of location for the depot.",
            "type": "string",
            "enum": [
              "in_terminal",
              "car_rental_centre",
              "outside_terminal",
              "airport_hotel",
              "shuttle_bus",
              "meet_greet",
              "trainstation",
              "downtown"
            ]
          }
        }
      },
      "availability_routeOutput": {
        "description": "Defines the actual route associated with the product.",
        "type": "object",
        "properties": {
          "dropoff": {
            "description": "Defines the product drop off route point.",
            "$ref": "#/components/schemas/availability_routePointOutput"
          },
          "pickup": {
            "description": "Defines the product pick up route point.",
            "$ref": "#/components/schemas/availability_routePointOutput"
          }
        }
      },
      "availability_insuranceOutput": {
        "description": "Detailed third-party insurance quote for this car rental. Returned only for eligible partner configurations (e.g., partners with a signed insurance contract), and when insurance is available for the selected offer (null if not available).\nThis object represents a bookable insurance product and includes pricing, coverage, and policy documentation.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "quote_reference": {
            "description": "Unique reference for this insurance quote. Expires after 90 minutes.",
            "type": "string",
            "examples": [
              "38df45ef-a6fb-4e24-a1d2-66fc3af23d76#1t0juiba8h6n2"
            ]
          },
          "name": {
            "description": "The display name of the insurance product.",
            "type": "string",
            "examples": [
              "Full Protection"
            ]
          },
          "id": {
            "description": "The identifier for the type of insurance product.",
            "type": "string",
            "examples": [
              "999"
            ]
          },
          "price": {
            "description": "The price of the insurance product for the full rental period.",
            "$ref": "#/components/schemas/carsPriceOutput"
          },
          "coverage_amount": {
            "description": "The maximum coverage amount provided by the insurance product.",
            "type": "object",
            "properties": {
              "value": {
                "description": "The numeric value of the maximum coverage.",
                "$ref": "#/components/schemas/monetaryAmount"
              },
              "currency": {
                "description": "The currency of the coverage amount.",
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "policy_document_url": {
            "description": "URL to the full Policy Disclosure Statement (PDS). Contains the complete terms and conditions of the insurance policy. Present when available.",
            "type": "string",
            "format": "uri",
            "examples": [
              "https://staging.rentalcover.com/en/pds"
            ]
          },
          "ipid_document_url": {
            "description": "URL to the Insurance Product Information Document (IPID). Provides a standardised summary of the insurance coverage, exclusions, and obligations. Only available for EEA and UK countries. Null if not applicable.",
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "examples": [
              "https://files.rentalcover.com/ipids.pdf"
            ]
          }
        },
        "required": [
          "quote_reference",
          "name",
          "id",
          "price",
          "policy_document_url"
        ]
      },
      "cars_availability_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "offer": {
                "$ref": "#/components/schemas/offerId"
              },
              "currency": {
                "$ref": "#/components/schemas/currencyId"
              },
              "policies": {
                "$ref": "#/components/schemas/availability_policiesOutput"
              },
              "price": {
                "$ref": "#/components/schemas/priceOutput"
              },
              "products": {
                "type": "array",
                "description": "A list of optional extras (e.g. child seats, GPS) available for this vehicle.",
                "items": {
                  "$ref": "#/components/schemas/productOutput"
                }
              },
              "deal": {
                "$ref": "#/components/schemas/dealOutput"
              },
              "special_offer": {
                "description": "The special offer included with this product, if any. This can be an additional service, a free upgrade, or a promotional feature provided by the supplier. If no special offer applies, the value is null.",
                "type": [
                  "string",
                  "null"
                ],
                "examples": [
                  "upgrade"
                ],
                "enum": [
                  "one_additional_driver",
                  "two_additional_drivers",
                  "three_additional_drivers",
                  "all_additional_drivers",
                  "gps",
                  "baby_or_child_seat",
                  "priority_pickup",
                  "wifi_device",
                  "sim_card",
                  "upgrade",
                  "black_friday",
                  "getaway_deal",
                  "mobile_rate"
                ]
              },
              "supplier": {
                "type": "number",
                "format": "integer",
                "description": "The unique identifier for the car rental supplier."
              },
              "route": {
                "$ref": "#/components/schemas/availability_routeOutput"
              },
              "insurance": {
                "$ref": "#/components/schemas/availability_insuranceOutput"
              }
            }
          }
        }
      },
      "cars_constants_input": {
        "title": "CarsConstantsInput",
        "type": "object",
        "properties": {
          "constants": {
            "description": "Use this field to limit the response to specific categories, such as fuel_policies, depot_services, customer_services, etc. If omitted, all constants are returned.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "car_categories",
                "customer_services",
                "depot_services",
                "depot_types",
                "extras",
                "special_offers",
                "fuel_policies",
                "fuel_types",
                "general",
                "payment_timings",
                "protection_levels",
                "review_scores",
                "transmission"
              ],
              "x-enumDescriptions": {
                "car_categories": "Vehicle categories used to group rental cars by size and type, such as economy, SUV, or premium.",
                "customer_services": "Customer support contact details per language.",
                "depot_services": "Services available at the car pick-up location.",
                "depot_types": "Types of car rental locations, such as airport, downtown, or train station.",
                "extras": "Optional add-ons such as child seats, GPS, or winter equipment.",
                "special_offers": "Included benefits or promotions bundled with the rental.",
                "fuel_policies": "Fuel handling policies for the rental.",
                "fuel_types": "Types of fuel supported by the vehicle.",
                "general": "General attributes and labels used across the Cars API.",
                "payment_timings": "When the traveller is charged for the booking.",
                "protection_levels": "Levels of insurance or protection coverage applied to the rental, affecting the traveller's financial liability.",
                "review_scores": "Categories used to evaluate customer reviews of rental experiences, such as cleanliness or pick-up speed.",
                "transmission": "Vehicle transmission types."
              }
            }
          },
          "languages": {
            "type": "array",
            "description": "List of language codes used to localise constant names. Each constant name is returned as a translated object keyed by language. If not provided, en-gb is used by default.",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          }
        }
      },
      "carsConstant": {
        "title": "CarsConstant",
        "description": "Represents a constant identifier and its translated display names for the requested languages.",
        "type": "array",
        "items": {
          "description": "Id and translated names for the constant. Some constants may represent bundled products rather than single items. For example, `skierized_equipment` refers to a winter sports package that typically includes a ski rack (up to 4 pairs of skis), an ice scraper, and winter or all-season tyres. Exact components may vary by supplier.",
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "$ref": "#/components/schemas/translatedString"
            }
          }
        }
      },
      "cars_constants_output": {
        "title": "CarsConstantsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "title": "ConstantsDataOutput",
            "description": "Contains constant groups keyed by constant type. Each group includes a list of constant identifiers and their translated names.",
            "type": "object",
            "properties": {
              "car_categories": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "customer_services": {
                "description": "Customer service contact details per language. For each requested language, the API returns the corresponding customer support email address. English uses the default address, while other languages include a language-specific suffix.",
                "$ref": "#/components/schemas/carsConstant"
              },
              "depot_services": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "depot_types": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "extras": {
                "description": "List of available extra products. Each item represents an optional add-on. Some extras may be bundled packages rather than individual items. For example, `skierized_equipment` refers to a winter sports package that typically includes a ski rack, ice scraper, and winter or all-season tyres.",
                "$ref": "#/components/schemas/carsConstant"
              },
              "special_offers": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "fuel_policies": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "fuel_types": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "general": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "payment_timings": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "protection_levels": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "review_scores": {
                "$ref": "#/components/schemas/carsConstant"
              },
              "transmission": {
                "$ref": "#/components/schemas/carsConstant"
              }
            }
          }
        }
      },
      "depots_input": {
        "type": "object",
        "properties": {
          "last_modified": {
            "description": "Returns depots modified after the specified timestamp (exclusive).",
            "example": "2026-03-01T11:05:00+00:00",
            "format": "date-time",
            "type": "string"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "languages": {
            "description": "List of language codes to return translated fields. If a translation is unavailable, the default language (`en-gb`) is returned.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          }
        }
      },
      "depots_contact": {
        "description": "Contact information of the depot. Returns `null` when unavailable.",
        "type": "object",
        "properties": {
          "email": {
            "description": "Email address of the depot. Returns `null` when unavailable.",
            "example": "depot@test.booking.com",
            "type": [
              "string",
              "null"
            ]
          },
          "telephone": {
            "description": "Telephone number of the depot. Returns `null` when unavailable.",
            "example": "+31882847620",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "city": {
        "description": "Unique identifier of the city where the depot is located.  Retrieve the full list of city IDs by calling /common/locations/cities.",
        "type": "integer",
        "example": -1471393
      },
      "openingHoursRange": {
        "description": "Depot opening hours range.",
        "type": "object",
        "properties": {
          "closing_time": {
            "description": "Depot closing time",
            "example": "21:00:00",
            "format": "time",
            "type": "string"
          },
          "opening_time": {
            "description": "Depot opening time.",
            "example": "07:00:00",
            "format": "time",
            "type": "string"
          }
        }
      },
      "workingHours": {
        "description": "Opening and closing times per day of the week. Days may be omitted if the depot is closed.",
        "type": "object",
        "patternProperties": {
          "^(monday|tuesday|wednesday|thursday|friday|saturday|sunday)$": {
            "description": "Working hours for the day.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/openingHoursRange"
            }
          }
        }
      },
      "instructions": {
        "description": "Pickup or drop-off information.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "instructions": {
            "description": "Translated pickup or drop-off instructions.",
            "$ref": "#/components/schemas/translatedString"
          },
          "working_hours": {
            "description": "Depot working hours.",
            "$ref": "#/components/schemas/workingHours"
          }
        }
      },
      "location": {
        "description": "Depot location information.",
        "type": "object",
        "properties": {
          "address": {
            "description": "Depot address information.",
            "example": "5 Aankomstpassage",
            "type": [
              "string",
              "null"
            ]
          },
          "airport": {
            "description": "Airport IATA code.",
            "example": "AMS",
            "type": [
              "string",
              "null"
            ]
          },
          "depot_location_type": {
            "description": "Specifies where the depot is located (for example, inside the terminal, at a train station, or downtown). Returns `null` when not defined.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "in_terminal",
              "car_rental_centre",
              "outside_terminal",
              "airport_hotel",
              "shuttle_bus",
              "meet_greet",
              "trainstation",
              "downtown"
            ],
            "x-enumDescriptions": {
              "in_terminal": "Depot is located inside the airport terminal building.",
              "car_rental_centre": "Depot is located in a dedicated car rental centre on or near airport grounds.",
              "outside_terminal": "Depot is outside the terminal area, usually a short walk or drive away.",
              "airport_hotel": "Depot is located at or inside an airport hotel.",
              "shuttle_bus": "Depot requires a shuttle bus transfer from the airport or another meeting point.",
              "meet_greet": "A rental agent meets the traveller in person at an agreed pick-up point (e.g., arrivals hall).",
              "trainstation": "Depot is located in or near a train station.",
              "downtown": "Depot is located in a central/downtown city area."
            }
          },
          "coordinates": {
            "$ref": "#/components/schemas/dataTypes_coordinates"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "name": {
            "description": "Translated depot name.",
            "allOf": [
              {
                "$ref": "#/components/schemas/translatedString"
              }
            ],
            "example": {
              "en-gb": "Amsterdam Airport Schiphol - Terminal 3"
            }
          },
          "post_code": {
            "description": "Depot post code",
            "example": "1118 AX",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "numberOfReviews": {
        "description": "Number of validated reviews for the depot.",
        "type": "integer",
        "example": 125,
        "minimum": 0
      },
      "depots_reviewScore": {
        "description": "Current review score of the depot, in the range 1.0 to 10.0.",
        "type": "number",
        "example": 8.7,
        "multipleOf": 0.1,
        "minimum": 1,
        "maximum": 10
      },
      "ratings": {
        "description": "Review count and average score for the depot.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "number_of_reviews": {
            "$ref": "#/components/schemas/numberOfReviews"
          },
          "score": {
            "$ref": "#/components/schemas/depots_reviewScore"
          }
        }
      },
      "depot": {
        "description": "Static information about the car rental depot.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique depot's ID.",
            "$ref": "#/components/schemas/depots_depotId"
          },
          "contact": {
            "$ref": "#/components/schemas/depots_contact"
          },
          "city": {
            "description": "Unique identifier of the city. You can see the full list of city IDs calling /common/locations/cities.",
            "$ref": "#/components/schemas/city"
          },
          "dropoff": {
            "description": "Drop-off information for the depot.",
            "$ref": "#/components/schemas/instructions"
          },
          "location": {
            "$ref": "#/components/schemas/location"
          },
          "pickup": {
            "description": "Pickup information for the depot.",
            "$ref": "#/components/schemas/instructions"
          },
          "services": {
            "description": "List of services provided by the depot.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "shuttle",
                "meet_greet",
                "unknown"
              ]
            }
          },
          "supplier": {
            "description": "Unique identifier of the vehicle supplier. You can see the full list of supplier IDs calling /cars/suppliers.",
            "$ref": "#/components/schemas/vehicleSupplierId"
          },
          "ratings": {
            "description": "Number of reviews and average score for the depot.",
            "$ref": "#/components/schemas/ratings"
          }
        }
      },
      "depots_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/depot"
            }
          },
          "metadata": {
            "description": "Metadata about the request.",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Pass this token to the `page` parameter to retrieve the next page of results.",
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      },
      "components-schemas-input": {
        "type": "object",
        "properties": {
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          }
        }
      },
      "schemas-breakdown_schema": {
        "description": "Review score information for a specific evaluation category.",
        "type": "object",
        "properties": {
          "score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/score"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "schemas-breakdown": {
        "description": "Breakdown of review scores by evaluation category.",
        "type": "object",
        "properties": {
          "cleanliness": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          },
          "condition": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          },
          "drop_off_speed": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          },
          "friendliness": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          },
          "likeliness_rent_again": {
            "allOf": [
              {
                "$ref": "#/components/schemas/schemas-breakdown_schema"
              }
            ],
            "deprecated": true,
            "description": "Deprecated. This field will be removed in a future version."
          },
          "location": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          },
          "pick_up_speed": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          },
          "value_for_money": {
            "$ref": "#/components/schemas/schemas-breakdown_schema"
          }
        },
        "additionalProperties": false
      },
      "schemas-scores": {
        "description": "Review scores, rating breakdown, and review volume information for a depot.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/depots_depotId"
          },
          "breakdown": {
            "$ref": "#/components/schemas/schemas-breakdown"
          },
          "number_of_reviews": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/numberOfReviews"
              },
              {
                "type": "null"
              }
            ]
          },
          "score": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/depots_reviewScore"
              },
              {
                "type": "null"
              }
            ]
          }
        }
      },
      "components-schemas-output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/schemas-scores"
            }
          },
          "metadata": {
            "description": "Pagination metadata for the response.",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          }
        }
      },
      "details_components-schemas-input": {
        "type": "object",
        "properties": {
          "last_modified": {
            "description": "The last modified date-time, only returns depots newer than this timestamp. The value should be within last 7 days",
            "example": "2023-11-01T11:05:00+00:00",
            "format": "date-time",
            "type": "string"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          }
        }
      },
      "carId": {
        "description": "Uniquely identifies a car specification. The full list can be obtained by calling [/cars/suppliers](#/cars/details).",
        "type": "integer",
        "minimum": 1
      },
      "capacity": {
        "description": "Car's capacity",
        "type": "object",
        "properties": {
          "bags": {
            "description": "Car's Baggage Capacity.",
            "type": "object",
            "properties": {
              "large": {
                "description": "Number of large bags.",
                "type": "number",
                "minimum": 0
              },
              "small": {
                "description": "Number of small bags.",
                "type": "number",
                "minimum": 0
              }
            },
            "nullable": true
          },
          "doors": {
            "description": "Number of doors in the car.",
            "type": "string"
          },
          "seats": {
            "description": "Number of seats in the car.",
            "type": "string"
          }
        }
      },
      "specification": {
        "properties": {
          "code": {
            "description": "Car's code in ACRISS Standard (https://www.acriss.org/car-codes/expanded-matrix/).",
            "type": "string"
          },
          "description": {
            "description": "Car Description Based on ACRISS Category and Type (https://www.acriss.org/car-codes/expanded-matrix/).",
            "type": "string"
          },
          "fuel": {
            "description": "Car's fuel type.",
            "type": "string",
            "enum": [
              "electric",
              "petrol",
              "plug_in_hybrid",
              "multi_fuel",
              "diesel",
              "hybrid",
              "lpg",
              "hydrogen",
              "ethanol",
              "unspecified"
            ]
          },
          "transmission": {
            "description": "Car's transmission.",
            "type": "string",
            "enum": [
              "automatic",
              "manual"
            ]
          }
        }
      },
      "details": {
        "description": "All static information related to cars.",
        "properties": {
          "id": {
            "description": "Unique car's ID.",
            "$ref": "#/components/schemas/carId"
          },
          "capacity": {
            "$ref": "#/components/schemas/capacity"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "features": {
            "description": "List of possible car's features.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "air_conditioning",
                "all_wheel_drive"
              ]
            }
          },
          "image": {
            "description": "Car's image URL.",
            "type": "string"
          },
          "make": {
            "description": "Car's maker/brand.",
            "type": "string"
          },
          "model": {
            "description": "Car's model.",
            "type": "string"
          },
          "specification": {
            "description": "Car's specification.",
            "$ref": "#/components/schemas/specification"
          },
          "supplier": {
            "description": "Related supplier id.",
            "$ref": "#/components/schemas/vehicleSupplierId"
          }
        },
        "type": "object"
      },
      "details_components-schemas-output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/details"
            }
          },
          "metadata": {
            "description": "Metadata about the request.",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "cars_suppliers_input": {
        "type": "object",
        "properties": {
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "suppliers": {
            "description": "Defines the suppliers that should be returned. Without it all suppliers will be returned",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/vehicleSupplierId"
            },
            "maxItems": 100
          }
        }
      },
      "supplier": {
        "description": "All static information related to an vehicle supplier.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/vehicleSupplierId"
          },
          "logo": {
            "description": "Supplier logo image URL.",
            "type": "string",
            "format": "uri"
          },
          "name": {
            "description": "Brand name of the vehicle supplier.",
            "type": "string"
          }
        }
      },
      "cars_suppliers_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/supplier"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/metadata"
          }
        }
      },
      "cars_terms_and_conditions_input": {
        "properties": {
          "offer": {
            "$ref": "#/components/schemas/offerId"
          },
          "currency": {
            "description": "The currency in ISO 4217 format (e.g., USD, EUR, GBP)",
            "example": "USD",
            "type": "string"
          },
          "language": {
            "description": "The language code (ISO 639-1 format) in which to return the terms and conditions.",
            "$ref": "#/components/schemas/languageId"
          },
          "search_token": {
            "description": "The pre-booking search_token used to fetch terms and conditions for a specific car rental offer. The search_token is returned by the search endpoint.",
            "type": "string"
          }
        },
        "required": [
          "offer",
          "currency",
          "search_token"
        ],
        "type": "object"
      },
      "terms": {
        "description": "The terms and conditions section.",
        "type": [
          "array",
          "null"
        ],
        "items": {
          "description": "A chapter in the terms and conditions document. Chapters contain one or more sections.",
          "type": "object",
          "properties": {
            "title": {
              "description": "Title of the chapter.",
              "type": "string"
            },
            "type": {
              "description": "Identifies this element as a chapter.",
              "enum": [
                "chapter"
              ],
              "type": "string"
            },
            "children": {
              "description": "List of sections contained within this chapter.",
              "type": "array",
              "items": {
                "description": "A section that belongs to this chapter.",
                "type": "object",
                "properties": {
                  "title": {
                    "description": "Title of the section.",
                    "type": "string"
                  },
                  "type": {
                    "description": "Identifies this element as a section.",
                    "enum": [
                      "section"
                    ],
                    "type": "string"
                  },
                  "children": {
                    "description": "List of clauses contained within this section.",
                    "type": "array",
                    "items": {
                      "description": "A clause that belongs to this section.",
                      "type": "object",
                      "properties": {
                        "title": {
                          "description": "Title of the clause.",
                          "type": "string"
                        },
                        "type": {
                          "description": "Identifies this element as a clause.",
                          "enum": [
                            "clause"
                          ],
                          "type": "string"
                        },
                        "children": {
                          "description": "List of sub-clauses contained within this clause.",
                          "type": "array",
                          "items": {
                            "description": "A sub-clause that belongs to this clause.",
                            "type": "object",
                            "properties": {
                              "type": {
                                "description": "Identifies this element as a sub-clause.",
                                "enum": [
                                  "sub_clause"
                                ],
                                "type": "string"
                              },
                              "children": {
                                "description": "List of clause options contained within this sub-clause.",
                                "type": "array",
                                "items": {
                                  "description": "A clause option that belongs to this sub-clause.",
                                  "type": "object",
                                  "properties": {
                                    "text": {
                                      "description": "Text content of the clause option with safe HTML formatting tags (e.g., `<strong>`, `<a>`, `<ul>`) and entities (e.g., `&euro;`, `&ndash;`)",
                                      "type": "string"
                                    },
                                    "type": {
                                      "description": "Identifies this element as a clause option.",
                                      "enum": [
                                        "clause_option"
                                      ],
                                      "type": "string"
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      },
      "cars_terms_and_conditions_output": {
        "properties": {
          "data": {
            "type": "object",
            "description": "Terms and conditions content translated in the requested language, if specified.",
            "properties": {
              "key_info": {
                "type": "object",
                "description": "High-level information about the car rental.",
                "properties": {
                  "common": {
                    "properties": {
                      "credit_cards_allowed": {
                        "description": "Indicates whether the supplier accepts credit cards for the car rental deposit.",
                        "type": "boolean"
                      },
                      "debit_cards_allowed": {
                        "description": "Indicates whether the supplier accepts debit cards for the car rental deposit.",
                        "type": "boolean"
                      },
                      "driver_age": {
                        "description": "This is the driver age included in the car rental search request.",
                        "type": "integer"
                      },
                      "insurance_available": {
                        "description": "Indicates whether insurance is available for the rental.",
                        "type": "boolean"
                      },
                      "rental_duration": {
                        "description": "The duration of the rental in days.",
                        "type": "integer",
                        "minimum": 1
                      }
                    },
                    "type": "object"
                  },
                  "damage_excess": {
                    "description": "The damage excess section.",
                    "properties": {
                      "content": {
                        "description": "The content of the damage excess section.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "excess_value": {
                        "description": "The value of the damage excess.",
                        "type": "string"
                      },
                      "subtitle": {
                        "description": "The subtitle of the damage excess section.",
                        "type": "string"
                      },
                      "title": {
                        "description": "The title of the damage excess section.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "deposit": {
                    "description": "General information about the deposit.",
                    "properties": {
                      "accepted_cards": {
                        "description": "The accepted cards for the deposit.",
                        "items": {
                          "properties": {
                            "title": {
                              "description": "The title of the card.",
                              "type": "string"
                            },
                            "type": {
                              "description": "The type of card.",
                              "type": "string"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      },
                      "accepted_cards_title": {
                        "description": "The title of the accepted cards section.",
                        "type": "string"
                      },
                      "content": {
                        "description": "The content of the deposit section.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "subtitle": {
                        "description": "The subtitle of the deposit section.",
                        "type": "string"
                      },
                      "title": {
                        "description": "The title of the deposit section.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "disclaimers": {
                    "description": "The disclaimers section.",
                    "items": {
                      "type": "string"
                    },
                    "type": "array"
                  },
                  "driver_and_license": {
                    "description": "The driver and license section.",
                    "properties": {
                      "needed_items": {
                        "description": "What you need in order to rent a car.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "title": {
                        "description": "The title of the driver and license section.",
                        "type": "string"
                      },
                      "top_text": {
                        "description": "The top text of the driver and license section.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "mileage": {
                    "description": "The mileage section.",
                    "properties": {
                      "content": {
                        "description": "The content of the mileage section.",
                        "type": "string"
                      },
                      "subtitle": {
                        "description": "The subtitle of the mileage section.",
                        "type": "string"
                      },
                      "title": {
                        "description": "The title of the mileage section.",
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                }
              },
              "terms": {
                "$ref": "#/components/schemas/terms"
              }
            }
          },
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          }
        },
        "type": "object"
      },
      "destinationType": {
        "description": "The type of destination.",
        "type": "string",
        "enum": [
          "airport",
          "hotel",
          "landmark",
          "city",
          "district",
          "region",
          "country"
        ]
      },
      "autoCompleteFilters": {
        "title": "AutoCompleteFilters",
        "description": "Filters to restrict autocomplete results.",
        "type": "object",
        "properties": {
          "types": {
            "description": "Restricts results to the specified destination types. If omitted, all destination types are considered.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/destinationType"
            }
          }
        }
      },
      "autoCompleteInput": {
        "title": "AutoCompleteInput",
        "type": "object",
        "required": [
          "query",
          "country"
        ],
        "properties": {
          "query": {
            "description": "Free-text search query used to generate suggestions. Leading and trailing whitespace is ignored. Must contain between 3 and 200 characters.",
            "type": "string",
            "minLength": 3,
            "maxLength": 200,
            "examples": [
              "ams",
              "amster",
              "amsterdam"
            ]
          },
          "language": {
            "description": "Language code used to localise names in the response. Only one language can be specified per request.",
            "$ref": "#/components/schemas/languageId",
            "default": "en-gb"
          },
          "country": {
            "description": "ISO 3166-1 alpha-2 country code used as the primary search context for autocomplete ranking. This field is required.",
            "$ref": "#/components/schemas/countryId"
          },
          "filters": {
            "description": "Restricts results to the specified destination types. If omitted, all types are included. It should not be an empty object.",
            "$ref": "#/components/schemas/autoCompleteFilters"
          }
        }
      },
      "autoCompleteLocation": {
        "title": "AutoCompleteLocation",
        "description": "Geographic context of the suggestion, including city, country and coordinates.",
        "type": "object",
        "properties": {
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "city_name": {
            "$ref": "#/components/schemas/translatedString"
          },
          "coordinates": {
            "$ref": "#/components/schemas/dataTypes_coordinates"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "country_name": {
            "$ref": "#/components/schemas/translatedString"
          }
        }
      },
      "autoCompleteResult": {
        "title": "AutoCompleteResultOutput",
        "description": "Represents a single ranked autocomplete suggestion with a display name in the requested language and geographic context.",
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/destinationType"
          },
          "name": {
            "description": "Display name in the requested language. Only one language key is returned.",
            "$ref": "#/components/schemas/translatedString"
          },
          "id": {
            "description": "The identifier of the destination. The format depends on the destination type.",
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/autoCompleteLocation"
          }
        }
      },
      "autoCompleteOutput": {
        "title": "AutoCompleteOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/autoCompleteResult"
            }
          }
        }
      },
      "language": {
        "title": "LanguageOutput",
        "description": "The language code and its designation in the corresponding language.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/languageId"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "languages_output": {
        "title": "LanguagesOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/language"
            }
          }
        }
      },
      "airportInput": {
        "title": "AirportsInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "airport": {
        "title": "AirportOutput",
        "description": "The three-letter IATA airport code and the translated name(s).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/airportId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        }
      },
      "airportOutput": {
        "title": "AirportsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/airport"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "citiesInput": {
        "title": "CitiesInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "cities_city": {
        "title": "CityOutput",
        "description": "The city internal code and the translated name(s).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/cityId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          },
          "coordinates": {
            "$ref": "#/components/schemas/dataTypes_coordinates"
          }
        }
      },
      "citiesOutput": {
        "title": "CitiesOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/cities_city"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "countriesInput": {
        "title": "CountriesInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "country": {
        "title": "CountryOutput",
        "description": "The two-letter ISO2 country code and the translated name(s).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/countryId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        }
      },
      "countriesOutput": {
        "title": "CountriesOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/country"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "districtsInput": {
        "title": "DistrictsInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "district": {
        "title": "DistrictOutput",
        "description": "The district id and the translated name(s).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/districtId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          },
          "coordinates": {
            "$ref": "#/components/schemas/dataTypes_coordinates"
          }
        }
      },
      "districtsOutput": {
        "title": "DistrictsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/district"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "landmarksInput": {
        "title": "LandmarksInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "district": {
            "$ref": "#/components/schemas/districtId"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "landmark": {
        "title": "LandmarkOutput",
        "description": "The landmark internal code and the translated name(s).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          },
          "coordinates": {
            "$ref": "#/components/schemas/dataTypes_coordinates"
          }
        }
      },
      "landmarksOutput": {
        "title": "LandmarksOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/landmark"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "regionsInput": {
        "title": "RegionsInput",
        "type": "object",
        "properties": {
          "airport": {
            "$ref": "#/components/schemas/airportId"
          },
          "city": {
            "$ref": "#/components/schemas/cityId"
          },
          "country": {
            "$ref": "#/components/schemas/countryId"
          },
          "landmark": {
            "$ref": "#/components/schemas/landmarkId"
          },
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          },
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "region": {
            "$ref": "#/components/schemas/regionId"
          },
          "rows": {
            "$ref": "#/components/schemas/maximumResults",
            "maximum": 1000
          }
        }
      },
      "region": {
        "title": "RegionOutput",
        "description": "The region id and the translated name(s).",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/regionId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        }
      },
      "regionsOutput": {
        "title": "RegionsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/region"
            }
          },
          "metadata": {
            "title": "MetadataOutput",
            "type": "object",
            "properties": {
              "next_page": {
                "description": "Indicates that more results are available. Use this pagination token to retrieve the next page of results (via parameter `page`).",
                "type": "string",
                "nullable": true
              }
            }
          }
        }
      },
      "paymentCard": {
        "title": "PaymentCardOutput",
        "description": "The payment card identifier code and its designation in English.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/paymentCardId"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "cards_output": {
        "title": "CardsDataOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/paymentCard"
            }
          }
        }
      },
      "currencies_input": {
        "title": "CurrenciesInput",
        "type": "object",
        "properties": {
          "languages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/languageId"
            },
            "default": [
              "en-gb"
            ]
          }
        }
      },
      "currencies_currency": {
        "title": "CurrencyOutput",
        "description": "The ISO 4217 currency code and its designation in the selected language.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/currencyId"
          },
          "name": {
            "$ref": "#/components/schemas/translatedString"
          }
        }
      },
      "currencies_output": {
        "title": "CurrenciesOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/currencies_currency"
            }
          }
        }
      },
      "carProductInput": {
        "title": "CarProductInput",
        "description": "Input for selecting an additional car product (e.g., child seat, GPS, additional insurance).",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the product to add.",
            "type": "string"
          },
          "amount": {
            "description": "The quantity of this product to add.",
            "type": "integer",
            "minimum": 1
          }
        },
        "required": [
          "id",
          "amount"
        ]
      },
      "carInput": {
        "title": "OrdersPreviewCarInput",
        "description": "Additional information related to the car order. This field is mutually exclusive with accommodation; only one of them can be included in a request.",
        "type": "object",
        "properties": {
          "search_token": {
            "description": "Encoded string returned by the car search. Note: It is specific to Car rentals and differs from other tokens used in booking flows.",
            "type": "string"
          },
          "offer": {
            "$ref": "#/components/schemas/offerId"
          },
          "products": {
            "description": "List of additional products to add to the car rental (e.g., child seats, GPS, additional insurance).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/carProductInput"
            }
          },
          "insurance": {
            "description": "Insurance details for this car rental. Include this to add third-party insurance to the booking. If omitted, the booking proceeds without insurance.",
            "type": "object",
            "properties": {
              "quote_reference": {
                "description": "The insurance quote reference obtained from /cars/availability.\nInclude this field to attach third-party insurance to the booking. If omitted, the booking proceeds without insurance.\nThe quote_reference must be valid and not expired. If invalid or expired, the request will fail or insurance will not be applied.",
                "type": "string"
              }
            },
            "required": [
              "quote_reference"
            ]
          },
          "language": {
            "description": "Optional. Specifies the language used for insurance documents (IPID and policy document) returned in the response.\n\nIf not provided, or if the requested language is not available, documents default to English (en-gb).\nIf English is also not available for the selected insurance product, the insurance object is not returned, as legally required documentation must be provided.\n\nNote: Uses IETF language tag format (for example, 'fr', 'de').",
            "$ref": "#/components/schemas/languageId"
          }
        },
        "required": [
          "search_token",
          "offer"
        ]
      },
      "preview_booker": {
        "title": "OrdersPreviewBookerOutput",
        "description": "The booker's information.",
        "type": "object",
        "properties": {
          "country": {
            "description": "The booker country for showing the best price for that user and obeying laws regarding the display of taxes and fees.",
            "type": "string",
            "pattern": "^[a-z]{2}$"
          },
          "platform": {
            "description": "The booker platform for showing the platform based deals and prices.",
            "type": "string",
            "enum": [
              "android",
              "desktop",
              "ios",
              "mobile",
              "tablet"
            ]
          },
          "travel_purpose": {
            "description": "The travel purpose of the booker.",
            "type": "string",
            "enum": [
              "business",
              "leisure"
            ]
          },
          "user_groups": {
            "description": "The user groups that the booker is a member of.",
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "authenticated"
              ]
            }
          }
        },
        "required": [
          "country",
          "platform"
        ]
      },
      "preview_allocation": {
        "title": "OrdersPreviewAccommodationAllocationOutput",
        "description": "The exact allocation of guests to a room.",
        "type": "object",
        "properties": {
          "children": {
            "description": "The children ages for this room.",
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            }
          },
          "number_of_adults": {
            "description": "The number of adults for this room.",
            "type": "integer",
            "minimum": 1
          }
        },
        "required": [
          "number_of_adults"
        ]
      },
      "productInput": {
        "title": "OrdersPreviewProductInput",
        "description": "Input parameter with the product id and the desired allocation for that product",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/productId"
          },
          "allocation": {
            "$ref": "#/components/schemas/preview_allocation"
          }
        }
      },
      "accommodationInput": {
        "title": "OrdersPreviewAccommodationInput",
        "description": "Input parameter with the checkin and checkout date and all the accommodation products to be ordered. This field is mutually exclusive with car; only one of them can be included in a request.",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/accommodationId"
          },
          "booker": {
            "$ref": "#/components/schemas/preview_booker"
          },
          "checkin": {
            "$ref": "#/components/schemas/checkin"
          },
          "checkout": {
            "$ref": "#/components/schemas/checkout"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/productInput"
            }
          }
        },
        "required": [
          "id",
          "booker",
          "checkin",
          "checkout",
          "products"
        ]
      },
      "previewInput": {
        "title": "OrdersPreviewInput",
        "type": "object",
        "properties": {
          "car": {
            "$ref": "#/components/schemas/carInput"
          },
          "accommodation": {
            "$ref": "#/components/schemas/accommodationInput"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          }
        },
        "oneOf": [
          {
            "title": "Preview car order",
            "description": "Use this option to preview pricing and policies for car rentals.",
            "required": [
              "car"
            ]
          },
          {
            "title": "Preview accommodation order",
            "description": "Use this option to preview pricing and policies for accommodation reservations.",
            "required": [
              "accommodation"
            ]
          }
        ]
      },
      "paymentSchedule": {
        "title": "AccommodationsPaymentSchedule",
        "type": "object",
        "properties": {
          "at": {
            "description": "The date at which this instalment will be charged.",
            "type": "string",
            "format": "date"
          },
          "price": {
            "description": "The amount charged in this instalment.",
            "$ref": "#/components/schemas/priceCurrencyOutput"
          }
        }
      },
      "dataTypes_paymentMethods": {
        "title": "AccommodationsPaymentMethods",
        "type": "object",
        "description": "The payment methods available for the payment timing selected.",
        "properties": {
          "airplus": {
            "description": "Whether airplus can be used as a payment method for this order.",
            "type": "boolean"
          },
          "cards": {
            "description": "The cards available to pay.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/paymentCardId"
            }
          },
          "wallet": {
            "description": "Whether wallet can be used as a payment method for this order.",
            "type": "boolean"
          }
        },
        "nullable": true
      },
      "productPaymentTimingsDates": {
        "title": "AccommodationsProductPaymentTimingsDates",
        "description": "",
        "type": "object",
        "properties": {
          "pay_online_now": {
            "title": "AccommodationsPayOnlineNow",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "dates": {
                "description": "Schedule specifying the instalments for paying the order for the \"pay_online_now\" option. For each,entry in the schedule, a charge will be made at the time of that entry.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/paymentSchedule"
                }
              },
              "method_required": {
                "description": "Whether a payment method is required for this payment timing.",
                "type": "boolean"
              },
              "methods": {
                "$ref": "#/components/schemas/dataTypes_paymentMethods"
              }
            }
          },
          "pay_online_later": {
            "title": "AccommodationsPayOnlineLater",
            "type": "object",
            "properties": {
              "dates": {
                "description": "Schedule specifying the instalments for paying the order for this product for the \"pay_online_later\" option.  For each entry in the schedule, a charge will be made at the time of that entry.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/paymentSchedule"
                }
              },
              "method_required": {
                "description": "Whether a payment method is required for this payment timing.",
                "type": "boolean"
              },
              "methods": {
                "$ref": "#/components/schemas/dataTypes_paymentMethods"
              }
            },
            "nullable": true
          },
          "pay_at_the_property": {
            "title": "AccommodationsPayAtTheProperty",
            "type": "object",
            "properties": {
              "dates": {
                "description": "Schedule specifying the instalments for paying the order for this product for the \"pay_at_the_property\" option.  For each entry in the schedule, a charge will be made at the time of that entry.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/paymentSchedule"
                }
              },
              "method_required": {
                "description": "Whether a payment method is required for this payment timing.",
                "type": "boolean"
              },
              "methods": {
                "$ref": "#/components/schemas/dataTypes_paymentMethods"
              }
            },
            "nullable": true
          }
        }
      },
      "PriceSummaryPreviewV32": {
        "title": "OrdersPreviewProductSumPriceOutput",
        "description": "The price components of all the products selected summed.",
        "type": "object",
        "properties": {
          "base": {
            "description": "The sum base price of all products selected. Does not include any extra charges.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          },
          "chargeable_online": {
            "description": "The price that is chargeable online. null for agency properties.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput",
            "nullable": true
          },
          "charges": {
            "description": "The sum of charges for all products selected, grouped by charge type.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/chargeSummaryV32"
            }
          },
          "display": {
            "description": "The display price that must be shown to the traveller. Equivalent to base + charges where included_in.display=true.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          },
          "total": {
            "description": "The total sum price. Includes all extra charges of all products.",
            "$ref": "#/components/schemas/priceMultiCurrencyOutput"
          }
        }
      },
      "productDetailedPoliciesMultiCurrency": {
        "title": "AccommodationsProductDetailedPoliciesMultiCurrency",
        "description": "The policies for this product.",
        "type": "object",
        "properties": {
          "cancellation": {
            "$ref": "#/components/schemas/productDetailedCancellationPolicyMultiCurrency"
          },
          "meal_plan": {
            "$ref": "#/components/schemas/productMealPlanPolicy"
          }
        }
      },
      "roomIdPreview": {
        "description": "A unique identifier for a specific room within an accommodation property. You can retrieve the full list of available room IDs by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).",
        "type": [
          "string",
          "null"
        ]
      },
      "occupancyOutput": {
        "title": "OccupancyOutput",
        "description": "Describes an occupancy in terms of number of adults and children's ages.",
        "type": "object",
        "properties": {
          "number_of_adults": {
            "description": "The number of adults.",
            "type": "integer",
            "minimum": 0
          },
          "children": {
            "description": "The ages of the children. Null or absent if no children fit.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 17
            }
          }
        },
        "required": [
          "number_of_adults",
          "children"
        ]
      },
      "occupancyMismatchOutput": {
        "title": "OccupancyMismatchOutput",
        "description": "Represents the distribution of requested guests relative to the product's capacity. Includes the guests that can be accommodated (allocated) and those that cannot (unallocated).",
        "type": "object",
        "properties": {
          "allocated": {
            "description": "The guests from the original request that the product can accommodate.",
            "$ref": "#/components/schemas/occupancyOutput"
          },
          "unallocated": {
            "description": "The guests from the original request that could not be accommodated by this product.",
            "$ref": "#/components/schemas/occupancyOutput"
          }
        },
        "required": [
          "allocated",
          "unallocated"
        ],
        "example": {
          "allocated": {
            "number_of_adults": 1,
            "children": null
          },
          "unallocated": {
            "number_of_adults": 1,
            "children": null
          }
        }
      },
      "previewProductOutput": {
        "title": "OrdersPreviewProductOutput",
        "description": "The returned information of the product selected",
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/productId"
          },
          "bundle": {
            "$ref": "#/components/schemas/bundleId"
          },
          "deal": {
            "$ref": "#/components/schemas/dealV32"
          },
          "inventory": {
            "$ref": "#/components/schemas/inventoryOutput"
          },
          "policies": {
            "$ref": "#/components/schemas/productDetailedPoliciesMultiCurrency"
          },
          "price": {
            "$ref": "#/components/schemas/priceV32"
          },
          "room": {
            "$ref": "#/components/schemas/roomIdPreview"
          },
          "occupancy_mismatch": {
            "description": "Details any mismatch between the requested occupancy and the product's capacity. \n-When one or more guests cannot be accommodated, the object contains those that can be accommodated (allocated) and those that cannot (unallocated). \n-If all requested guests fit, the object is null.",
            "type": [
              "object",
              "null"
            ],
            "$ref": "#/components/schemas/occupancyMismatchOutput"
          }
        }
      },
      "carMonetaryAmountOutput": {
        "description": "Monetary amount and currency details.",
        "type": "object",
        "properties": {
          "value": {
            "description": "Numeric amount for the charge.",
            "type": "number",
            "format": "double",
            "example": 129.99
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "timing": {
            "description": "When the payment is due (for example, 'pay_at_pickup' or 'pay_online_now').",
            "type": "string"
          }
        },
        "required": [
          "value",
          "currency"
        ]
      },
      "preview_carsPriceOutput": {
        "description": "Price amounts in both display and local currencies.",
        "type": "object",
        "properties": {
          "display": {
            "description": "Price amount shown to the traveller in the selected display currency.",
            "$ref": "#/components/schemas/carMonetaryAmountOutput"
          },
          "pay": {
            "description": "The amount to be paid in the specified currency. This may be collected online at the time of booking or at the pickup desk.",
            "$ref": "#/components/schemas/carMonetaryAmountOutput"
          }
        }
      },
      "preview_chargeTypeIdOutput": {
        "description": "Identifier for the charge type applied to the rental.",
        "type": "string"
      },
      "carExtraOutput": {
        "description": "Details of an individual extra charge, including type and amount.",
        "type": "object",
        "properties": {
          "charge_type": {
            "$ref": "#/components/schemas/preview_chargeTypeIdOutput"
          },
          "amount": {
            "description": "Amount for this specific charge.",
            "$ref": "#/components/schemas/preview_carsPriceOutput"
          }
        }
      },
      "carExtrasChargeOutput": {
        "description": "Breakdown of conditional and non-conditional extra charges.",
        "type": "object",
        "properties": {
          "conditional": {
            "description": "Charges that might apply under a specific condition.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/carExtraOutput"
            }
          },
          "non_conditional": {
            "description": "All non-conditional charges that will necessarily be paid",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/carExtraOutput"
            }
          }
        }
      },
      "carProductOutput": {
        "title": "CarProductOutput",
        "description": "Details of a selected extra for the vehicle, including pricing information.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The unique identifier of the extra.",
            "type": "string"
          },
          "type": {
            "description": "Specifies the type of extra, feature, or service associated with the vehicle. For example, gps for a navigation system, baby_seat for a child seat, or wifi_router for mobile internet.",
            "type": "string",
            "enum": [
              "additional_driver",
              "baby_seat",
              "bluetooth_handsfree_kit",
              "booster_seat",
              "child_booster_seat",
              "child_seat",
              "child_seat_isofix",
              "etc_card_electronic_toll_collection_card",
              "excess_protection",
              "fast_track",
              "gps",
              "infant_seat",
              "luggage_rack",
              "personal_travel_assistant",
              "queue_jump",
              "roof_rack",
              "ski_box",
              "ski_rack",
              "skierized_equipment",
              "snow_chains",
              "snow_tyres",
              "wifi_mobile",
              "wifi_router"
            ]
          },
          "selected_quantity": {
            "description": "The number of units selected for this product.",
            "type": "integer",
            "minimum": 1
          },
          "mode": {
            "type": "string",
            "description": "Defines how the product price is calculated. This determines whether pricing is applied per unit, per day, or for the full rental period.",
            "enum": [
              "each_per_day",
              "per_day",
              "each_per_rental",
              "per_rental"
            ],
            "x-enumDescriptions": {
              "each_per_day": "Price is charged per unit of the product, per day of the rental period. Total cost = unit price × quantity × number of rental days.",
              "per_day": "Price is charged once per day for the product, regardless of quantity. Total cost = daily price × number of rental days.",
              "each_per_rental": "Price is charged per unit for the full rental period. Total cost = unit price × quantity.",
              "per_rental": "Price is charged once for the full rental period, regardless of quantity or duration."
            }
          },
          "price": {
            "description": "Pricing details for this product.",
            "type": "object",
            "properties": {
              "unit_amount": {
                "$ref": "#/components/schemas/preview_carsPriceOutput"
              },
              "total_amount": {
                "$ref": "#/components/schemas/preview_carsPriceOutput"
              }
            }
          }
        }
      },
      "priceSummaryCar": {
        "title": "OrdersPreviewCarPriceOutput",
        "description": "Summary of all pricing components for the selected car products.",
        "type": "object",
        "properties": {
          "base": {
            "description": "Base price for all selected products. Excludes any extra charges.",
            "$ref": "#/components/schemas/preview_carsPriceOutput"
          },
          "extra_charges": {
            "description": "List of additional charges, such as taxes or fees, included in the total drive-away price.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/carExtrasChargeOutput"
            }
          },
          "products": {
            "description": "List of selected additional products with their pricing and details.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/carProductOutput"
            }
          },
          "total": {
            "description": "Total price for the car rental product in the selected display currency. Includes the base rental price and all mandatory vehicle-related charges. Optional extras and third-party products, such as additional insurance, may be priced separately.",
            "$ref": "#/components/schemas/carMonetaryAmountOutput"
          }
        }
      },
      "carCancellationOutput": {
        "description": "The cancellation policy that applies to this product.",
        "type": "object",
        "properties": {
          "details": {
            "description": "Conditions under which free cancellation applies. For example: \\n- duration='PT48H' and context='before_pickup' means 'Free cancellation up to 48 hours before pickup'. \\n- duration='P7D' and context='within_given_time_period_of_booking' means 'Free cancellation within 7 days of booking'.",
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "context": {
                "description": "The context in which the cancellation policy applies. For example 'before_pickup'",
                "type": "string",
                "enum": [
                  "before_pickup",
                  "within_given_time_period_of_booking"
                ]
              },
              "duration": {
                "description": "Duration during which free cancellation is available (ISO 8601 duration format, e.g. P2D = 2 days).",
                "type": "string",
                "pattern": "^P(?:\\dY)?(?:\\dM)?(?:\\dD)?(?:T(?:\\dH)?(?:\\dM)?(?:\\dS)?)?$"
              }
            }
          },
          "type": {
            "description": "Cancellation policy type (e.g. 'free_cancellation' or 'non-refundable').",
            "type": "string",
            "enum": [
              "free_cancellation",
              "non-refundable"
            ]
          }
        }
      },
      "carMileageOutput": {
        "description": "Mileage policy that applies to the selected product.",
        "type": "object",
        "properties": {
          "distance_limit": {
            "description": "Maximum distance allowed before additional fees apply.",
            "type": "number",
            "format": "double",
            "example": 300,
            "minimum": 0,
            "nullable": true
          },
          "distance_unit": {
            "description": "The unit of measurement for the distance limit. For example 'km' or 'miles'.",
            "type": "string",
            "enum": [
              "kilometers",
              "miles"
            ]
          },
          "amount": {
            "description": "The amount that must be paid if the distance limit is exceeded.",
            "$ref": "#/components/schemas/monetaryAmount",
            "nullable": true
          },
          "currency": {
            "description": "The currency of the amount that must be paid if the distance limit is exceeded.",
            "$ref": "#/components/schemas/currencyId",
            "nullable": true
          },
          "type": {
            "description": "The type of mileage policy applied.",
            "type": "string",
            "enum": [
              "limited",
              "unlimited"
            ]
          }
        }
      },
      "carPoliciesDatesOutput": {
        "description": "Payment schedule, showing when and how much is due.",
        "type": "object",
        "properties": {
          "at": {
            "description": "Date when the payment is due (ISO 8601 format).",
            "example": "2025-11-01",
            "format": "date",
            "type": "string"
          },
          "amount": {
            "description": "Amount payable on this date.",
            "type": "object",
            "$ref": "#/components/schemas/preview_carsPriceOutput"
          }
        }
      },
      "carPoliciesPaymentOutput": {
        "description": "Payment policy details for the car rental, including key dates and amounts.",
        "type": "object",
        "properties": {
          "dates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/carPoliciesDatesOutput"
            }
          }
        }
      },
      "carInsuranceOutput": {
        "title": "CarInsuranceOutput",
        "description": "Detailed third-party insurance quote for this car rental.\nReturned only when a valid quote_reference is provided in the request and the insurance quote is available.\nIf the quote is invalid, expired, or insurance is not selected, this field is null.\nThis object represents a bookable insurance product and includes pricing, coverage, and policy documentation.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "quote_reference": {
            "description": "Unique reference for this insurance quote. Expires after 90 minutes.",
            "type": "string",
            "examples": [
              "38df45ef-a6fb-4e24-a1d2-66fc3af23d76#1t0juiba8h6n2"
            ]
          },
          "name": {
            "description": "The display name of the insurance product.",
            "type": "string",
            "examples": [
              "Full Protection"
            ]
          },
          "id": {
            "description": "The identifier for the type of insurance product.",
            "type": "string",
            "examples": [
              "999"
            ]
          },
          "price": {
            "description": "The price of the insurance product for the full rental period.",
            "$ref": "#/components/schemas/preview_carsPriceOutput"
          },
          "coverage_amount": {
            "description": "The maximum coverage amount provided by the insurance product.",
            "type": "object",
            "properties": {
              "value": {
                "description": "The numeric value of the maximum coverage.",
                "$ref": "#/components/schemas/monetaryAmount"
              },
              "currency": {
                "description": "The currency of the coverage amount.",
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "policy_document_url": {
            "description": "URL to the full policy document (PDS). Contains the complete terms and conditions of the insurance policy. Always present when the insurance object is returned.",
            "type": "string",
            "format": "uri",
            "examples": [
              "https://staging.rentalcover.com/en/pds"
            ]
          },
          "ipid_document_url": {
            "description": "URL to the Insurance Product Information Document (IPID). Provides a standardised summary of the insurance coverage, exclusions, and obligations. Only available for EEA and UK countries. Null if not applicable.",
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "examples": [
              "https://files.rentalcover.com/ipids.pdf"
            ]
          }
        },
        "required": [
          "quote_reference",
          "name",
          "id",
          "price",
          "policy_document_url"
        ]
      },
      "preview": {
        "title": "OrdersPreviewDataOutput",
        "description": "Contains the calculated order details for accommodation or car products, including pricing, policies, etc.",
        "type": "object",
        "properties": {
          "accommodation": {
            "title": "OrdersPreviewAccommodationOutput",
            "description": "The products to order related to an accommodation",
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/accommodationId"
              },
              "currency": {
                "$ref": "#/components/schemas/currency"
              },
              "general_policies": {
                "properties": {
                  "payment": {
                    "$ref": "#/components/schemas/productPaymentTimingsDates"
                  }
                }
              },
              "price": {
                "$ref": "#/components/schemas/PriceSummaryPreviewV32"
              },
              "products": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/previewProductOutput"
                }
              }
            }
          },
          "car": {
            "type": "object",
            "properties": {
              "offer": {
                "$ref": "#/components/schemas/offerId"
              },
              "currency": {
                "description": "The currencies requested.",
                "type": "object",
                "properties": {
                  "booker": {
                    "$ref": "#/components/schemas/currencyId"
                  },
                  "payment": {
                    "$ref": "#/components/schemas/currencyId"
                  }
                }
              },
              "price": {
                "$ref": "#/components/schemas/priceSummaryCar"
              },
              "policies": {
                "description": "The policies that apply to this car.",
                "type": "object",
                "properties": {
                  "cancellation": {
                    "$ref": "#/components/schemas/carCancellationOutput"
                  },
                  "damage_excess": {
                    "description": "The maximum amount a traveller may be charged for damages to the car during the rental period, as specified by the rental agreement.",
                    "type": "object",
                    "properties": {
                      "amount": {
                        "description": "The amount of the damage excess.",
                        "$ref": "#/components/schemas/preview_carsPriceOutput"
                      }
                    }
                  },
                  "deposit": {
                    "description": "The amount of money that will be temporarily pre-authorised or blocked on the traveller’s credit card at the rental location as a security deposit, to cover potential damage or extra charges.",
                    "type": "object",
                    "properties": {
                      "amount": {
                        "description": "The amount of the deposit.",
                        "$ref": "#/components/schemas/preview_carsPriceOutput"
                      }
                    }
                  },
                  "fuel_policy": {
                    "description": "The fuel policy that applies to this car.",
                    "type": "string",
                    "enum": [
                      "return_same",
                      "return_same_or_prepay_no_refunds",
                      "return_same_preauth",
                      "free_tank",
                      "prepay_no_refunds",
                      "prepay_part_refunds",
                      "prepay_refunds",
                      "unknown"
                    ]
                  },
                  "mileage": {
                    "$ref": "#/components/schemas/carMileageOutput"
                  },
                  "payment": {
                    "$ref": "#/components/schemas/carPoliciesPaymentOutput"
                  },
                  "theft_excess": {
                    "description": "The maximum amount a traveller may be charged in the event of car theft during the rental period, as outlined in the rental agreement.",
                    "type": "object",
                    "properties": {
                      "amount": {
                        "description": "The amount of the theft excess.",
                        "$ref": "#/components/schemas/preview_carsPriceOutput"
                      }
                    }
                  }
                }
              },
              "insurance": {
                "$ref": "#/components/schemas/carInsuranceOutput"
              }
            }
          },
          "order_token": {
            "description": "A token containing the necessary data to be used on subsequent requests to [orders/create].",
            "type": "string"
          }
        }
      },
      "previewOutput": {
        "title": "OrdersPreviewOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "$ref": "#/components/schemas/preview"
          }
        }
      },
      "guest": {
        "title": "OrderCreateGuestInput",
        "type": "object",
        "properties": {
          "email": {
            "description": "The email address of the guest.",
            "type": "string"
          },
          "name": {
            "description": "The name of the guest.",
            "type": "string"
          }
        },
        "required": [
          "email",
          "name"
        ]
      },
      "create-beta_product": {
        "title": "OrderCreateProductInformationInput",
        "description": "Additional information related to each product related to the products in this order.",
        "type": "object",
        "properties": {
          "id": {
            "description": "ID for this product. `Please note that this MUST match the product IDs used for related /orders/preview request.`",
            "$ref": "#/components/schemas/productId"
          },
          "bed_configuration": {
            "description": "Bed configuration ID to select for this product. `Please note that it can not be guaranteed that the selected bed_configuration will be available.`",
            "type": "string"
          },
          "guests": {
            "description": "The guest details for this product.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/guest"
            }
          }
        },
        "required": [
          "id"
        ]
      },
      "estimatedArrivalTime": {
        "title": "EstimatedArrivalTimeInput",
        "description": "Estimated arrival time of the guests.",
        "type": "object",
        "properties": {
          "hour": {
            "description": "Approximate hour of arrival to the hotel. Allowed values are from 0 to 23. This time should be within the hotel reception hours, or will be ignored otherwise with a warning will be appended to special_requests.",
            "type": "integer",
            "minimum": 0,
            "maximum": 23
          },
          "next_day": {
            "description": "Set this to true, if the hour selected is for the day after checkin.",
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "hour"
        ]
      },
      "accommodation": {
        "title": "OrderCreateAccommodationInput",
        "description": "Additional information related to the accommodation order. This field is mutually exclusive with car; only one of them can be included in a request.",
        "type": "object",
        "properties": {
          "label": {
            "description": "A label for this order. This can be read back later while fetching this order details.",
            "type": "string"
          },
          "products": {
            "description": "",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/create-beta_product"
            }
          },
          "remarks": {
            "title": "OrderCreateRemarksInput",
            "description": "Optional remarks from the guest.",
            "type": "object",
            "properties": {
              "estimated_arrival_time": {
                "$ref": "#/components/schemas/estimatedArrivalTime"
              },
              "special_requests": {
                "description": "Optional comments or requests from the guest. Special requests cannot be guaranteed – but the property will do its best to meet your needs.",
                "type": "string"
              }
            }
          }
        }
      },
      "address": {
        "title": "OrderCreateAddressInput",
        "description": "The booker's address to be used for creating this order. All fields of this object are required if the /accommodations/details endpoint indicates that the booker's address is necessary by returning booker_address_required=true.",
        "type": "object",
        "properties": {
          "address_line": {
            "description": "The details of this address.",
            "type": "string"
          },
          "city": {
            "description": "The city for this address.",
            "type": "string"
          },
          "country": {
            "description": "The country for this address.",
            "$ref": "#/components/schemas/countryId"
          },
          "post_code": {
            "description": "Post code for this address.",
            "type": "string"
          }
        },
        "required": [
          "country"
        ]
      },
      "accommodation_booker": {
        "title": "AccommodationOrderCreateBookerInput",
        "description": "The booker's information for an accommodation order.",
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "company": {
            "description": "The booker's company name.",
            "type": "string"
          },
          "email": {
            "description": "The booker's email address.",
            "type": "string"
          },
          "language": {
            "$ref": "#/components/schemas/languageId"
          },
          "name": {
            "title": "OrderCreateBookerNameInput",
            "description": "The name of the booker.",
            "type": "object",
            "properties": {
              "first_name": {
                "type": "string"
              },
              "last_name": {
                "type": "string"
              }
            },
            "required": [
              "first_name",
              "last_name"
            ]
          },
          "telephone": {
            "description": "The booker's telephone number.",
            "type": "string"
          }
        },
        "required": [
          "address",
          "email",
          "name",
          "telephone"
        ]
      },
      "billing_address": {
        "title": "OrderCreateBusinessAddressInput",
        "description": "The address to bill this reservation",
        "type": "object",
        "properties": {
          "address_line": {
            "description": "The details of this address.",
            "type": "string"
          },
          "city": {
            "description": "The city for this address.",
            "type": "string"
          },
          "country": {
            "description": "The country for this address.",
            "$ref": "#/components/schemas/countryId"
          },
          "post_code": {
            "description": "Post code for this address.",
            "type": "string"
          }
        }
      },
      "create-beta_payment": {
        "title": "OrderCreatePaymentInput",
        "description": "Payment related information for the order.",
        "type": "object",
        "properties": {
          "airplus": {
            "description": "All information related to airplus payment. `This is required if airplus is selected as payment method.`",
            "type": "object",
            "properties": {
              "dbi": {
                "title": "OrderCreateDbiInput",
                "description": "Descriptive billing information(dbi) details to pass to AirPlus.",
                "type": "object",
                "properties": {
                  "accounting_code": {
                    "description": "Accounting code to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "accounting_unit": {
                    "description": "Accounting unit to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "cost_centre": {
                    "description": "Cost centre to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "department_code": {
                    "description": "Department code to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "employee_number": {
                    "description": "Employee number to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "internal_account": {
                    "description": "Internal account to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "order_number": {
                    "description": "Order number to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  },
                  "project_number": {
                    "description": "Project number to pass in descriptive billing information.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 17
                  }
                }
              },
              "number": {
                "description": "12 digit Airplus Number.",
                "type": "string"
              }
            },
            "required": [
              "number"
            ]
          },
          "business_information": {
            "title": "OrderCreateBusinessInformationInput",
            "description": "All business related information for billing and authorisation form. This must be included for the payments that require authorisation form.",
            "type": "object",
            "properties": {
              "authorisation_form": {
                "title": "OrderCreateAuthorisationFormInput",
                "description": "Information that is relevant for generating an authorisation form.",
                "type": "object",
                "properties": {
                  "chargeable_items": {
                    "description": "Items which can be charged using a provided virtual credit card.",
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "alcohol",
                        "breakfast",
                        "food_beverage",
                        "internet",
                        "parking",
                        "phone",
                        "taxes"
                      ]
                    }
                  }
                }
              },
              "billing": {
                "title": "OrderCreateBillingInput",
                "description": "All information to be used in the invoice.",
                "type": "object",
                "properties": {
                  "address": {
                    "$ref": "#/components/schemas/billing_address"
                  },
                  "email": {
                    "description": "Email to send the invoice to.",
                    "type": "string"
                  },
                  "vat": {
                    "description": "VAT number to be used in the invoice.",
                    "type": "string"
                  }
                },
                "required": [
                  "email",
                  "vat"
                ]
              },
              "company": {
                "description": "Company that will issue an authorisation form for the virtual credit card and used in the invoice.",
                "type": "string"
              }
            },
            "required": [
              "company"
            ]
          },
          "card": {
            "title": "OrderCreateCardInput",
            "description": "Card information for executing the payment.",
            "type": "object",
            "properties": {
              "authentication": {
                "title": "OrderCreateCardAuthenticationInput",
                "description": "Card authentication information for executing the payment.",
                "type": "object",
                "properties": {
                  "riskified": {
                    "title": "OrderCreateRiskifiedInput",
                    "description": "Riskified information for external fraud verification.",
                    "type": "object",
                    "properties": {
                      "ip_address": {
                        "description": "The booker's IP address.",
                        "type": "string",
                        "format": "ipv4"
                      },
                      "session_id": {
                        "description": "Riskified provided session_id for external fraud verification.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "ip_address",
                      "session_id"
                    ]
                  },
                  "sca_exemption": {
                    "description": "The type of SCA exemption to be applied to the payment.",
                    "type": "string",
                    "enum": [
                      "moto",
                      "virtual"
                    ]
                  },
                  "3d_secure": {
                    "title": "OrderCreate3dSecureInput",
                    "description": "3-factor authentication information for the card.",
                    "type": "object",
                    "properties": {
                      "authentication_value": {
                        "description": "Cardholder Authentication Verification Value.",
                        "type": "string"
                      },
                      "eci": {
                        "description": "The electronic commerce indicator.",
                        "type": "string"
                      },
                      "transaction": {
                        "description": "The unique ID assigned by the DS to identify a single transaction.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "authentication_value",
                      "eci"
                    ]
                  }
                }
              },
              "cardholder": {
                "description": "Name of the cardholder.",
                "type": "string"
              },
              "cvc": {
                "description": "3 or 4 digits card validation code (CVC) of this card.",
                "type": "string"
              },
              "expiry_date": {
                "description": "Card expiry date in YYYY-MM format.",
                "type": "string"
              },
              "number": {
                "description": "Payment card number.",
                "type": "string"
              }
            },
            "required": [
              "cardholder",
              "cvc",
              "expiry_date",
              "number"
            ]
          },
          "include_receipt": {
            "description": "Set to true to include a payment receipt URL in the response when available.",
            "type": "boolean"
          },
          "method": {
            "description": "The payment method to be used for this order.",
            "type": "string",
            "enum": [
              "airplus",
              "card",
              "wallet"
            ]
          },
          "timing": {
            "type": "string",
            "description": "Payment timing for the order. Use one of the values returned in the corresponding /orders/preview response. Supported values depend on the travel service and payment configuration.",
            "enum": [
              "pay_at_pickup",
              "pay_at_the_property",
              "pay_online_later",
              "pay_online_now",
              "pay_partial_online_now"
            ],
            "x-enumDescriptions": {
              "pay_at_pickup": "Only for car rental orders. Traveller pays at the car rental pick-up location.",
              "pay_at_the_property": "Only for accommodation orders. Traveller pays at the accommodation property.",
              "pay_online_later": "Only for accommodation orders. Traveller pays online at a later time before check-in.",
              "pay_online_now": "Traveller pays online immediately at the time of booking.",
              "pay_partial_online_now": "Only for car rental orders. Traveller pays part online at booking and the remainder at the car rental pick-up location."
            }
          }
        }
      },
      "car": {
        "title": "OrderCreateCarInput",
        "description": "Additional information related to the car order. This field is mutually exclusive with accommodation; only one of them can be included in a request.",
        "type": "object",
        "properties": {
          "driver": {
            "title": "OrderCreateDriverInput",
            "description": "Driver related information for the order.",
            "type": "object",
            "properties": {
              "address": {
                "type": "object",
                "description": "Driver’s address.",
                "properties": {
                  "address_line1": {
                    "type": "string",
                    "description": "Driver’s address line 1."
                  },
                  "address_line2": {
                    "type": "string",
                    "description": "Driver’s address line 2."
                  },
                  "city": {
                    "type": "string",
                    "description": "Driver’s city."
                  },
                  "country": {
                    "type": "string",
                    "description": "Driver’s country."
                  },
                  "postcode": {
                    "type": "string",
                    "description": "Driver’s postcode."
                  }
                },
                "required": [
                  "address_line1",
                  "city",
                  "country",
                  "postcode"
                ]
              },
              "first_name": {
                "type": "string",
                "description": "Driver’s first name."
              },
              "last_name": {
                "type": "string",
                "description": "Driver’s last name."
              },
              "telephone": {
                "type": "string",
                "description": "Driver’s telephone number."
              },
              "title": {
                "type": "string",
                "description": "Driver’s honorific or title, such as “Mr”, “Ms”, “Mrs”, or “Dr”."
              }
            },
            "required": [
              "address",
              "first_name",
              "last_name",
              "title"
            ]
          },
          "label": {
            "description": "Custom string defined by the partner to track attribution throughout the booking journey. Use a consistent, parseable format (e.g. brand-market_platform-channel_campaign) to encode campaign, traffic source, platform, language, or other identifiers. Recommended for accurate reporting and analytics. See the Labels and attributions guide for more details.",
            "type": "string"
          }
        },
        "required": [
          "driver"
        ]
      },
      "name": {
        "title": "OrderCreateBookerNameInput",
        "description": "The name of the booker.",
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          }
        },
        "required": [
          "first_name",
          "last_name"
        ]
      },
      "car_booker": {
        "title": "CarOrderCreateBookerInput",
        "description": "The booker's information for a car order.",
        "type": "object",
        "properties": {
          "address": {
            "$ref": "#/components/schemas/address"
          },
          "company": {
            "description": "The booker's company name.",
            "type": "string"
          },
          "email": {
            "description": "The booker's email address.",
            "type": "string"
          },
          "language": {
            "$ref": "#/components/schemas/languageId"
          },
          "name": {
            "$ref": "#/components/schemas/name"
          },
          "telephone": {
            "description": "The booker's telephone number.",
            "type": "string"
          }
        },
        "required": [
          "address",
          "email",
          "language",
          "name",
          "telephone"
        ]
      },
      "car_payment": {
        "title": "CarOrderCreatePaymentInput",
        "description": "Payment information for a car rental order. Card details are required to complete the booking.",
        "allOf": [
          {
            "$ref": "#/components/schemas/create-beta_payment"
          },
          {
            "required": [
              "card",
              "method"
            ],
            "properties": {
              "method": {
                "enum": [
                  "card"
                ],
                "type": "string",
                "description": "Payment method for the car rental order."
              }
            }
          }
        ]
      },
      "create_beta_input": {
        "title": "Order creation request",
        "description": "Request payload for creating an order. The required structure depends on the travel service being booked.",
        "oneOf": [
          {
            "title": "Accommodation order creation request",
            "description": "Use this object to create an accommodation order. Include accommodation-specific data and payment details.",
            "type": "object",
            "properties": {
              "accommodation": {
                "$ref": "#/components/schemas/accommodation"
              },
              "booker": {
                "$ref": "#/components/schemas/accommodation_booker"
              },
              "order_token": {
                "description": "Token returned by /orders/preview containing the data required to create the order.",
                "type": "string"
              },
              "payment": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/create-beta_payment"
                  },
                  {
                    "required": [
                      "timing"
                    ]
                  }
                ]
              }
            },
            "required": [
              "accommodation",
              "booker",
              "order_token",
              "payment"
            ]
          },
          {
            "title": "Car rental order creation request",
            "description": "Use this object to create a car rental order. Include car rental booker information and payment details.",
            "type": "object",
            "properties": {
              "car": {
                "$ref": "#/components/schemas/car"
              },
              "booker": {
                "$ref": "#/components/schemas/car_booker"
              },
              "order_token": {
                "description": "Token returned by /orders/preview containing the data required to create the order.",
                "type": "string"
              },
              "payment": {
                "$ref": "#/components/schemas/car_payment"
              }
            },
            "required": [
              "car",
              "booker",
              "order_token",
              "payment"
            ]
          }
        ]
      },
      "thirdPartyInventoryOutput": {
        "title": "Third party inventory related information for the created order. This field is only available for third party inventory orders.",
        "type": "object",
        "properties": {
          "checkin_number": {
            "description": "The number required at the time of check-in. It allows guests to confirm their order at the accommodation.",
            "type": "string",
            "example": "473026811"
          },
          "confirmation_number": {
            "description": "The confirmation number, when used in conjunction with the pincode, helps verify the customer's order and facilitates efficient support during inquiries or troubleshooting.",
            "type": "string",
            "example": "12365478936925814787"
          }
        }
      },
      "accommodationOutput": {
        "title": "OrderCreateAccommodationOutput",
        "description": "All accommodation related information for this order.",
        "type": "object",
        "properties": {
          "pincode": {
            "description": "Pincode for this accommodation order.",
            "type": "string"
          },
          "reservation": {
            "description": "Reservation ID for this accommodation order.",
            "type": "string"
          },
          "third_party_inventory": {
            "$ref": "#/components/schemas/thirdPartyInventoryOutput"
          }
        }
      },
      "carOutput": {
        "title": "OrderCreateCarOutput",
        "description": "All car related information for this order.",
        "type": "object",
        "properties": {
          "reservation_id": {
            "description": "ID for this car order.",
            "type": "string"
          },
          "status": {
            "description": "Status of this car order.",
            "type": "string"
          }
        }
      },
      "create-beta_paymentOutput": {
        "title": "OrderCreatePaymentOutput",
        "description": "All payment related information for this order.",
        "type": "object",
        "properties": {
          "authorisation_form_url": {
            "description": "Link to a virtual credit card''s authorisation form, valid for 7 minutes from issue. `This will only the added if the request has authorisation_form.`",
            "type": "string",
            "format": "uri",
            "example": "https://secure-admin.booking.com/airplus_auth_form_pdf.html?token=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA&lang=en"
          },
          "receipt_url": {
            "description": "Link to the payment receipt of the order. `This will only be added if include_receipt is true.`",
            "type": "string",
            "format": "uri",
            "example": "https://secure.booking.com/payment_receipt.html?bn=0000000000&pincode=0000&lang=en"
          }
        }
      },
      "create_beta_output": {
        "title": "OrderCreateOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "title": "OrderCreateDataOutput",
            "type": "object",
            "properties": {
              "order": {
                "description": "ID for this order.",
                "type": "string"
              },
              "accommodation": {
                "$ref": "#/components/schemas/accommodationOutput"
              },
              "car": {
                "$ref": "#/components/schemas/carOutput"
              },
              "payment": {
                "$ref": "#/components/schemas/create-beta_paymentOutput"
              }
            }
          }
        }
      },
      "error_duplicate_response": {
        "title": "ErrorDuplicateResponse",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "reservation": {
                  "type": "string",
                  "description": "The reservation ID associated with the duplicated request. Only returned when a reservation already exists."
                }
              },
              "required": [
                "id",
                "message"
              ]
            }
          }
        },
        "required": [
          "request_id",
          "errors"
        ]
      },
      "orderDatetimeFilter": {
        "title": "OrderDetailsDatetimeFilterInput",
        "description": "Filtering orders by time range on basis of order \"created\" or \"updated\" time. Maximum time range is 7 days (1 week).",
        "type": "object",
        "properties": {
          "from": {
            "description": "ISO 8601 timestamp in UTC, which indicates the timestamp from which you want to filter orders from (inclusive). The value should be within last 1 year.",
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "description": "ISO 8601 timestamp in UTC, which indicates the timestamp till which you want to filter orders to (inclusive). It has to be greater than or equal to \"from\".",
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "from"
        ]
      },
      "orderSort": {
        "title": "OrderDetailsSortInput",
        "description": "The sorting parameters for the response.",
        "type": "object",
        "properties": {
          "by": {
            "description": "The way to sort your results.",
            "type": "string",
            "enum": [
              "created",
              "updated"
            ],
            "default": "created"
          },
          "direction": {
            "description": "The direction you wish for your sort.by parameter to be sorted in.",
            "type": "string",
            "enum": [
              "ascending",
              "descending"
            ],
            "default": "descending"
          }
        },
        "required": [
          "by",
          "direction"
        ]
      },
      "schemas-extras": {
        "description": "Input parameter to request for additional information about this order.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "payment"
          ]
        }
      },
      "services": {
        "description": "Filter orders by included travel services.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "accommodations",
            "cars",
            "flights",
            "attractions",
            "taxis"
          ]
        }
      },
      "inputUpdated": {
        "title": "Order details by last update input",
        "description": "Request parameters to retrieve orders based on their last updated timestamp. Supports sorting, pagination, and optional data enrichment.",
        "type": "object",
        "properties": {
          "updated": {
            "$ref": "#/components/schemas/orderDatetimeFilter"
          },
          "currency": {
            "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
            "$ref": "#/components/schemas/currencyId"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "sort": {
            "$ref": "#/components/schemas/orderSort"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          }
        },
        "required": [
          "updated",
          "currency"
        ]
      },
      "inputCreated": {
        "title": "Order details by creation date input",
        "description": "Request parameters to retrieve orders based on their creation timestamp. Commonly used for reporting and initial data ingestion.",
        "type": "object",
        "properties": {
          "created": {
            "$ref": "#/components/schemas/orderDatetimeFilter"
          },
          "currency": {
            "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
            "$ref": "#/components/schemas/currencyId"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "sort": {
            "$ref": "#/components/schemas/orderSort"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          }
        },
        "required": [
          "created",
          "currency"
        ]
      },
      "orderDateFilter": {
        "title": "OrderDetailsDateFilterInput",
        "description": "Filter orders by date range, covering the \"start\" and \"end\" date. The maximum date range is up to 7 days (1 week).",
        "type": "object",
        "properties": {
          "from": {
            "description": "ISO 8601 date in \"YYYY-MM-DD\" format. It indicates from which date you want to filter the orders. You can filter orders up to 1 year in the past and 500 days in the future.",
            "type": "string",
            "format": "date",
            "example": "2024-06-01"
          },
          "to": {
            "description": "ISO 8601 date in \"YYYY-MM-DD\" format. It indicates until which date you want to filter the orders to (inclusive). It has to be greater than or equal to \"from\". It uses \"from\" value as default.",
            "type": "string",
            "format": "date",
            "example": "2024-06-03"
          }
        },
        "required": [
          "from"
        ]
      },
      "inputStart": {
        "title": "Order details by start date input",
        "description": "Request parameters to retrieve orders based on the start date of the travel service (for example, check-in or pickup date).",
        "type": "object",
        "properties": {
          "start": {
            "$ref": "#/components/schemas/orderDateFilter"
          },
          "currency": {
            "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
            "$ref": "#/components/schemas/currencyId"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "sort": {
            "$ref": "#/components/schemas/orderSort"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          }
        },
        "required": [
          "start",
          "currency"
        ]
      },
      "inputEnd": {
        "title": "Order details by end date input",
        "description": "Request parameters to retrieve orders based on the end date of the travel service (for example, check-out or drop-off date).",
        "type": "object",
        "properties": {
          "end": {
            "$ref": "#/components/schemas/orderDateFilter"
          },
          "currency": {
            "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
            "$ref": "#/components/schemas/currencyId"
          },
          "maximum_results": {
            "$ref": "#/components/schemas/maximumResults"
          },
          "sort": {
            "$ref": "#/components/schemas/orderSort"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          }
        },
        "required": [
          "end",
          "currency"
        ]
      },
      "order": {
        "description": "Order ID for which details should be returned.",
        "type": "string"
      },
      "inputOrder": {
        "title": "Order details by order IDs input",
        "description": "Request parameters to retrieve order details using a list of known order IDs. Use this when you already know the order identifiers and need to fetch precise records.",
        "type": "object",
        "properties": {
          "currency": {
            "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
            "$ref": "#/components/schemas/currencyId"
          },
          "orders": {
            "description": "List of order IDs for which details should be returned.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/order"
            },
            "maxItems": 100
          },
          "sort": {
            "$ref": "#/components/schemas/orderSort"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          }
        },
        "required": [
          "orders",
          "currency"
        ]
      },
      "inputReservations": {
        "title": "Order details by reservation IDs input",
        "type": "object",
        "description": "Request parameters to retrieve order details using a list of reservation IDs across supported travel services.",
        "properties": {
          "currency": {
            "description": "A three-letter code that uniquely identifies a monetary currency as defined by the ISO 4217 standard. The full list can be obtained by calling <a href=\"/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies\" target=\"_blank\">common/payments/currencies</a>.",
            "$ref": "#/components/schemas/currencyId"
          },
          "reservations": {
            "description": "List of reservation IDs for which details should be returned.",
            "type": "array",
            "items": {
              "type": "string"
            },
            "maxItems": 100
          },
          "sort": {
            "$ref": "#/components/schemas/orderSort"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          },
          "services": {
            "$ref": "#/components/schemas/services"
          }
        },
        "required": [
          "reservations",
          "currency"
        ]
      },
      "inputPage": {
        "title": "Order details by pagination input",
        "description": "Request parameters to retrieve orders using the pagination token, allowing sequential access to large result sets.",
        "type": "object",
        "properties": {
          "page": {
            "$ref": "#/components/schemas/page"
          },
          "extras": {
            "$ref": "#/components/schemas/schemas-extras"
          }
        },
        "required": [
          "page"
        ]
      },
      "accommodation_reservation": {
        "description": "This is the reservation id for the accommodation in this order.",
        "type": "string"
      },
      "attractionOutput": {
        "description": "Details of an attraction included in this order.",
        "title": "OrderDetailsAttractionsOutput",
        "type": "object",
        "properties": {
          "name": {
            "description": "The name of the attraction.",
            "type": "string",
            "example": "Eiffel Tower Guided Tour"
          },
          "location": {
            "title": "OrderDetailsAttractionLocationOutput",
            "type": "object",
            "description": "Location details of the attraction.",
            "properties": {
              "city": {
                "description": "The city where the attraction is located.",
                "type": "string"
              },
              "country": {
                "$ref": "#/components/schemas/countryId"
              }
            }
          },
          "reservation": {
            "description": "This is the reservation id for the attraction in this order.",
            "type": "string"
          }
        }
      },
      "platform": {
        "description": "The booker platform for showing the platform based deals and prices.",
        "type": "string",
        "enum": [
          "app",
          "desktop",
          "mobile_browser",
          "tablet",
          "unknown"
        ]
      },
      "bookerOutput": {
        "title": "OrderDetailsBookerOutput",
        "description": "The booker's information.",
        "type": "object",
        "properties": {
          "address": {
            "title": "OrderDetailsAddressOutput",
            "description": "The booker's address for showing the best price for that user and obeying laws regarding the display of taxes and fees.",
            "type": "object",
            "properties": {
              "city": {
                "description": "The city for this address.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "country": {
                "description": "The country for this address.",
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "email": {
            "description": "The booker's email address.",
            "type": [
              "string",
              "null"
            ]
          },
          "language": {
            "$ref": "#/components/schemas/languageId"
          },
          "name": {
            "title": "OrderDetailsBookerNameOutput",
            "description": "The name of the booker.",
            "type": "object",
            "properties": {
              "first_name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_name": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "platform": {
            "description": "The booker platform for showing the platform based deals and prices.",
            "type": "string",
            "$ref": "#/components/schemas/platform"
          },
          "telephone": {
            "description": "The booker's telephone number.",
            "type": [
              "string",
              "null"
            ]
          },
          "travel_purpose": {
            "description": "The travel purpose of the booker.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "business",
              "leisure",
              "unknown"
            ]
          }
        }
      },
      "car_reservation": {
        "description": "This is the reservation id for the car in this order.",
        "type": "string"
      },
      "createdOutput": {
        "description": "Order creation time. For taxi orders with multiple legs, this is the earliest booking date among all legs.",
        "type": "string",
        "format": "date-time"
      },
      "schemas-priceCurrencyOutput": {
        "title": "PriceCurrencyOutput",
        "description": "The amount in both product and booker currencies (booker might be null, if not requested)",
        "type": "object",
        "properties": {
          "booker_currency": {
            "description": "Amount in the booker's selected currency",
            "$ref": "#/components/schemas/monetaryAmount"
          },
          "product_currency": {
            "description": "Amount in the product's base currency",
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "itinerary": {
        "title": "ItineraryPoint",
        "type": "object",
        "properties": {
          "airport": {
            "description": "A three-letter code that uniquely identifies an airport as defined by the International Air Transport Association (IATA). The full list can be obtained by calling  [common/locations/airports](#/common/locations/airports).",
            "pattern": "^[A-Z]{3}$",
            "type": "string",
            "example": "AMS"
          },
          "date_time": {
            "description": "Date time of the itinerary.",
            "type": "string",
            "format": "date-time",
            "example": "2025-09-17T18:45:00Z"
          }
        }
      },
      "itineraryOutput": {
        "title": "ItineraryOutput",
        "type": "object",
        "properties": {
          "arrival": {
            "description": "Arrival details.",
            "$ref": "#/components/schemas/itinerary"
          },
          "departure": {
            "description": "Departure details.",
            "$ref": "#/components/schemas/itinerary"
          }
        }
      },
      "loyaltyRewardOutput": {
        "description": "Details of the loyalty rewards associated with this order.",
        "type": [
          "array",
          "null"
        ],
        "items": {
          "title": "OrderDetailsLoyaltyRewardOutput",
          "type": "object",
          "properties": {
            "amount": {
              "description": "Reward amount, in the units of the specified reward type (such as cash, mile, point, etc.).",
              "type": "number",
              "format": "double"
            },
            "currency": {
              "description": "Currency used for reward calculation.",
              "$ref": "#/components/schemas/currencyId",
              "nullable": true
            },
            "eligible": {
              "description": "Whether the order is eligible for the reward.",
              "type": "boolean"
            },
            "fulfillment_at": {
              "description": "Date and time at which the reward should be fulfilled.",
              "type": "string",
              "format": "date"
            },
            "fulfillment_by": {
              "description": "Mode of fulfillment of the reward.",
              "type": "string",
              "enum": [
                "partner",
                "booking.com"
              ]
            },
            "loyalty_data": {
              "description": "Loyalty data associated with this loyalty reward used to fulfill reward.",
              "type": [
                "array",
                "null"
              ],
              "items": {
                "title": "OrderDetailsLoyaltyDataOutput",
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Name of the loyalty data.",
                    "type": "string"
                  },
                  "value": {
                    "description": "Value of the loyalty data.",
                    "type": "string"
                  }
                }
              }
            },
            "type": {
              "description": "Type of reward.",
              "type": "string",
              "enum": [
                "cash",
                "mile",
                "point",
                "voucher",
                "voucher_money",
                "voucher_subscription",
                "voucher_percentage"
              ]
            }
          }
        }
      },
      "paymentTransactions": {
        "type": "array",
        "items": {
          "title": "OrderDetailsPaymentTransactionOutput",
          "type": "object",
          "properties": {
            "amount": {
              "description": "Amount of the transaction.",
              "type": "number"
            },
            "at": {
              "description": "Time of the transaction.",
              "type": "string",
              "format": "date-time"
            },
            "transaction_currency": {
              "description": "Currency in which the transaction took place.",
              "type": "string"
            }
          }
        }
      },
      "status": {
        "type": "string",
        "enum": [
          "booked",
          "cancelled",
          "cancelled_by_accommodation",
          "cancelled_by_guest",
          "no_show",
          "stayed"
        ]
      },
      "taxiOutput": {
        "description": "Details of a single taxi leg in this order.",
        "title": "OrderDetailsTaxiOutput",
        "type": "object",
        "properties": {
          "commission": {
            "title": "TaxiCommissionOutput",
            "description": "Commission details for this taxi leg.",
            "type": "object",
            "properties": {
              "actual_amount": {
                "description": "The actual commission amount for this taxi leg.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput",
                "nullable": true
              },
              "estimated_amount": {
                "description": "The estimated commission amount for this taxi leg.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput",
                "nullable": true
              }
            }
          },
          "created": {
            "description": "The creation time of this taxi leg.",
            "type": "string",
            "format": "date-time"
          },
          "currencies": {
            "title": "TaxiCurrencyOutput",
            "description": "Product and booker currencies for this taxi leg.",
            "type": "object",
            "properties": {
              "booker": {
                "description": "Booker's currency (ISO 4217).",
                "$ref": "#/components/schemas/currencyId"
              },
              "product": {
                "description": "Product's base currency (ISO 4217).",
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "dropoff_location": {
            "description": "Details of the dropoff location for this taxi leg.",
            "title": "OrderDetailsTaxiDropoffLocationOutput",
            "type": "object",
            "properties": {
              "address": {
                "description": "The full address of the dropoff location.",
                "type": "string",
                "example": "Stationsplein 9, 3511 CE Utrecht"
              },
              "city": {
                "description": "The city of the dropoff location.",
                "type": "string",
                "example": "Utrecht"
              },
              "country": {
                "$ref": "#/components/schemas/countryId"
              }
            }
          },
          "end": {
            "description": "The end date and time of this taxi leg.",
            "type": "string",
            "format": "date-time"
          },
          "leg": {
            "description": "Unique identifier for this taxi leg within the order.",
            "type": "string",
            "example": "607244787653565"
          },
          "pickup_location": {
            "description": "Details of the pickup location for this taxi leg.",
            "title": "OrderDetailsTaxiPickupLocationOutput",
            "type": "object",
            "properties": {
              "address": {
                "description": "The full address of the pickup location.",
                "type": "string",
                "example": "Amstel 51, 1018 EH Amsterdam, Netherlands"
              },
              "city": {
                "description": "The city of the pickup location.",
                "type": "string",
                "example": "Amsterdam"
              },
              "country": {
                "$ref": "#/components/schemas/countryId"
              }
            }
          },
          "price": {
            "title": "TaxiPriceOutput",
            "description": "The price components for this taxi leg.",
            "type": "object",
            "properties": {
              "commissionable": {
                "description": "Price on which the commission is calculated for this taxi leg.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput",
                "nullable": true
              },
              "total": {
                "description": "Total price for this taxi leg.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput"
              }
            }
          },
          "reservation": {
            "description": "The reservation identifier shared by all taxi legs belonging to the same taxi order.",
            "type": "string",
            "example": "916957580"
          },
          "start": {
            "description": "The start date and time of this taxi leg.",
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "Current status of this taxi leg.\n\nImportant for taxi legs:\n- A status of booked indicates that the ride has been successfully reserved, and is to be fulfilled.\n- Taxi legs may still transition to cancelled or cancelled_by_guest after being booked.\n\nPartners should use this field to track the real-time lifecycle of each leg, especially for multi-leg taxi orders where different legs may have different statuses.",
            "$ref": "#/components/schemas/status"
          },
          "updated": {
            "description": "The last update time of this taxi leg.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "updatedOutput": {
        "description": "Time the order was last updated. For taxi orders with multiple legs, this is the latest last modified time among all legs.",
        "type": "string",
        "format": "date-time"
      },
      "orderDetailsData": {
        "title": "OrderDetailsDataOutput",
        "description": "All details for this order.",
        "type": "object",
        "properties": {
          "id": {
            "description": "The id for this order.",
            "type": "string"
          },
          "accommodations": {
            "title": "OrderDetailsAccommodationsOutput",
            "type": "object",
            "properties": {
              "inventory": {
                "$ref": "#/components/schemas/inventoryOutput"
              },
              "location": {
                "title": "AccommodationLocationOutput",
                "description": "Accommodation location.",
                "type": "object",
                "properties": {
                  "address": {
                    "description": "Accommodation address.",
                    "type": "string"
                  },
                  "city": {
                    "$ref": "#/components/schemas/cityId"
                  },
                  "country": {
                    "$ref": "#/components/schemas/countryId"
                  }
                }
              },
              "name": {
                "description": "Accommodation name.",
                "type": "string"
              },
              "number_of_guests": {
                "description": "The number of guests reserved for this product.",
                "type": "number",
                "minimum": 1
              },
              "reservation": {
                "$ref": "#/components/schemas/accommodation_reservation"
              },
              "stay_probability": {
                "description": "Score that predicts the likelihood of a traveller's intent to stay, based on internal calculations. A score of 0 indicates the highest likelihood of cancellation, while a score of 1 represents the highest likelihood of the traveller staying. Note: This score may not always be available.",
                "type": "number",
                "format": "double",
                "multipleOf": 0.01,
                "minimum": 0,
                "maximum": 1,
                "nullable": true
              }
            }
          },
          "affiliate": {
            "description": "The affiliate id used for this order.",
            "type": "integer"
          },
          "attractions": {
            "$ref": "#/components/schemas/attractionOutput"
          },
          "booker": {
            "$ref": "#/components/schemas/bookerOutput"
          },
          "cars": {
            "title": "OrderDetailsCarsOutput",
            "type": "object",
            "properties": {
              "dropoff_location": {
                "title": "OrderDetailsCarsDropoffLocationOutput",
                "type": "object",
                "properties": {
                  "city": {
                    "description": "The city where the dropoff location is.",
                    "type": "string"
                  },
                  "country": {
                    "$ref": "#/components/schemas/countryId"
                  }
                }
              },
              "payment": {
                "title": "OrderDetailsCarsPaymentOutput",
                "description": "The payment policy that applies to this car rental.",
                "type": "object",
                "properties": {
                  "timing": {
                    "description": "Indicates when payment for this car rental is expected.\n\nUse this field to determine whether prepayment is required or if payment will occur at pickup.",
                    "type": "string",
                    "enum": [
                      "pay_online_now",
                      "pay_at_pickup",
                      "pay_partial_online_now",
                      "unknown"
                    ],
                    "x-enumDescriptions": {
                      "pay_online_now": "Payment is collected online at the time of booking.",
                      "pay_at_pickup": "Payment is collected locally at the pickup location.",
                      "pay_partial_online_now": "Part of the payment is made online at the moment of booking and the remaining at the pickup location.",
                      "unknown": "Payment timing is not available or could not be determined."
                    }
                  }
                },
                "required": [
                  "timing"
                ]
              },
              "pickup_location": {
                "title": "OrderDetailsCarsPickupLocationOutput",
                "type": "object",
                "properties": {
                  "city": {
                    "description": "The city where the pickup location is.",
                    "type": "string"
                  },
                  "country": {
                    "$ref": "#/components/schemas/countryId"
                  }
                }
              },
              "reservation": {
                "$ref": "#/components/schemas/car_reservation"
              }
            }
          },
          "created": {
            "$ref": "#/components/schemas/createdOutput"
          },
          "commission": {
            "title": "OrderDetailsCommissionOutput",
            "description": "Commission details for the partner for a given order. For taxi orders with multiple legs, amounts are the sum across all legs.",
            "type": "object",
            "properties": {
              "actual_commission_amount": {
                "description": "For accommodation: This is the final commission for this order (`null` if value is not yet available). For other travel services: It represents the estimated commission before billing and the final commission after billing.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput",
                "nullable": true
              },
              "actual_percentage": {
                "description": "Actual commission percentage for this order (`null` if not yet available). For taxi orders with multiple legs, this is the percentage of legs.",
                "type": "number",
                "format": "double",
                "nullable": true
              },
              "estimated_commission_amount": {
                "description": "This is an estimation displayed until the actual commission amount becomes available. For accommodations, may be null once the final commission value is set.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput",
                "nullable": true
              }
            }
          },
          "currencies": {
            "title": "OrderCurrencyOutput",
            "description": "Product and booker currencies. `booker` is `null` if it was not specified in the request.",
            "type": "object",
            "properties": {
              "booker": {
                "description": "Booker’s currency (ISO 4217). See the full list of currencies calling the [common/payments/currencies](/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies).",
                "nullable": true,
                "$ref": "#/components/schemas/currencyId"
              },
              "product": {
                "description": "Product’s base currency (ISO 4217). See the full list of currencies calling the [common/payments/currencies](/demand/docs/open-api/demand-api/commonpayments/common/payments/currencies). For taxi orders with multiple legs, this is the currency of the first leg.",
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "end": {
            "description": "The date when this order ends. Must be later than `start`. For taxi orders with multiple legs, this is the latest pickup time among all legs.",
            "type": "string",
            "format": "date-time"
          },
          "flights": {
            "title": "OrderDetailsFlightsOutput",
            "type": "object",
            "description": "Flight details for this order.",
            "properties": {
              "itineraries": {
                "type": "array",
                "description": "List of flight itineraries included in the order.",
                "items": {
                  "$ref": "#/components/schemas/itineraryOutput"
                }
              },
              "reservation": {
                "description": "This is the reservation id for flight in this order.",
                "type": "string"
              }
            }
          },
          "label": {
            "description": "Custom string defined by the partner to track attribution throughout the booking journey. Use a consistent, machine-parseable format (for example, `brand-market_platform-channel_campaign`) to encode campaign, traffic source, platform, language, or other identifiers. Recommended for reliable reporting and analytics. See the [Labels and attributions guide](/demand/docs/orders-api/labels-attributions) for more details.",
            "type": [
              "string",
              "null"
            ]
          },
          "loyalty_reward": {
            "$ref": "#/components/schemas/loyaltyRewardOutput",
            "nullable": true
          },
          "payment": {
            "title": "OrderDetailsPaymentOutput",
            "description": "The payment details of this order.",
            "type": "object",
            "properties": {
              "accommodations": {
                "title": "OrderDetailsAccommodationPaymentOutput",
                "description": "The accommodation specific payment details of this order.",
                "type": [
                  "object",
                  "null"
                ],
                "properties": {
                  "authorisation_form": {
                    "description": "Link to the authorisation form of the order.",
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "uri",
                    "example": "https://secure-admin.booking.com/airplus_auth_form_pdf.html?token=AAAA&lang=en-us"
                  },
                  "receipt_url": {
                    "description": "Link to the payment receipt of the order. `This will only be added if the payment is already charged.`",
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "uri",
                    "example": "https://secure.booking.com/payment_receipt.html?bn=0000000000&pincode=0000&lang=en"
                  },
                  "reservation": {
                    "description": "Reservation ID for this accommodation order.",
                    "type": "string"
                  }
                }
              },
              "method": {
                "description": "The payment method of this order.",
                "type": "string",
                "enum": [
                  "airplus",
                  "card",
                  "wallet"
                ]
              },
              "paid": {
                "description": "The paid transactions for this order.",
                "nullable": true,
                "$ref": "#/components/schemas/paymentTransactions"
              },
              "pending": {
                "description": "The pending transactions for this order.",
                "nullable": true,
                "$ref": "#/components/schemas/paymentTransactions"
              },
              "timing": {
                "description": "The payment timing of this order.",
                "type": "string",
                "enum": [
                  "pay_at_the_property",
                  "pay_online_later",
                  "pay_online_now"
                ]
              }
            }
          },
          "price": {
            "title": "OrderDetailsPriceOutput",
            "description": "The price components of this order. For taxi orders with multiple legs, amounts are the sum across all legs.",
            "type": "object",
            "properties": {
              "commissionable_price": {
                "description": "Price on which the commission is calculated, in both currencies (booker and product).",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput",
                "nullable": true
              },
              "total_price": {
                "description": "Final order price including all charges, in both currencies.",
                "$ref": "#/components/schemas/schemas-priceCurrencyOutput"
              }
            },
            "nullable": true
          },
          "start": {
            "description": "The date when this order starts. For taxi orders with multiple legs, this is the earliest pickup time among all legs.",
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "description": "Status of this order.\n\n For taxi orders with multiple legs:\n- If all legs share the same status, that value is returned.\n- If legs have different statuses, unknown is returned (indicating a mixed status across legs).\n\nImportant for taxi orders:\n- A status of booked indicates that the taxi ride has been successfully reserved, and is to be fulfilled.\n- Taxi reservations may still transition to cancelled or cancelled_by_guest after being booked.\n- Partners should not treat booked as a guaranteed completed ride.\n\n For accurate reporting, always check both the order-level status and individual leg statuses in taxis[].status via /orders/details, especially for upcoming or recently completed trips.",
            "$ref": "#/components/schemas/status"
          },
          "taxis": {
            "description": "List of taxi legs included in this order. Each item represents a separate taxi leg (e.g., outbound and return trips).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/taxiOutput"
            },
            "nullable": true
          },
          "updated": {
            "$ref": "#/components/schemas/updatedOutput"
          }
        }
      },
      "ordersDetailsOutput": {
        "title": "OrderDetailsOutput",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/orderDetailsData"
            }
          },
          "metadata": {
            "$ref": "#/components/schemas/metadata"
          },
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          }
        }
      },
      "accommodations_extras": {
        "description": "Input parameter to request for additional information about the accommodation order. It should be passed as a JSON array with one or more items.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "accommodation_details",
            "policies",
            "extra_charges"
          ]
        }
      },
      "accommodations_inputOrder": {
        "title": "OrderInput",
        "type": "object",
        "properties": {
          "orders": {
            "description": "List of order IDs for which details should be returned.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/order"
            },
            "maxItems": 100
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "extras": {
            "$ref": "#/components/schemas/accommodations_extras"
          },
          "language": {
            "description": "Language for translated content. If not provided, English (en-gb) is used by default.",
            "$ref": "#/components/schemas/languageId"
          }
        },
        "required": [
          "orders"
        ]
      },
      "reservation": {
        "description": "Accommodation reservation id for which details have to be returned.",
        "type": "string"
      },
      "inputReservation": {
        "title": "ReservationInput",
        "type": "object",
        "properties": {
          "reservations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/reservation"
            },
            "maxItems": 100
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "extras": {
            "$ref": "#/components/schemas/accommodations_extras"
          },
          "language": {
            "description": "Language in which translation should be provided. The default language is from settings",
            "$ref": "#/components/schemas/languageId"
          }
        },
        "required": [
          "reservations"
        ]
      },
      "accommodations_bookerOutput": {
        "title": "OrderDetailsBookerOutput",
        "description": "The booker's information.",
        "type": "object",
        "properties": {
          "external_account": {
            "description": "This is a unique identifier that represents the account provided by the partner in Booking.com settings. This field is used to link a specific accommodation order to the corresponding account so is possible to accurately allocate loyalty points or other benefits in the partner's loyalty and rewards programs.",
            "type": "string"
          },
          "platform": {
            "description": "The booker platform for showing the platform based deals and prices.",
            "$ref": "#/components/schemas/platform"
          }
        }
      },
      "accommodations_checkinMethod": {
        "description": "An enumeration that describes the check-in process and key collection method. This is typically applicable to non-hotel accommodations (such as houses or apartments) that do not have a 24-hour front desk.",
        "type": "string",
        "enum": [
          "door_code",
          "lock_box",
          "reception",
          "secret_spot",
          "someone_will_meet",
          "unknown"
        ]
      },
      "accommodations_keyLocation": {
        "description": "Location of the key to access this accommodation property.",
        "type": "string",
        "enum": [
          "at_the_property",
          "different_place",
          "unknown"
        ]
      },
      "accommodations_keyCollectionInformation": {
        "title": "AccommodationsKeyCollectionInformationOutput",
        "type": "object",
        "properties": {
          "additional_instructions": {
            "description": "Free-text instructions that provide additional context or details about the key collection or check-in process, such as access codes, entry procedures, or contact information.",
            "type": "string"
          },
          "alternate_location": {
            "title": "AlternateLocationOutput",
            "description": "This is the alternate location where the key for this accommodation property can be collected. It is provided if the key is not available at the accommodation property itself but instead at another designated location.",
            "type": "object",
            "properties": {
              "address": {
                "type": "string"
              },
              "city": {
                "type": "string"
              },
              "postal_code": {
                "type": "string"
              }
            }
          },
          "checkin_method": {
            "$ref": "#/components/schemas/accommodations_checkinMethod"
          },
          "key_location": {
            "$ref": "#/components/schemas/accommodations_keyLocation"
          }
        }
      },
      "pricePerAccommodationReservation": {
        "title": "AccommodationReservationPriceOutput",
        "description": "The price components of this accommodation order.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "commissionable": {
            "description": "The commissionable price. Reservation price on which commission amount is calculated.",
            "$ref": "#/components/schemas/priceCurrencyOutput",
            "nullable": true
          },
          "total": {
            "description": "The total price. Includes all extra charges.",
            "$ref": "#/components/schemas/priceCurrencyOutput"
          }
        }
      },
      "valueAddPostBook": {
        "title": "ValueAddPostBookOutput",
        "type": "object",
        "description": "Value-added service with its type and descriptive text localised in specified language.",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/valueAddType"
          },
          "description": {
            "type": "array",
            "description": "Translated descriptive text in the requested language.",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "bundlePostBook": {
        "title": "BundlePostBookOutput",
        "type": "object",
        "description": "A bundle attached to the reservation that includes information about the value-added service in the specified language.",
        "properties": {
          "id": {
            "type": "integer",
            "description": "Bundle identifier"
          },
          "value_adds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/valueAddPostBook"
            }
          }
        }
      },
      "accommodations_guest": {
        "title": "GuestOutput",
        "type": "object",
        "properties": {
          "email": {
            "description": "The email address of the guest.",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "The name of the guest.",
            "type": "string"
          }
        }
      },
      "detailsAccommodationsProductPolicies": {
        "title": "AccommodationDetailsProductPoliciesOutput",
        "description": "The policies for this product. Requires `{\"extras\":[\"policies\"]}`.",
        "type": "object",
        "properties": {
          "cancellation": {
            "$ref": "#/components/schemas/productDetailedCancellationPolicyMultiCurrency",
            "nullable": true
          },
          "meal_plan": {
            "$ref": "#/components/schemas/productMealPlanPolicy"
          },
          "smoking_preference": {
            "description": "Smoking Preference for this product.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "smoking",
              "non-smoking"
            ]
          }
        }
      },
      "chargeV32": {
        "title": "OrdersDetailsCharge",
        "description": "Charge information. Note: chargeable_online is not available in this endpoint.",
        "type": "object",
        "properties": {
          "charge": {
            "$ref": "#/components/schemas/chargeTypeId"
          },
          "mode": {
            "$ref": "#/components/schemas/chargeMode"
          },
          "percentage": {
            "$ref": "#/components/schemas/chargePercentage"
          },
          "total_amount": {
            "$ref": "#/components/schemas/priceCurrencyOutput"
          },
          "unit_amount": {
            "$ref": "#/components/schemas/priceCurrencyOutput",
            "nullable": true
          },
          "condition": {
            "description": "Specifies the condition under which this charge applies. Returns `null` if the charge is not conditional.",
            "$ref": "#/components/schemas/conditionId",
            "nullable": true
          },
          "included_in": {
            "title": "ChargeIncludedInDetails",
            "description": "Indicates where this charge is included. Note: chargeable_online is not available in this endpoint.",
            "type": "object",
            "properties": {
              "display": {
                "description": "Indicates if this charge is included in the display price.",
                "type": "boolean"
              }
            }
          }
        }
      },
      "accommodations_productPrice": {
        "title": "AccommodationDetailsProductPriceOutput",
        "description": "The price components of this product. 'base', 'display', and 'charges' are returned only when explicitly requested (via 'extras=extra_charges'). Note: chargeable_online field is not available in this endpoint.",
        "type": "object",
        "properties": {
          "base": {
            "description": "The base price. It does not include any extra charges.",
            "$ref": "#/components/schemas/priceCurrencyOutput",
            "nullable": true
          },
          "display": {
            "description": "The display price that must be shown to the traveller under local booker protection laws. Equivalent to base + charges where included_in.display=true.",
            "$ref": "#/components/schemas/priceCurrencyOutput",
            "nullable": true
          },
          "charges": {
            "description": "The charge breakdown. Includes taxes and fees.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/chargeV32"
            }
          },
          "total": {
            "description": "The total price. Includes all extra charges.",
            "$ref": "#/components/schemas/priceCurrencyOutput",
            "nullable": true
          }
        }
      },
      "detailsAccommodationsProductOutput": {
        "title": "OrdersDetailsAccommodationsProductsOutput",
        "description": "The returned information of the product reserved.",
        "type": "object",
        "properties": {
          "allocation": {
            "title": "OrdersDetailsAccommodationsPropertiesOutput",
            "description": "The allocation of guests, adults and children for this product.",
            "type": "object",
            "properties": {
              "guests": {
                "description": "The number of guests reserved for this product.",
                "type": "integer",
                "minimum": 1
              },
              "adults": {
                "description": "The number of adults reserved for this product.",
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1
              },
              "children": {
                "description": "The list of ages of all children reserved for this product.",
                "type": "array",
                "items": {
                  "description": "The age of a child",
                  "type": [
                    "integer",
                    "null"
                  ],
                  "maximum": 17
                }
              }
            }
          },
          "bundle": {
            "$ref": "#/components/schemas/bundlePostBook"
          },
          "guests": {
            "description": "The guest details for this product.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/accommodations_guest"
            }
          },
          "policies": {
            "$ref": "#/components/schemas/detailsAccommodationsProductPolicies"
          },
          "price": {
            "$ref": "#/components/schemas/accommodations_productPrice"
          },
          "room": {
            "description": "A unique identifier for a specific room within an accommodation property. You can retrieve the full list of available room IDs by calling [accommodations/details](/demand/docs/open-api/demand-api/accommodations/accommodations/details).",
            "type": "string"
          },
          "room_details": {
            "title": "RoomDetailsOutput",
            "description": "Room details for this product (via 'extras=accommodation_details').",
            "type": "object",
            "properties": {
              "name": {
                "description": "The room name given to this product.",
                "type": "string"
              }
            }
          },
          "room_reservation": {
            "description": "The room reservation id given to this product.",
            "type": "string"
          },
          "status": {
            "description": "Status of the product.",
            "$ref": "#/components/schemas/status"
          }
        }
      },
      "ordersDetailsAccommodations": {
        "title": "OrdersDetailsAccommodationsOutput",
        "description": "Object containing all the information related to accommodation order.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Order ID for this accommodation order.",
            "type": "string"
          },
          "accommodation": {
            "description": "Hotel ID for this accommodation order.",
            "type": "integer"
          },
          "accommodation_details": {
            "title": "OrdersAccommodationDetailsOutput",
            "description": "Accommodation details for this accommodation order (via 'extras=accommodation_details').",
            "type": "object",
            "properties": {
              "email": {
                "description": "Accommodation email.",
                "type": "string"
              },
              "location": {
                "title": "AccommodationLocationOutput",
                "description": "Accommodation location.",
                "type": "object",
                "properties": {
                  "address": {
                    "description": "Accommodation address.",
                    "type": "string"
                  },
                  "city": {
                    "description": "Accommodation city_id.",
                    "type": "integer"
                  },
                  "coordinates": {
                    "title": "AccommodationCoordinatesOutput",
                    "description": "Accommodation coordinates.",
                    "type": "object",
                    "properties": {
                      "latitude": {
                        "description": "Accommodation latitude coordinate.",
                        "type": "number"
                      },
                      "longitude": {
                        "description": "Accommodation longitude coordinate.",
                        "type": "number"
                      }
                    }
                  },
                  "country": {
                    "description": "Accommodation country.",
                    "$ref": "#/components/schemas/countryId"
                  },
                  "post_code": {
                    "description": "Accommodation post code.",
                    "type": "string"
                  }
                }
              },
              "name": {
                "description": "Accommodation name.",
                "type": "string"
              },
              "telephone": {
                "description": "Accommodation telephone.",
                "type": "string"
              }
            }
          },
          "accommodation_order_references": {
            "description": "List of additional accommodation order references generated by the accommodation.",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "booker": {
            "$ref": "#/components/schemas/accommodations_bookerOutput"
          },
          "cancellation_details": {
            "title": "OrderCancellationDetailsOutput",
            "description": "Fee charged for cancellation and the datetime at which the cancellation occurred. (If not cancelled, value is null).",
            "type": "object",
            "properties": {
              "at": {
                "description": "Cancellation datetime.",
                "type": "string",
                "format": "date-time"
              },
              "fee": {
                "description": "Cancellation fee.",
                "$ref": "#/components/schemas/priceCurrencyOutput"
              },
              "original_total_price": {
                "description": "The total amount that would have been charged if this order had not been cancelled. Includes all extra charges.",
                "$ref": "#/components/schemas/priceCurrencyOutput"
              }
            },
            "nullable": true
          },
          "checkin": {
            "description": "The checkin date of this accommodation order.",
            "type": "string",
            "format": "date"
          },
          "checkout": {
            "description": "The checkout date of this accommodation order.",
            "type": "string",
            "format": "date"
          },
          "commission": {
            "title": "OrderCommissionOutput",
            "description": "Commission details for the partner for this accommodation order.",
            "type": "object",
            "properties": {
              "actual_amount": {
                "description": "Actual commission amount for this accommodation order (`null` if value is not yet available).",
                "$ref": "#/components/schemas/priceCurrencyOutput",
                "nullable": true
              },
              "actual_percentage": {
                "description": "Actual commission percentage for this accommodation order (`null` if value is not yet available).",
                "type": [
                  "number",
                  "null"
                ],
                "format": "double"
              },
              "estimated_amount": {
                "description": "Estimated commission amount for this accommodation order (`null` if the actual amount is given).",
                "$ref": "#/components/schemas/priceCurrencyOutput",
                "nullable": true
              }
            }
          },
          "credit_slip_number": {
            "description": "The financial document issued by Booking.com to partners, detailing the payout amount and the associated transaction information. It serves as a formal record of the payment, ensuring transparency and facilitating accurate financial tracking for both parties.",
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "title": "OrderCurrencyOutput",
            "description": "Accommodation and booker currencies (booker will be `null`, if the request did not specify the currency).",
            "type": "object",
            "properties": {
              "accommodation": {
                "$ref": "#/components/schemas/currencyId"
              },
              "booker": {
                "nullable": true,
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "inventory": {
            "$ref": "#/components/schemas/inventoryOutput"
          },
          "key_collection_information": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/accommodations_keyCollectionInformation"
            }
          },
          "label": {
            "description": "Label provided when the accommodation order was created.",
            "type": [
              "string",
              "null"
            ]
          },
          "pin_code": {
            "description": "The pin code of this accommodation order.",
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/pricePerAccommodationReservation"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/detailsAccommodationsProductOutput"
            }
          },
          "reservation": {
            "description": "Reservation ID for given accommodation order.",
            "type": "string"
          },
          "remarks": {
            "description": "Guest remarks added while creating order.",
            "type": "string"
          },
          "status": {
            "description": "Status of this accommodation order.",
            "$ref": "#/components/schemas/status"
          },
          "stay_probability": {
            "description": "Score that predicts the likelihood of a traveller's intent to stay, based on internal calculations. A score of 0 indicates the highest likelihood of cancellation, while a score of 1 represents the highest likelihood of the traveller staying. Note: This score may not always be available.",
            "type": [
              "number",
              "null"
            ],
            "format": "double",
            "multipleOf": 0.01,
            "minimum": 0,
            "maximum": 1
          }
        }
      },
      "outputAccommodationsOrder": {
        "title": "OrdersDetailsAccommodationsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ordersDetailsAccommodations"
            }
          }
        }
      },
      "cars_extras": {
        "description": "Optional extra details to include in the response, passed as a JSON array.",
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "policies"
          ]
        }
      },
      "carsDetailsInputOrder": {
        "title": "OrderInput",
        "type": "object",
        "properties": {
          "orders": {
            "description": "List of order IDs for which details should be returned.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/order"
            },
            "maxItems": 100
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "extras": {
            "description": "Optional extra details to include in the response, passed as a JSON array.",
            "$ref": "#/components/schemas/cars_extras"
          }
        },
        "required": [
          "orders"
        ]
      },
      "carsDetailsInputReservation": {
        "title": "ReservationInput",
        "type": "object",
        "properties": {
          "reservations": {
            "description": "List of reservation IDs for which details should be returned.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/order"
            },
            "maxItems": 100
          },
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          },
          "extras": {
            "description": "Optional extra details to include in the response, passed as a JSON array.",
            "$ref": "#/components/schemas/cars_extras"
          }
        },
        "required": [
          "reservations"
        ]
      },
      "cars_priceCurrencyOutput": {
        "title": "CarsPriceCurrency",
        "description": "The price in both depot and booker currencies (booker might be null, if not requested)",
        "type": "object",
        "properties": {
          "depot_currency": {
            "description": "The price in depot currency. **DEPRECATED: Always expect null/omitted.**",
            "$ref": "#/components/schemas/monetaryAmount",
            "deprecated": true,
            "nullable": true
          },
          "booker_currency": {
            "$ref": "#/components/schemas/monetaryAmount"
          }
        }
      },
      "cars_routePointOutput": {
        "description": "Pickup or drop-off location details.",
        "type": "object",
        "properties": {
          "datetime": {
            "description": "Pickup/drop-off date and time in ISO-8601 format.",
            "example": "2023-11-01T11:05:00+00:00",
            "format": "date-time",
            "type": "string"
          }
        }
      },
      "pricePerCarReservation": {
        "title": "CarReservationPriceOutput",
        "description": "The price breakdown for this car order.",
        "type": "object",
        "properties": {
          "commissionable": {
            "description": "The commissionable price, representing the car rental cost used to calculate the commission amount. DEPRECATED: Always expect null/omitted in this endpoint. Check the orders/details endpoint for commission details instead.",
            "$ref": "#/components/schemas/cars_priceCurrencyOutput",
            "nullable": true,
            "deprecated": true
          },
          "total": {
            "description": "The total price, including all extra charges.",
            "$ref": "#/components/schemas/cars_priceCurrencyOutput"
          }
        },
        "nullable": true
      },
      "cars_paymentOutput": {
        "description": "The payment policy that applies to this product.",
        "type": "object",
        "properties": {
          "timing": {
            "description": "The applied payment timing. For example 'pay_online_now'.",
            "type": "string",
            "enum": [
              "pay_online_now",
              "pay_at_pickup",
              "pay_partial_online_now",
              "unknown"
            ]
          }
        },
        "required": [
          "timing"
        ]
      },
      "cars_policiesOutput": {
        "description": "The policies that apply to this product.",
        "type": "object",
        "properties": {
          "payment": {
            "$ref": "#/components/schemas/cars_paymentOutput"
          }
        }
      },
      "cars_productPrice": {
        "title": "CarDetailsProductPriceOutput",
        "description": "Detailed breakdown of the product's price components.",
        "type": "object",
        "properties": {
          "base": {
            "description": "The base price. This does not include any extra charges.",
            "$ref": "#/components/schemas/cars_priceCurrencyOutput",
            "nullable": true
          },
          "total": {
            "description": "The total price including any extra charges.",
            "$ref": "#/components/schemas/cars_priceCurrencyOutput",
            "nullable": true
          }
        }
      },
      "detailsCarsProductOutput": {
        "title": "OrdersDetailsCarsProductsOutput",
        "description": "Information about the reserved product within the order.",
        "type": "object",
        "properties": {
          "car": {
            "description": "Related car id",
            "$ref": "#/components/schemas/carId"
          },
          "policies": {
            "$ref": "#/components/schemas/cars_policiesOutput"
          },
          "price": {
            "$ref": "#/components/schemas/cars_productPrice"
          },
          "status": {
            "description": "Status of the product.",
            "$ref": "#/components/schemas/status"
          }
        }
      },
      "ordersDetailsCars": {
        "title": "OrdersDetailsCarsOutput",
        "description": "Object containing all the information related to car order.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Order ID for this car order.",
            "type": "string"
          },
          "affiliate": {
            "description": "The affiliate ID used for this order.",
            "type": "number"
          },
          "commission": {
            "description": "Commission details for the partner for this car order. DEPRECATED: Always expect null/omitted in this endpoint. Check the orders/details endpoint for commission details instead.",
            "nullable": true,
            "deprecated": true,
            "type": "object",
            "properties": {
              "actual_amount": {
                "description": "Actual commission amount for this car order (`null` if value is not yet available).",
                "$ref": "#/components/schemas/cars_priceCurrencyOutput",
                "nullable": true,
                "deprecated": true
              },
              "actual_percentage": {
                "description": "Actual commission percentage for this car order (`null` if value is not yet available).",
                "type": "number",
                "format": "double",
                "nullable": true,
                "deprecated": true
              },
              "estimated_amount": {
                "description": "Estimated commission amount for this car order (`null` if the actual amount is given).",
                "$ref": "#/components/schemas/cars_priceCurrencyOutput",
                "nullable": true
              }
            }
          },
          "currency": {
            "title": "OrderCurrencyOutput",
            "description": "Depot and booker currencies (depot will be `null` going forward).",
            "type": "object",
            "properties": {
              "depot": {
                "$ref": "#/components/schemas/currencyId",
                "nullable": true,
                "deprecated": true,
                "description": "Depot currency ID. **DEPRECATED: Will be set to null.**"
              },
              "booker": {
                "nullable": true,
                "$ref": "#/components/schemas/currencyId"
              }
            }
          },
          "dropoff": {
            "description": "Drop-off depot location and time.",
            "$ref": "#/components/schemas/cars_routePointOutput"
          },
          "label": {
            "description": "Identifier associated with the car booking. DEPRECATED: Always expect null/omitted in this endpoint. If you need to use 'label' for attributions, refer to orders/details",
            "type": "string",
            "nullable": true,
            "deprecated": true
          },
          "pickup": {
            "description": "Pick up depot location and time.",
            "$ref": "#/components/schemas/cars_routePointOutput"
          },
          "price": {
            "$ref": "#/components/schemas/pricePerCarReservation"
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/detailsCarsProductOutput"
            }
          },
          "reservation": {
            "description": "This is the reservation id for the car in this order.",
            "type": "string"
          },
          "status": {
            "description": "Status of this car order.",
            "$ref": "#/components/schemas/status"
          }
        }
      },
      "carsDetailsOutput": {
        "title": "OrdersDetailsCarsOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "description": "List of car order objects containing full details for each requested reservation.",
            "items": {
              "$ref": "#/components/schemas/ordersDetailsCars"
            }
          }
        }
      },
      "flights_input": {
        "title": "FlightsDetailsInput",
        "type": "object",
        "properties": {
          "currency": {
            "$ref": "#/components/schemas/currencyId"
          }
        },
        "oneOf": [
          {
            "title": "FlightsDetailsInputByOrders",
            "properties": {
              "orders": {
                "description": "List of order IDs for which details should be returned. Mutually exclusive with 'reservations'.",
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Flight order id for which details have to be returned."
                },
                "maxItems": 100
              }
            },
            "required": [
              "orders"
            ],
            "example": {
              "currency": "EUR",
              "orders": [
                "1234567890123456",
                "9876543210987654"
              ]
            }
          },
          {
            "title": "FlightsDetailsInputByReservations",
            "properties": {
              "reservations": {
                "description": "List of reservation IDs for which details should be returned. Mutually exclusive with 'orders'.",
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Flight reservation id for which details have to be returned."
                },
                "maxItems": 100
              }
            },
            "required": [
              "reservations"
            ],
            "example": {
              "currency": "EUR",
              "reservations": [
                "2321873123",
                "4666773123"
              ]
            }
          }
        ]
      },
      "currencyOutput": {
        "title": "CurrencyOutput",
        "type": "object",
        "properties": {
          "booker_currency": {
            "description": "The currency of the booker.",
            "type": "string"
          },
          "order_currency": {
            "description": "The currency in which the order was created.",
            "type": "string"
          }
        }
      },
      "flights_itinerary": {
        "title": "ItineraryPoint",
        "type": "object",
        "properties": {
          "airport": {
            "description": "A three-letter code that uniquely identifies an airport as defined by the International Air Transport Association (IATA). The full list can be obtained by calling  [common/locations/airports](#/common/locations/airports).",
            "pattern": "^[A-Z]{3}$",
            "type": "string"
          },
          "date_time": {
            "description": "Date time of the itinerary.",
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "flights_itineraryOutput": {
        "title": "ItineraryOutput",
        "type": "object",
        "properties": {
          "arrival": {
            "description": "Arrival itinerary.",
            "$ref": "#/components/schemas/flights_itinerary"
          },
          "departure": {
            "description": "Departure itinerary.",
            "$ref": "#/components/schemas/flights_itinerary"
          }
        }
      },
      "flights_priceOutput": {
        "title": "PriceOutput",
        "type": "object",
        "properties": {
          "booker_currency": {
            "description": "The price in the currency of the booker",
            "type": "number",
            "format": "double"
          },
          "order_currency": {
            "description": "The price in the currency in which order was created",
            "type": "number",
            "format": "double"
          }
        }
      },
      "flightsOutput": {
        "title": "FlightsOutput",
        "type": "object",
        "properties": {
          "id": {
            "description": "Order id",
            "type": "string"
          },
          "reservation": {
            "description": "This is the reservation id for the travel service in this order.",
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/currencyOutput"
          },
          "itineraries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/flights_itineraryOutput"
            }
          },
          "label": {
            "description": "Identifier associated with the order.",
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/flights_priceOutput"
          },
          "status": {
            "type": "string",
            "enum": [
              "booked",
              "cancelled",
              "unknown"
            ]
          }
        }
      },
      "flights_output": {
        "title": "OrdersDetailsFlightsOutput",
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/flightsOutput"
            }
          },
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          }
        }
      },
      "terms-and-conditions_components-schemas-input": {
        "type": "object",
        "required": [
          "booker",
          "orders"
        ],
        "properties": {
          "booker": {
            "type": "object",
            "required": [
              "country"
            ],
            "description": "Information about the booker",
            "properties": {
              "country": {
                "$ref": "#/components/schemas/countryId"
              }
            }
          },
          "language": {
            "description": "Optional. An ISO 639-1 language code (e.g. 'en-gb', 'es') indicating the preferred language for the terms and conditions.",
            "$ref": "#/components/schemas/languageId"
          },
          "orders": {
            "type": "array",
            "description": "An array of car rental order IDs for which to retrieve terms and conditions. Must include at least one valid ID.",
            "items": {
              "type": "string",
              "example": "765255700"
            },
            "minItems": 1
          },
          "filters": {
            "type": "object",
            "description": "Optional filters that control which terms and conditions are returned.",
            "properties": {
              "voucher": {
                "type": "boolean",
                "description": "When true, returns only the terms and conditions that must appear on the booking voucher shown to the traveller. A booking voucher is the confirmation document that the traveller must present at the car rental desk to collect the vehicle."
              }
            }
          }
        }
      },
      "terms-and-conditions_components-schemas-output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "title": "Order terms map",
            "type": "object",
            "description": "Map of order IDs to their terms and conditions. Invalid or missing orders return null.",
            "propertyNames": {
              "title": "Order ID (Map key)",
              "description": "The order ID key from the request.",
              "type": "string"
            },
            "additionalProperties": {
              "title": "Order terms object (Map value)",
              "description": "Contains the terms object for this order ID or null if invalid.",
              "type": [
                "object",
                "null"
              ],
              "required": [
                "terms"
              ],
              "properties": {
                "terms": {
                  "title": "Terms and conditions content",
                  "description": "Hierarchical array of terms for this order. Each item may be a chapter, section, clause, sub_clause, or clause_option.",
                  "$ref": "#/components/schemas/terms"
                }
              }
            }
          }
        }
      },
      "FaqInput": {
        "title": "FaqInput",
        "type": "object",
        "description": "Input parameters for retrieving car rental FAQs",
        "properties": {
          "languages": {
            "type": "array",
            "description": "Required. One or more preferred language codes expressed as IETF language tags (for example, en-gb, es). The API returns FAQs in each requested language where available. If content is not available for a requested language, the response defaults to English.",
            "items": {
              "type": "string"
            },
            "minItems": 1,
            "maxItems": 50
          }
        },
        "required": [
          "languages"
        ]
      },
      "Faq": {
        "title": "Faq",
        "type": "object",
        "description": "A map containing a question translated in each of the requested languages and answers for that specific question, translated in each of the requested languages. ",
        "properties": {
          "question": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Map of IETF language tags to the translated question strings. Each key is a language code (e.g., en-gb, fr), and the value is the corresponding translation of the question."
          },
          "answers": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "description": "Map of IETF language tags to arrays of translated answer paragraphs. Each key is a language code (e.g., en-gb, fr), and the value is an array of strings representing the paragraphs of the answer."
          }
        },
        "required": [
          "question",
          "answers"
        ]
      },
      "FaqOutput": {
        "title": "FaqOutput",
        "type": "object",
        "description": "Response object containing the set of frequently asked questions (FAQs) returned for the request.",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "description": "Container for the FAQ results.",
            "properties": {
              "faqs": {
                "description": "List of FAQ items, each containing a question and its corresponding answer.",
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Faq"
                }
              }
            },
            "required": [
              "faqs"
            ]
          }
        },
        "required": [
          "request_id",
          "data"
        ]
      },
      "supplierOutput": {
        "title": "SupplierOutput",
        "description": "Car rental supplier (company) information.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "id": {
            "description": "Unique identifier of the supplier.",
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "description": "Name of the car rental supplier (e.g., 'Avis', 'Hertz').",
            "type": [
              "string",
              "null"
            ]
          },
          "telephone": {
            "description": "Contact telephone number for the pickup location.",
            "type": [
              "string",
              "null"
            ]
          },
          "confirmation_number": {
            "description": "Supplier's confirmation/reference number for the booking.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "live_carMonetaryAmount": {
        "title": "CarMonetaryAmount",
        "description": "Monetary amount with currency and payment timing.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "value": {
            "description": "The monetary value.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "currency": {
            "description": "The ISO 4217 currency code (e.g., 'EUR', 'USD').",
            "type": [
              "string",
              "null"
            ]
          },
          "timing": {
            "description": "The applied payment timing. For example 'pay_online_now'.",
            "type": "string",
            "enum": [
              "pay_online_now",
              "pay_at_pickup"
            ]
          }
        }
      },
      "live_carsPriceOutput": {
        "title": "CarsPriceOutput",
        "description": "Price amounts for display and payment.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "display": {
            "description": "Amount displayed to the traveller, converted to the requested currency when applicable.",
            "$ref": "#/components/schemas/live_carMonetaryAmount"
          },
          "pay": {
            "description": "The amount the traveller will pay in the supplier's currency.",
            "$ref": "#/components/schemas/live_carMonetaryAmount"
          }
        }
      },
      "carPriceOutput": {
        "title": "CarPriceOutput",
        "description": "Pricing breakdown for the car rental.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "base": {
            "description": "Base price of the vehicle (excluding extras), after any promotions.",
            "$ref": "#/components/schemas/live_carsPriceOutput"
          },
          "pre_discount_base": {
            "description": "Base price before discount.",
            "$ref": "#/components/schemas/live_carsPriceOutput"
          },
          "total": {
            "description": "List of total prices broken down by payment timing (pay now vs pay at pickup).",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/live_carsPriceOutput"
            }
          }
        }
      },
      "live_mileageOutput": {
        "title": "MileageOutput",
        "description": "Mileage policy information.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "distance_limit": {
            "description": "Maximum distance allowed when mileage is limited.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "distance_unit": {
            "description": "Unit of distance measurement.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "kilometers",
              "miles"
            ]
          },
          "amount": {
            "description": "Cost per unit of distance if mileage is limited.",
            "type": [
              "number",
              "null"
            ],
            "format": "double"
          },
          "currency": {
            "description": "Currency for the mileage overage charge.",
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "description": "Type of mileage policy.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "limited",
              "unlimited"
            ]
          }
        }
      },
      "cancellationScheduleOutput": {
        "title": "CancellationScheduleOutput",
        "description": "A single cancellation period defining the conditions and any applicable fee for a specific time window.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "from": {
            "description": "Start date and time of this cancellation period in ISO-8601 format.",
            "type": "string",
            "format": "date-time"
          },
          "to": {
            "description": "End date and time of this cancellation period in ISO-8601 format.",
            "type": "string",
            "format": "date-time"
          },
          "free_cancellation": {
            "description": "Indicates whether cancellation is free during this period. When true, no cancellation fee applies. In case is false and the price is null, the fee is pending and will be typically determined 48h before pickup.",
            "type": "boolean"
          },
          "price": {
            "description": "Cancellation fee for this period. Null when fee has not yet been determined.",
            "$ref": "#/components/schemas/live_carsPriceOutput"
          }
        }
      },
      "live_cancellationOutput": {
        "title": "CancellationOutput",
        "description": "Cancellation policy information.",
        "type": "object",
        "properties": {
          "type": {
            "description": "Type of cancellation policy.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "free_cancellation",
              "non_refundable"
            ]
          },
          "schedule": {
            "description": "Chronological list of cancellation periods with their applicable fees. Each entry represents a contiguous time window and its cancellation conditions. Periods are ordered by start time and expressed in UTC. When present, the schedule fully describes the cancellation policy.",
            "type": [
              "array",
              "null"
            ],
            "items": {
              "$ref": "#/components/schemas/cancellationScheduleOutput"
            }
          }
        }
      },
      "carsGeneralPoliciesOutput": {
        "title": "CarsGeneralPoliciesOutput",
        "description": "General policies applicable to the car rental.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "deposit": {
            "description": "Refundable security deposit required at pickup.",
            "$ref": "#/components/schemas/live_carMonetaryAmount"
          },
          "mileage": {
            "description": "Mileage policy details.",
            "$ref": "#/components/schemas/live_mileageOutput"
          },
          "fuel_policy": {
            "description": "Fuel policy applied to the rental.",
            "type": "string",
            "enum": [
              "return_same",
              "return_same_or_prepay_no_refunds",
              "return_same_preauth",
              "free_tank",
              "prepay_no_refunds",
              "prepay_part_refunds",
              "prepay_refunds",
              "unknown"
            ]
          },
          "cancellation": {
            "description": "Cancellation policy details.",
            "$ref": "#/components/schemas/live_cancellationOutput"
          }
        }
      },
      "carDetailsOutput": {
        "title": "CarDetailsOutput",
        "description": "Vehicle, supplier, pricing, and policy details.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "id": {
            "description": "Unique identifier of the booked vehicle. Corresponds to the car field returned by /cars/search and the id field returned by /cars/details.",
            "type": [
              "integer",
              "null"
            ]
          },
          "image": {
            "description": "URL of the car image.",
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "category": {
            "description": "Category of the car (e.g., 'Compact', 'SUV').",
            "type": [
              "string",
              "null"
            ]
          },
          "transmission": {
            "description": "Transmission type (e.g., 'Automatic', 'Manual').",
            "type": [
              "string",
              "null"
            ]
          },
          "doors": {
            "description": "Number of doors.",
            "type": [
              "string",
              "null"
            ]
          },
          "seats": {
            "description": "Number of seats.",
            "type": [
              "string",
              "null"
            ]
          },
          "air_conditioning": {
            "description": "Whether the car has air conditioning.",
            "type": [
              "boolean",
              "null"
            ]
          },
          "big_suitcase": {
            "description": "Number of large suitcases the car can accommodate.",
            "type": [
              "string",
              "null"
            ]
          },
          "small_suitcase": {
            "description": "Number of small suitcases the car can accommodate.",
            "type": [
              "string",
              "null"
            ]
          },
          "currency": {
            "description": "Currency code for pricing (e.g., 'EUR', 'USD').",
            "type": [
              "string",
              "null"
            ]
          },
          "make_and_model": {
            "description": "Make and model of the car (e.g., 'Toyota Corolla').",
            "type": [
              "string",
              "null"
            ]
          },
          "supplier": {
            "description": "Car hire supplier information.",
            "$ref": "#/components/schemas/supplierOutput"
          },
          "price": {
            "description": "Pricing information for the car rental.",
            "$ref": "#/components/schemas/carPriceOutput"
          },
          "policies": {
            "description": "Applicable policies including deposit, mileage, fuel, and cancellation.",
            "$ref": "#/components/schemas/carsGeneralPoliciesOutput"
          }
        }
      },
      "live_routePointOutput": {
        "title": "RoutePointOutput",
        "description": "Pickup or dropoff location details.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "datetime": {
            "description": "Pickup/dropoff date and time in ISO-8601 format.",
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "location": {
            "description": "Pickup/dropoff location name.",
            "type": [
              "string",
              "null"
            ]
          },
          "depot_type": {
            "description": "Location type of the depot (e.g., 'Airport', 'Downtown').",
            "type": [
              "string",
              "null"
            ]
          },
          "depot_id": {
            "description": "Unique identifier of the depot.",
            "type": [
              "string",
              "null"
            ]
          },
          "instructions": {
            "description": "Pickup or dropoff instructions at this location.",
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "live_carProductOutput": {
        "title": "carProductOutput",
        "description": "Optional extra service added to the car hire order.",
        "type": "object",
        "properties": {
          "id": {
            "description": "Unique identifier for this product/extra.",
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "description": "Type of extra product.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "additional_driver",
              "baby_seat",
              "bluetooth_handsfree_kit",
              "booster_seat",
              "child_booster_seat",
              "child_seat",
              "child_seat_isofix",
              "etc_card_electronic_toll_collection_card",
              "excess_protection",
              "fast_track",
              "gps",
              "infant_seat",
              "luggage_rack",
              "personal_travel_assistant",
              "queue_jump",
              "roof_rack",
              "ski_box",
              "ski_rack",
              "skierized_equipment",
              "snow_chains",
              "snow_tyres",
              "wifi_mobile",
              "wifi_router"
            ]
          },
          "selected_quantity": {
            "description": "Number of this product selected/booked.",
            "type": [
              "integer",
              "null"
            ]
          },
          "mode": {
            "description": "Pricing mode for this product.",
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "each_per_day",
              "each_per_rental",
              "per_day",
              "per_rental"
            ]
          },
          "price": {
            "description": "Price of this extra product.",
            "$ref": "#/components/schemas/live_carsPriceOutput"
          }
        }
      },
      "driverOutput": {
        "title": "DriverOutput",
        "description": "Details of the primary driver associated with the booking.",
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "name": {
            "description": "Full name of the driver.",
            "type": "string"
          },
          "email": {
            "description": "Email address of the driver.",
            "type": "string",
            "format": "email"
          },
          "telephone": {
            "description": "Driver’s phone number.",
            "type": "string"
          }
        }
      },
      "carsPostbookOutput": {
        "title": "CarsPostbookOutput",
        "description": "Live car order details for a single reservation.",
        "type": "object",
        "properties": {
          "affiliate": {
            "description": "The affiliate ID used for this order.",
            "type": "integer"
          },
          "car": {
            "description": "Details of the rented vehicle, including supplier, pricing and policies.",
            "$ref": "#/components/schemas/carDetailsOutput"
          },
          "dropoff": {
            "description": "Drop-off location and time details.",
            "$ref": "#/components/schemas/live_routePointOutput"
          },
          "pickup": {
            "description": "Pick-up location and time details.",
            "$ref": "#/components/schemas/live_routePointOutput"
          },
          "products": {
            "description": "Optional ancillary services added to the car hire order (for example, additional driver, child seat, or GPS).",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/live_carProductOutput"
            }
          },
          "reservation": {
            "description": "The reservation ID for this car order.",
            "type": "string"
          },
          "duration": {
            "description": "Duration of the car rental in days.",
            "type": [
              "integer",
              "null"
            ]
          },
          "driver": {
            "description": "Details of the primary driver associated with the booking. Only returned when PII sharing is enabled.",
            "$ref": "#/components/schemas/driverOutput"
          },
          "status": {
            "description": "Current status of the car order.",
            "type": "string",
            "enum": [
              "cancelled",
              "confirmed",
              "not_confirmed",
              "quote",
              "completed",
              "processing",
              "unknown"
            ],
            "x-enumDescriptions": {
              "cancelled": "The order has been cancelled and is no longer active.",
              "confirmed": "The booking is confirmed by the supplier and is active.",
              "not_confirmed": "The order request exists but was not confirmed (still pending checks).",
              "quote": "A price quote has been created but the booking has not been placed.",
              "completed": "The rental has finished and the order is fully completed.",
              "processing": "The booking is being processed and payment/final confirmation is pending.",
              "unknown": "The booking status is unknown."
            }
          }
        }
      },
      "ordersDetailsCarsOutput": {
        "title": "OrdersDetailsCarsLiveOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "array",
            "description": "List of car order objects for the requested reservations.",
            "items": {
              "$ref": "#/components/schemas/carsPostbookOutput"
            }
          }
        }
      },
      "orderId": {
        "type": "string",
        "description": "Order ID to be modified"
      },
      "dateChange": {
        "type": "object",
        "properties": {
          "checkin": {
            "type": "string",
            "format": "date",
            "description": "New checkin date"
          },
          "checkout": {
            "type": "string",
            "format": "date",
            "description": "New checkout date"
          }
        },
        "required": [
          "checkin",
          "checkout"
        ]
      },
      "roomChange": {
        "type": "object",
        "properties": {
          "room_reservation": {
            "type": "string"
          },
          "allocation": {
            "type": "object",
            "properties": {
              "number_of_adults": {
                "type": "integer"
              }
            }
          },
          "guests": {
            "description": "Guest information for the room.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                }
              }
            }
          },
          "smoking_preference": {
            "type": "string",
            "enum": [
              "no_preference",
              "non_smoking",
              "smoking"
            ]
          }
        }
      },
      "accommodationChange": {
        "type": "object",
        "properties": {
          "reservation": {
            "type": "string",
            "description": "Reservation ID"
          },
          "change": {
            "oneOf": [
              {
                "title": "DateChange",
                "$ref": "#/components/schemas/dateChange"
              },
              {
                "title": "RoomChange",
                "$ref": "#/components/schemas/roomChange"
              }
            ]
          },
          "type": {
            "description": "Type of the accommodation change",
            "type": "string",
            "enum": [
              "dates",
              "room"
            ]
          }
        },
        "required": [
          "reservation",
          "type",
          "change"
        ]
      },
      "accommodationModificationInput": {
        "type": "object",
        "properties": {
          "order": {
            "$ref": "#/components/schemas/orderId"
          },
          "modification": {
            "type": "object",
            "properties": {
              "accommodation": {
                "$ref": "#/components/schemas/accommodationChange"
              }
            },
            "required": [
              "accommodation"
            ]
          }
        },
        "required": [
          "order",
          "modification"
        ]
      },
      "cardDetails": {
        "type": "object",
        "properties": {
          "cardholder": {
            "type": "string",
            "description": "Cardholder name"
          },
          "cvc": {
            "type": "string",
            "description": "A 3 or 4 digit Card Verification Code (CVC) associated with the used card"
          },
          "expiry_date": {
            "type": "string",
            "format": "YYYY-MM",
            "description": "Card expiry date"
          },
          "number": {
            "type": "string",
            "description": "Card number"
          }
        },
        "required": [
          "cardholder",
          "cvc",
          "expiry_date",
          "number"
        ]
      },
      "paymentChange": {
        "type": "object",
        "properties": {
          "change": {
            "$ref": "#/components/schemas/cardDetails"
          },
          "type": {
            "description": "Type of the payment change",
            "type": "string",
            "enum": [
              "card"
            ]
          }
        },
        "required": [
          "type",
          "change"
        ]
      },
      "paymentModificationInput": {
        "type": "object",
        "properties": {
          "order": {
            "$ref": "#/components/schemas/orderId"
          },
          "modification": {
            "type": "object",
            "properties": {
              "payment": {
                "$ref": "#/components/schemas/paymentChange"
              }
            },
            "required": [
              "payment"
            ]
          }
        },
        "required": [
          "modification"
        ]
      },
      "statusOutput": {
        "description": "Status for this modification request.",
        "type": "string",
        "enum": [
          "successful",
          "failed"
        ]
      },
      "accommodationModificationOutput": {
        "type": "object",
        "properties": {
          "modification": {
            "type": "object",
            "properties": {
              "accommodation": {
                "type": "object",
                "properties": {
                  "new_price": {
                    "description": "New price to be paid after the modification",
                    "type": "number",
                    "format": "double"
                  },
                  "status": {
                    "$ref": "#/components/schemas/statusOutput"
                  }
                }
              }
            }
          }
        }
      },
      "paymentModificationOutput": {
        "type": "object",
        "properties": {
          "modifications": {
            "type": "object",
            "properties": {
              "payment": {
                "type": "object",
                "properties": {
                  "status": {
                    "$ref": "#/components/schemas/statusOutput"
                  }
                }
              }
            }
          }
        }
      },
      "preview_orderId": {
        "type": "string",
        "description": "Order ID to preview modification for."
      },
      "preview_dateChange": {
        "type": "object",
        "properties": {
          "checkin": {
            "type": "string",
            "format": "date",
            "description": "New check-in date in ISO 8601 format (YYYY-MM-DD)."
          },
          "checkout": {
            "type": "string",
            "format": "date",
            "description": "New checkout date in ISO 8601 format (YYYY-MM-DD). Must be after the checkin date."
          }
        },
        "required": [
          "checkin",
          "checkout"
        ]
      },
      "preview_roomChange": {
        "type": "object",
        "properties": {
          "room_reservation": {
            "type": "string",
            "description": "Identifier of the room reservation to be modified."
          },
          "allocation": {
            "type": "object",
            "properties": {
              "number_of_adults": {
                "type": "integer",
                "description": "Number of adults for the room."
              }
            }
          },
          "guests": {
            "description": "Guest information for the room.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Guest name"
                }
              }
            }
          },
          "smoking_preference": {
            "type": "string",
            "description": "Smoking preference for the room",
            "enum": [
              "no_preference",
              "non_smoking",
              "smoking"
            ]
          }
        },
        "required": [
          "room_reservation"
        ]
      },
      "preview_accommodationChange": {
        "type": "object",
        "properties": {
          "reservation": {
            "type": "string",
            "description": "Identifier of the specific reservation to be modified within the order."
          },
          "type": {
            "description": "Type of accommodation modification to apply.",
            "type": "string",
            "enum": [
              "dates",
              "room"
            ]
          },
          "change": {
            "description": "Details of the change. Must match the type of modification specified.",
            "oneOf": [
              {
                "title": "DateChange",
                "$ref": "#/components/schemas/preview_dateChange"
              },
              {
                "title": "RoomChange",
                "$ref": "#/components/schemas/preview_roomChange"
              }
            ]
          }
        },
        "required": [
          "reservation",
          "type",
          "change"
        ]
      },
      "accommodationModificationPreviewInput": {
        "type": "object",
        "description": "This is the preview input for accommodation modifications.",
        "properties": {
          "order": {
            "$ref": "#/components/schemas/preview_orderId"
          },
          "modification": {
            "type": "object",
            "properties": {
              "accommodation": {
                "$ref": "#/components/schemas/preview_accommodationChange"
              }
            },
            "required": [
              "accommodation"
            ]
          }
        },
        "required": [
          "order",
          "modification"
        ]
      },
      "preview_cardDetails": {
        "type": "object",
        "properties": {
          "cardholder": {
            "type": "string",
            "description": "Cardholder name"
          },
          "cvc": {
            "type": "string",
            "description": "A 3 or 4 digit Card Verification Code (CVC) associated with the used card"
          },
          "expiry_date": {
            "type": "string",
            "pattern": "^[0-9]{4}-(0[1-9]|1[0-2])$",
            "description": "Card expiry date in YYYY-MM format.",
            "example": "2026-04"
          },
          "number": {
            "type": "string",
            "description": "Card number"
          }
        },
        "required": [
          "cardholder",
          "cvc",
          "expiry_date",
          "number"
        ]
      },
      "preview_paymentChange": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Type of payment change to apply.",
            "type": "string",
            "enum": [
              "card"
            ]
          },
          "change": {
            "$ref": "#/components/schemas/preview_cardDetails"
          }
        },
        "required": [
          "type",
          "change"
        ]
      },
      "paymentModificationPreviewInput": {
        "type": "object",
        "description": "This is the preview input for payment modifications.",
        "properties": {
          "order": {
            "$ref": "#/components/schemas/preview_orderId"
          },
          "modification": {
            "type": "object",
            "properties": {
              "payment": {
                "$ref": "#/components/schemas/preview_paymentChange"
              }
            },
            "required": [
              "payment"
            ]
          }
        },
        "required": [
          "order",
          "modification"
        ]
      },
      "accommodationModificationPreviewOutput": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "modifiable": {
                "type": "boolean",
                "description": "Indicates whether the requested modification can be applied."
              },
              "reason": {
                "type": "string",
                "description": "Explanation of why the modification cannot be applied. Only present when modifiable is false."
              },
              "price": {
                "type": "object",
                "description": "Price information for the modification. Only present when modifiable is true and the modification type is dates.",
                "properties": {
                  "currency": {
                    "$ref": "#/components/schemas/currencyId"
                  },
                  "current": {
                    "type": "object",
                    "description": "Current price of the order before modification.",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "double",
                        "description": "Current total cost amount."
                      }
                    },
                    "required": [
                      "amount"
                    ]
                  },
                  "new": {
                    "type": "object",
                    "description": "New price of the order after modification.",
                    "properties": {
                      "amount": {
                        "type": "number",
                        "format": "double",
                        "description": "New total cost amount after applying the modification."
                      }
                    },
                    "required": [
                      "amount"
                    ]
                  }
                },
                "required": [
                  "currency",
                  "current",
                  "new"
                ]
              }
            },
            "required": [
              "modifiable"
            ]
          }
        }
      },
      "paymentModificationPreviewOutput": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "modifiable": {
                "type": "boolean",
                "description": "Whether the payment modification is possible"
              }
            },
            "required": [
              "modifiable"
            ]
          }
        }
      },
      "cancelInput": {
        "title": "OrdersCancelInput",
        "description": "Cancels a reservation within an existing order. Provide the reservation details for the travel service you want to cancel. The order ID can be optionally provided to help identify the order. Only one travel service can be cancelled per request.",
        "type": "object",
        "properties": {
          "order": {
            "description": "Unique identifier of the order containing the reservation to cancel.",
            "type": "string"
          },
          "accommodation": {
            "title": "AccommodationOrdersCancelInput",
            "type": "object",
            "properties": {
              "reservation": {
                "description": "Unique identifier of the Accommodation order to cancel.",
                "type": "string"
              },
              "reason": {
                "description": "Free-text explanation for the cancellation request.",
                "type": "string"
              },
              "request_property_approval": {
                "description": "For accommodation orders only. If a cancellation fee applies, you can request the accommodation to waive the fee and approve free cancellation. This is subject to accommodation approval.",
                "type": "boolean"
              }
            },
            "required": [
              "reservation",
              "reason"
            ]
          },
          "car": {
            "title": "CarsOrdersCancelInput",
            "type": "object",
            "properties": {
              "reservation": {
                "description": "Unique identifier of the car rental reservation to cancel.",
                "type": "string"
              },
              "reason": {
                "description": "Free-text explanation for the cancellation request.",
                "type": "string"
              },
              "booker": {
                "description": "Information about the person who made the booking. Required for car cancellations.",
                "type": "object",
                "properties": {
                  "country": {
                    "$ref": "#/components/schemas/countryId"
                  }
                },
                "required": [
                  "country"
                ]
              }
            },
            "required": [
              "reservation",
              "reason",
              "booker"
            ]
          }
        },
        "oneOf": [
          {
            "title": "Cancel a car order",
            "description": "Use this option to cancel a car rental reservation.",
            "required": [
              "car"
            ]
          },
          {
            "title": "Cancel an accommodation order",
            "description": "Use this option to cancel an accommodation reservation.",
            "required": [
              "accommodation"
            ]
          }
        ]
      },
      "cancelOutput": {
        "title": "OrdersCancelOutput",
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "title": "OrdersCancelDataOutput",
            "type": "object",
            "properties": {
              "status": {
                "description": "Result of the cancellation request. Can be `successful` or `failed`.",
                "type": "string",
                "enum": [
                  "successful",
                  "failed"
                ]
              }
            }
          }
        }
      },
      "conversation": {
        "description": "A unique identifier for the conversation thread.",
        "type": "string"
      },
      "common_accommodation": {
        "type": "string",
        "description": "The unique identifier of the property"
      },
      "attachment": {
        "type": "string",
        "description": "The unique identifier of the attachment"
      },
      "send_input": {
        "type": "object",
        "required": [
          "accommodation",
          "conversation",
          "content"
        ],
        "properties": {
          "conversation": {
            "type": "string",
            "description": "The unique identifier of the conversation",
            "$ref": "#/components/schemas/conversation"
          },
          "accommodation": {
            "type": "string",
            "description": "The unique identifier of the property",
            "$ref": "#/components/schemas/common_accommodation"
          },
          "content": {
            "type": "string",
            "description": "The body of the message."
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attachment"
            }
          }
        }
      },
      "message": {
        "description": "A unique identifier for the message.",
        "type": "string"
      },
      "send_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "message": {
                "$ref": "#/components/schemas/message"
              }
            }
          }
        }
      },
      "latest_input": {},
      "common_reservation": {
        "type": "string",
        "description": "The unique identifier of the reservation"
      },
      "latest_conversation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier of the conversation",
            "$ref": "#/components/schemas/conversation"
          },
          "accommodation": {
            "type": "string",
            "description": "The unique identifier of the property",
            "$ref": "#/components/schemas/common_accommodation"
          },
          "reservation": {
            "type": "string",
            "description": "The unique identifier of the reservation",
            "$ref": "#/components/schemas/common_reservation"
          }
        }
      },
      "latest_metadata": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Specifies the conversation participant type.",
            "type": "string",
            "enum": [
              "guest",
              "property"
            ]
          },
          "name": {
            "description": "The display name of the participant (e.g., guest or property name).",
            "type": "string"
          }
        }
      },
      "sender": {
        "type": "object",
        "properties": {
          "participant": {
            "description": "A unique identifier for the conversation participant.",
            "type": "string"
          },
          "metadata": {
            "type": "object",
            "$ref": "#/components/schemas/latest_metadata"
          }
        }
      },
      "timestamp": {
        "description": "The timestamp in ISO-8601 format from which the message is sent. Format: YYYY-MM-DDTHH:mm:ss+00:00",
        "type": "string",
        "format": "date-time"
      },
      "latest_message": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "object",
            "$ref": "#/components/schemas/latest_conversation"
          },
          "content": {
            "type": "string",
            "description": "The body of the message."
          },
          "id": {
            "$ref": "#/components/schemas/message"
          },
          "sender": {
            "type": "object",
            "$ref": "#/components/schemas/sender"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/attachment"
            }
          },
          "timestamp": {
            "$ref": "#/components/schemas/timestamp"
          }
        }
      },
      "latest_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "messages": {
                "type": "array",
                "description": "List of recent messages in reverse chronological order.",
                "items": {
                  "$ref": "#/components/schemas/latest_message"
                }
              }
            }
          }
        }
      },
      "confirm_input": {
        "title": "ConfirmMessageReceiptRequest",
        "type": "object",
        "properties": {
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/message"
            }
          }
        }
      },
      "confirm_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "confirmedMessages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/message"
            }
          }
        }
      },
      "conversations_input": {
        "title": "RetrieveConversationRequest",
        "type": "object",
        "required": [
          "accommodation"
        ],
        "properties": {
          "accommodation": {
            "type": "string",
            "description": "The unique identifier of the property"
          },
          "conversation": {
            "description": "Uniquely identifies the conversation.",
            "$ref": "#/components/schemas/conversation"
          },
          "reservation": {
            "type": "string",
            "description": "Unique identifier of the reservation associated with this conversation.",
            "$ref": "#/components/schemas/common_reservation"
          }
        },
        "oneOf": [
          {
            "required": [
              "conversation"
            ]
          },
          {
            "required": [
              "reservation"
            ]
          }
        ]
      },
      "conversations_message": {
        "type": "object",
        "required": [
          "id",
          "sender",
          "content",
          "timestamp"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the message."
          },
          "sender": {
            "description": "Unique identifier of the sender (either property or guest).",
            "type": "string"
          },
          "content": {
            "type": "string",
            "description": "Message content in plain text."
          },
          "attachments": {
            "type": "array",
            "description": "List of attachment IDs included with the message (if any).",
            "items": {
              "type": "string"
            }
          },
          "timestamp": {
            "$ref": "#/components/schemas/timestamp"
          }
        }
      },
      "conversations_metadata": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Type of the metadata",
            "type": "string",
            "enum": [
              "guest",
              "property"
            ]
          },
          "name": {
            "description": "Uniquely identifies the metadata.",
            "type": "string"
          }
        }
      },
      "participants": {
        "type": "object",
        "required": [
          "id",
          "metadata"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the participant."
          },
          "metadata": {
            "type": "object",
            "$ref": "#/components/schemas/conversations_metadata"
          }
        }
      },
      "conversations_conversation": {
        "type": "object",
        "required": [
          "id",
          "messages",
          "participants"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the conversation."
          },
          "reservation": {
            "type": "string",
            "description": "The unique identifier of the reservation",
            "$ref": "#/components/schemas/common_reservation"
          },
          "messages": {
            "description": "Chronological list of messages in the conversation.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/conversations_message"
            }
          },
          "participants": {
            "type": "array",
            "description": "List of participants in the conversation, including guest and property.",
            "items": {
              "$ref": "#/components/schemas/participants"
            }
          }
        }
      },
      "conversations_output": {
        "type": "object",
        "required": [
          "request_id",
          "data"
        ],
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "required": [
              "conversation"
            ],
            "properties": {
              "conversation": {
                "type": "object",
                "$ref": "#/components/schemas/conversations_conversation"
              }
            }
          }
        }
      },
      "upload_input": {
        "type": "object",
        "required": [
          "conversation",
          "accommodation",
          "file_size",
          "file_name",
          "file_type",
          "file_content"
        ],
        "properties": {
          "conversation": {
            "type": "string",
            "description": "The unique identifier of the conversation",
            "$ref": "#/components/schemas/conversation"
          },
          "accommodation": {
            "type": "string",
            "description": "The unique identifier of the property",
            "$ref": "#/components/schemas/common_accommodation"
          },
          "file_size": {
            "description": "The file size in bytes.",
            "type": "integer",
            "format": "int64",
            "maximum": 1048576
          },
          "file_name": {
            "description": "The original file name including extension.",
            "type": "string"
          },
          "file_type": {
            "description": "The MIME type of the attachment (supported formats: PNG, JPEG, JPG).",
            "type": "string"
          },
          "file_content": {
            "description": "Base64-encoded content of the attachment.",
            "type": "string",
            "contentEncoding": "base64"
          }
        }
      },
      "upload_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "attachment": {
                "type": "string",
                "description": "The unique identifier of the attachment",
                "$ref": "#/components/schemas/attachment"
              }
            }
          }
        }
      },
      "download_input": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "string",
            "description": "The unique identifier of the conversation",
            "$ref": "#/components/schemas/conversation"
          },
          "accommodation": {
            "type": "string",
            "description": "The unique identifier of the property",
            "$ref": "#/components/schemas/common_accommodation"
          },
          "attachment": {
            "type": "string",
            "description": "The unique identifier of the attachment",
            "$ref": "#/components/schemas/attachment"
          }
        }
      },
      "download_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "conversation": {
                "type": "string",
                "description": "The unique identifier of the conversation",
                "$ref": "#/components/schemas/conversation"
              },
              "file_content": {
                "type": "string",
                "description": "The content of the attachment",
                "contentEncoding": "base64"
              },
              "attachment": {
                "type": "string",
                "description": "The unique identifier of the attachment",
                "$ref": "#/components/schemas/attachment"
              }
            }
          }
        }
      },
      "metadata_input": {
        "type": "object",
        "properties": {
          "conversation": {
            "type": "string",
            "description": "The unique identifier of the conversation",
            "$ref": "#/components/schemas/conversation"
          },
          "accommodation": {
            "type": "string",
            "description": "The unique identifier of the property",
            "$ref": "#/components/schemas/common_accommodation"
          },
          "attachment": {
            "type": "string",
            "description": "The unique identifier of the attachment",
            "$ref": "#/components/schemas/attachment"
          }
        }
      },
      "metadata_metadata": {
        "type": "object",
        "properties": {
          "file_size": {
            "description": "The size of the attachment (up to 1MB)",
            "type": "integer",
            "format": "int64",
            "maximum": 1048576
          },
          "file_name": {
            "description": "The original file name.",
            "type": "string"
          },
          "file_type": {
            "description": "The MIME type of the attachment. Note only the following image formats are supported: PNG, JPEG, and JPG.",
            "type": "string"
          }
        }
      },
      "metadata_output": {
        "type": "object",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/requestId"
          },
          "data": {
            "type": "object",
            "properties": {
              "metadata": {
                "$ref": "#/components/schemas/metadata_metadata"
              }
            }
          }
        }
      }
    },
    "examples": {
      "example-1": {
        "summary": "Typical attraction",
        "value": {
          "request_id": "01fr9ez700exycb98w90w5r9sh",
          "data": [
            {
              "id": "PRTcWzDlwXjP",
              "breakdown": {
                "easy_to_access": {
                  "number_of_reviews": 182,
                  "score": 4.5
                },
                "facilities_rating": {
                  "number_of_reviews": 160,
                  "score": 4.7
                },
                "quality_of_service": {
                  "number_of_reviews": 175,
                  "score": 4.6
                },
                "value_of_experience": {
                  "number_of_reviews": 187,
                  "score": 4.8
                }
              }
            }
          ]
        }
      },
      "example-2": {
        "summary": "Attraction with few reviews",
        "value": {
          "request_id": "01fr9ez700exycb98w90w5r9si",
          "data": [
            {
              "id": "PRTcWzDlwXjP",
              "breakdown": {
                "easy_to_access": {
                  "number_of_reviews": 4,
                  "score": 4.1
                },
                "facilities_rating": {
                  "number_of_reviews": 3,
                  "score": 4.2
                },
                "quality_of_service": {
                  "number_of_reviews": 4,
                  "score": 3.8
                },
                "value_of_experience": {
                  "number_of_reviews": 5,
                  "score": 4
                }
              }
            }
          ]
        }
      },
      "example-3": {
        "summary": "New attraction with no reviews",
        "value": {
          "request_id": "01fr9ez700exycb98w90w5r9sj",
          "data": [
            {
              "id": "PRTcWzDlwXjP",
              "breakdown": {
                "easy_to_access": {
                  "number_of_reviews": 0,
                  "score": 0
                },
                "facilities_rating": {
                  "number_of_reviews": 0,
                  "score": 0
                },
                "quality_of_service": {
                  "number_of_reviews": 0,
                  "score": 0
                },
                "value_of_experience": {
                  "number_of_reviews": 0,
                  "score": 0
                }
              }
            }
          ]
        }
      },
      "input": {
        "query": "amsterdam",
        "language": "en-gb",
        "country": "nl",
        "filters": {
          "types": [
            "city"
          ]
        }
      },
      "output": {
        "request_id": "01khs9q981dta9fptx2edvq9r3",
        "data": [
          {
            "type": "city",
            "name": {
              "en-gb": "Amsterdam"
            },
            "id": "-2140479",
            "location": {
              "city": -2140479,
              "city_name": {
                "en-gb": "Amsterdam"
              },
              "coordinates": {
                "latitude": 52.378281,
                "longitude": 4.90007
              },
              "country": "nl",
              "country_name": {
                "en-gb": "Netherlands"
              }
            }
          },
          {
            "type": "hotel",
            "name": {
              "en-gb": "Hotel Zuiderduin"
            },
            "id": "10531",
            "location": {
              "city": -2143979,
              "city_name": {
                "en-gb": "Egmond aan Zee"
              },
              "coordinates": {
                "latitude": 52.6163698767988,
                "longitude": 4.62512746453285
              },
              "country": "nl",
              "country_name": {
                "en-gb": "Netherlands"
              }
            }
          }
        ]
      },
      "input_accommodation": {
        "accommodation": {
          "label": "Sample label",
          "products": [
            {
              "id": "333",
              "bed_configuration": "123456",
              "guests": [
                {
                  "email": "test.name@booking.com",
                  "name": "Test Name"
                }
              ]
            }
          ],
          "remarks": {
            "estimated_arrival_time": {
              "hour": 12
            },
            "special_requests": "We will need an extra cot."
          }
        },
        "booker": {
          "address": {
            "address_line": "Road-1, house-2",
            "city": "Amsterdam",
            "country": "nl",
            "post_code": "11111"
          },
          "company": "Booking B.V",
          "email": "test.name@booking.com",
          "language": "en-gb",
          "name": {
            "first_name": "Test",
            "last_name": "Name"
          },
          "telephone": "12345678"
        },
        "order_token": "sample-token",
        "payment": {
          "card": {
            "cardholder": "Test Name",
            "cvc": "111",
            "expiry_date": "2030-10",
            "number": "23333333333333"
          },
          "include_receipt": true,
          "method": "card",
          "timing": "pay_online_now"
        }
      },
      "input_car": {
        "car": {
          "driver": {
            "address": {
              "address_line1": "Road-1, house-2",
              "city": "Amsterdam",
              "country": "nl",
              "postcode": "11111"
            },
            "first_name": "Test",
            "last_name": "Name",
            "telephone": "12345678",
            "title": "Mr"
          }
        },
        "booker": {
          "address": {
            "address_line": "Road-1, house-2",
            "city": "Amsterdam",
            "country": "nl",
            "post_code": "11111"
          },
          "company": "Booking B.V",
          "email": "test.name@booking.com",
          "language": "en-gb",
          "name": {
            "first_name": "Test",
            "last_name": "Name"
          },
          "telephone": "12345678"
        },
        "order_token": "sample-token",
        "payment": {
          "card": {
            "cardholder": "Test Name",
            "cvc": "111",
            "expiry_date": "2030-10",
            "number": "23333333333333"
          },
          "include_receipt": false,
          "method": "card",
          "timing": "pay_at_pickup"
        }
      },
      "examples-output": {
        "request_id": "01fr9ez700exycb98w90w5r9sh",
        "data": {
          "order": "509430129718799",
          "accommodation": {
            "pincode": "0000",
            "reservation": "12345678",
            "third_party_inventory": {
              "checkin_number": "123456789",
              "confirmation_number": "12345678912345678912"
            }
          },
          "payment": {
            "receipt_url": "https://secure.booking.com/payment_receipt.html?bn=0000000000&pincode=0000&lang=en"
          }
        }
      },
      "details_examples-output": {
        "request_id": "01fr9ez700exycb98w90w5r9sh",
        "data": [
          {
            "id": "509430129718799",
            "accommodations": {
              "inventory": {
                "third_party": false,
                "type": "sell"
              },
              "location": {
                "address": "111 Street Road",
                "city": 20089219,
                "country": "us"
              },
              "name": "Test Booking Hotel USA",
              "number_of_guests": 2,
              "reservation": "12345677",
              "stay_probability": 0.12
            },
            "affiliate": 111111,
            "attractions": null,
            "booker": {
              "address": {
                "city": "Amsterdam",
                "country": "nl"
              },
              "email": "johndoe@booking.com",
              "language": "en-gb",
              "name": {
                "first_name": "john",
                "last_name": "doe"
              },
              "platform": "mobile",
              "telephone": "+100000000",
              "travel_purpose": "business"
            },
            "cars": {
              "pickup_location": {
                "city": "San Francisco",
                "country": "us"
              },
              "dropoff_location": {
                "city": "Los Angeles",
                "country": "us"
              },
              "payment": {
                "timing": "pay_at_pickup"
              },
              "reservation": "CAR-99887766"
            },
            "commission": {
              "actual_commission_amount": {
                "booker_currency": 17.5,
                "product_currency": 20.6
              },
              "actual_percentage": null,
              "estimated_commission_amount": {
                "booker_currency": null,
                "product_currency": null
              }
            },
            "created": "2025-11-28T02:00:00+00:00",
            "currencies": {
              "booker": "EUR",
              "product": "USD"
            },
            "end": "2026-03-28T02:00:00+00:00",
            "flights": null,
            "label": "One123",
            "loyalty_reward": [
              {
                "amount": 15,
                "currency": "USD",
                "eligible": true,
                "fulfillment_at": "2023-02-10",
                "fulfillment_by": "partner",
                "loyalty_data": [
                  {
                    "name": "Email Id",
                    "value": "john_doe@booking.com"
                  },
                  {
                    "name": "Loyalty ID",
                    "value": "10101010"
                  }
                ],
                "type": "point"
              }
            ],
            "price": {
              "commissionable_price": {
                "booker_currency": 160,
                "product_currency": 188.32
              },
              "total_price": {
                "booker_currency": 170.01,
                "product_currency": 200.1
              }
            },
            "start": "2026-03-21T02:00:00+00:00",
            "status": "booked",
            "taxis": null,
            "updated": "2025-11-28T02:00:00+00:00"
          }
        ],
        "metadata": {
          "next_page": null,
          "total_results": 1
        }
      },
      "accommodations_examples-output": {
        "summary": "Accommodation order details response",
        "value": {
          "request_id": "01fr9ez700exycb98w90w5r9sh",
          "data": [
            {
              "id": "509430129718799",
              "accommodation": 123456,
              "accommodation_details": {
                "email": "test_hotel@booking.com",
                "location": {
                  "address": "111 Street Road",
                  "city": 20089219,
                  "coordinates": {
                    "latitude": 11.923274,
                    "longitude": -92.716188
                  },
                  "country": "us",
                  "post_code": "NY 1234"
                },
                "name": "Test Booking Hotel USA",
                "telephone": "+19876543210"
              },
              "accommodation_order_references": [
                "12345",
                "ABED2312"
              ],
              "booker": {
                "external_account": "13610217",
                "platform": "mobile"
              },
              "cancellation_details": {
                "at": "2025-12-09T00:00:00+00:00",
                "fee": {
                  "accommodation_currency": 170.01,
                  "booker_currency": 186.87
                },
                "original_total_price": {
                  "accommodation_currency": 170.01,
                  "booker_currency": 186.87
                }
              },
              "checkin": "2025-12-10",
              "checkout": "2025-12-18",
              "commission": {
                "actual_amount": null,
                "actual_percentage": null,
                "estimated_amount": {
                  "accommodation_currency": 17.5,
                  "booker_currency": 19.23
                }
              },
              "credit_slip_number": "hsnl1223445",
              "currency": {
                "accommodation": "EUR",
                "booker": "USD"
              },
              "inventory": {
                "third_party": false,
                "type": "sell"
              },
              "key_collection_information": [
                {
                  "additional_instructions": "The keys are in a keybox located next to the front door.",
                  "alternate_location": {
                    "address": "abc",
                    "city": "bdweb",
                    "postal_code": "1015XX"
                  },
                  "checkin_method": "someone_will_meet",
                  "key_location": "at_the_property"
                }
              ],
              "label": "One123",
              "pin_code": "1234",
              "price": {
                "commissionable": {
                  "accommodation_currency": 164.01,
                  "booker_currency": 180.27
                },
                "total": {
                  "accommodation_currency": 170.01,
                  "booker_currency": 186.87
                }
              },
              "products": [
                {
                  "allocation": {
                    "adults": 2,
                    "children": [
                      3,
                      4,
                      5
                    ],
                    "guests": 5
                  },
                  "guests": [
                    {
                      "email": "test.name@booking.com",
                      "name": "Test Name"
                    }
                  ],
                  "policies": {
                    "cancellation": [
                      {
                        "from": null,
                        "price": {
                          "accommodation_currency": 170.01,
                          "booker_currency": 186.87
                        }
                      }
                    ],
                    "meal_plan": {
                      "meals": [
                        "breakfast"
                      ],
                      "plan": "breakfast_included"
                    },
                    "smoking_preference": "non-smoking"
                  },
                  "price": {
                    "base": {
                      "accommodation_currency": 170.01,
                      "booker_currency": 186.87
                    },
                    "display": {
                      "accommodation_currency": 200.97,
                      "booker_currency": 220.9
                    },
                    "charges": [
                      {
                        "charge": 142,
                        "mode": "per_person_per_night",
                        "percentage": null,
                        "total_amount": {
                          "accommodation_currency": 6,
                          "booker_currency": 6.6
                        },
                        "unit_amount": {
                          "accommodation_currency": 3,
                          "booker_currency": 3.3
                        },
                        "condition": null,
                        "included_in": {
                          "display": true
                        }
                      },
                      {
                        "charge": 21,
                        "mode": "percentage",
                        "percentage": 9,
                        "total_amount": {
                          "accommodation_currency": 14.04,
                          "booker_currency": 15.43
                        },
                        "unit_amount": null,
                        "condition": null,
                        "included_in": {
                          "display": true
                        }
                      },
                      {
                        "charge": 22,
                        "mode": "percentage",
                        "percentage": 7,
                        "total_amount": {
                          "accommodation_currency": 10.92,
                          "booker_currency": 12
                        },
                        "unit_amount": null,
                        "condition": null,
                        "included_in": {
                          "display": true
                        }
                      }
                    ],
                    "total": {
                      "accommodation_currency": 200.97,
                      "booker_currency": 220.9
                    }
                  },
                  "room": "12345",
                  "room_details": {
                    "name": "Double Deluxe Room"
                  },
                  "room_reservation": "1234567890",
                  "status": "booked"
                }
              ],
              "remarks": "We will need an extra cot. Need room on higher floor",
              "reservation": "12345678",
              "status": "booked",
              "stay_probability": 0.12
            }
          ]
        }
      }
    }
  },
  "x-tagGroups": [
    {
      "name": "Travel services",
      "tags": [
        "Accommodations",
        "Attractions",
        "Cars"
      ]
    },
    {
      "name": "Common",
      "tags": [
        "Common/autocomplete",
        "Common/locations",
        "Common/payments",
        "Common/languages"
      ]
    },
    {
      "name": "Orders",
      "tags": [
        "Orders"
      ]
    },
    {
      "name": "Messaging",
      "tags": [
        "Messages",
        "Conversations",
        "Attachments"
      ]
    }
  ]
}