changedInput schema / properties / adults / description
Previous value: -"Guests in the room; searches are for one room."New value: +"Adults (18+) sharing the one room searched for."
addedInput schema / properties / children_ages
Added value: +{
+ "default": [],
+ "description": "Ages (0–17) of children sharing that room, one entry per child, e.g. [6, 9]; empty for adults only.",
+ "items": {
+ "maximum": 17,
+ "minimum": 0,
+ "type": "integer"
+ },
+ "maxItems": 4,
+ "type": "array"
+}
addedInput schema / properties / min_rating_pct
Added value: +{
+ "default": 0,
+ "description": "Minimum guest rating in percent, e.g. 60 = 6.0/10 = 3.0/5. Default 0 (server setting); 0 turns the filter off. While on, hotels with no guest rating are left out.",
+ "maximum": 100,
+ "minimum": 0,
+ "type": "number"
+}
changedInput schema / properties / min_stars / description
Previous value: -"Minimum star rating."New value: +"Minimum hotel class (official stars)."
addedOutput schema / properties / anchor / description
Added value: +"The resolved search place."
addedOutput schema / properties / anchor / properties / code / description
Added value: +"Railway station code or airport IATA code (null when the place has none)."
addedOutput schema / properties / anchor / properties / context / description
Added value: +"Extra detail, e.g. the airport's city, the bus operator, a halt marker or the geocoder's locality."
addedOutput schema / properties / anchor / properties / kind / description
Added value: +"Kind of place: station, airport, bus_station, landmark, locality or point (raw coordinates)."
addedOutput schema / properties / anchor / properties / lat / description
Added value: +"Latitude."
addedOutput schema / properties / anchor / properties / lng / description
Added value: +"Longitude."
addedOutput schema / properties / anchor / properties / name / description
Added value: +"Place name."
addedOutput schema / properties / anchor / properties / source / description
Added value: +"Dataset or geocoder the place came from, e.g. openstreetmap, ourairports, or input for given coordinates."
addedOutput schema / properties / coverage
Added value: +{
+ "description": "What each source returned within the radius and what limited it; sources return limited pages.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "hotels": {
+ "description": "Hotels the source returned within the radius.",
+ "type": "number"
+ },
+ "max_km": {
+ "description": "Distance of the source's furthest hotel from the search place, km (null if it returned none).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "note": {
+ "description": "What limited the source's results, e.g. pages fetched.",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "priced": {
+ "description": "How many of those hotels the source priced.",
+ "type": "number"
+ },
+ "source": {
+ "description": "Id of the source.",
+ "type": "string"
+ }
+ },
+ "required": [
+ "source",
+ "hotels",
+ "priced",
+ "max_km",
+ "note"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+}
addedOutput schema / properties / hotels / description
Added value: +"This page of hotels, in the requested sort order."
addedOutput schema / properties / hotels / items / properties / also_ids / description
Added value: +"Ids (source:source_id) of the same hotel at other sources; each resolves to this hotel."
changedOutput schema / properties / hotels / items / properties / cheapest / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "available": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "currency": {
- "type": "string"
- },
- "fetched_at": {
- "type": "string"
- },
- "includes_taxes": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "per_night": {
- "type": "number"
- },
- "per_night_inr": {
- "type": [
- "number",
- "null"
- ]
- },
- "refundable": {
- "type": [
- "boolean",
- "null"
- ]
- },
- "seller": {
- "type": [
- "string",
- "null"
- ]
- },
- "source": {
- "type": "string"
- },
- "url": {
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "per_night_inr",
- "per_night",
- "currency",
- "seller",
- "source",
- "includes_taxes",
- "available",
- "refundable",
- "url",
- "fetched_at"
- ],
- "type": "object"
- },
- {
- "type": "null"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "per_night_inr": {
+ "description": "Per-night price in INR (null if no exchange rate).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "seller": {
+ "description": "Booking site of the price (null when the source names none).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "source": {
+ "description": "Source that quoted it; its section in sources has the details.",
+ "type": "string"
+ },
+ "url": {
+ "description": "Link to the offer, when given.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "per_night_inr",
+ "source",
+ "seller",
+ "url"
+ ],
+ "type": "object"
+ },
+ {
+ "type": "null"
+ }
+]
addedOutput schema / properties / hotels / items / properties / cheapest / description
Added value: +"Lowest bookable per-night INR price across sources; null when no source priced the hotel."
addedOutput schema / properties / hotels / items / properties / distance_km / description
Added value: +"Straight-line distance from the search place, km."
addedOutput schema / properties / hotels / items / properties / drive_minutes / description
Added value: +"Traffic-adjusted drive time from the search place, minutes (null without max_drive_minutes)."
addedOutput schema / properties / hotels / items / properties / hotel_id / description
Added value: +"Hotel id as source:source_id of the first source that listed it."
addedOutput schema / properties / hotels / items / properties / lat / description
Added value: +"Hotel latitude."
addedOutput schema / properties / hotels / items / properties / lng / description
Added value: +"Hotel longitude."
addedOutput schema / properties / hotels / items / properties / name / description
Added value: +"Hotel name as the first source gives it."
removedOutput schema / properties / hotels / items / properties / price_count
Removed value: -{
- "type": "number"
-}
addedOutput schema / properties / hotels / items / properties / rating_10 / description
Added value: +"Guest review score on a 0–10 scale, from the source with the most reviews (null if unrated)."
addedOutput schema / properties / hotels / items / properties / review_count / description
Added value: +"Number of guest reviews behind rating_10 (null if unknown)."
addedOutput schema / properties / hotels / items / properties / sources / description
Added value: +"Each source's own listing of this hotel (name, rating, details, link) with its offers, cheapest source first; up to 3 offers per source here (get_hotel_details lists all)."
addedOutput schema / properties / hotels / items / properties / sources / items / additionalProperties
Added value: +false
addedOutput schema / properties / hotels / items / properties / sources / items / properties
Added value: +{
+ "amenities": {
+ "description": "Amenities the source lists, in its own words.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "area": {
+ "description": "Area or locality the source places it in.",
+ "type": "string"
+ },
+ "cheapest_inr": {
+ "description": "Lowest per_night_inr among this source's bookable offers (null if none).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "check_in_time": {
+ "description": "Check-in time the source states.",
+ "type": "string"
+ },
+ "check_out_time": {
+ "description": "Check-out time the source states.",
+ "type": "string"
+ },
+ "details": {
+ "additionalProperties": false,
+ "description": "Further details from this source; get_hotel_details only.",
+ "properties": {
+ "address": {
+ "description": "Street address.",
+ "type": "string"
+ },
+ "category_scores": {
+ "description": "Review scores by category.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Category, e.g. Cleanliness.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Score on the source's own scale.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "score"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "cons": {
+ "description": "What reviews criticise, in the source's words.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "description": {
+ "description": "The source's description of the property.",
+ "type": "string"
+ },
+ "distance_to_centre": {
+ "description": "Distance to the city centre as the source words it, e.g. \"6.0 km to City centre\".",
+ "type": "string"
+ },
+ "excluded_amenities": {
+ "description": "Amenities the source says the property does not have.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "images": {
+ "description": "A few photo URLs.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "important_info": {
+ "description": "Conditions guests must know, e.g. ID required.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "labels": {
+ "description": "Badges the source shows.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "location_rating": {
+ "description": "Location score on a 0–5 scale (Google).",
+ "type": "number"
+ },
+ "nearby_places": {
+ "description": "Nearby places the source lists.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "name": {
+ "description": "Place.",
+ "type": "string"
+ },
+ "travel": {
+ "description": "How to get there, e.g. \"Walking 1 min\".",
+ "type": "string"
+ }
+ },
+ "required": [
+ "name"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "phone": {
+ "description": "Phone number.",
+ "type": "string"
+ },
+ "pros": {
+ "description": "What reviews praise, in the source's words.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "review_topics": {
+ "description": "Review topics with how often and how they are mentioned.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "mentions": {
+ "description": "How many reviews mention it.",
+ "type": "number"
+ },
+ "name": {
+ "description": "Topic, e.g. Location or Public transit.",
+ "type": "string"
+ },
+ "negative": {
+ "description": "How many of those are negative.",
+ "type": "number"
+ },
+ "positive": {
+ "description": "How many of those are positive.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "name",
+ "mentions"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "website": {
+ "description": "The property's own website.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "fetched_at": {
+ "description": "ISO time this source answered.",
+ "type": "string"
+ },
+ "name": {
+ "description": "Hotel name as this source gives it.",
+ "type": "string"
+ },
+ "offers": {
+ "description": "This source's offers for the stay and party, cheapest first.",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "available": {
+ "description": "Whether the source reports it bookable for these dates (null when not stated).",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "currency": {
+ "description": "ISO currency code of per_night and total, e.g. INR or EUR.",
+ "type": "string"
+ },
+ "includes_taxes": {
+ "description": "Whether the price includes taxes such as GST (null when the source does not say).",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "meal_plan": {
+ "description": "Meals included as the source states them, e.g. Room Only.",
+ "type": "string"
+ },
+ "per_night": {
+ "description": "Per-night price in the source's currency.",
+ "type": "number"
+ },
+ "per_night_inr": {
+ "description": "Per-night price converted to INR (null if no exchange rate).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "refundable": {
+ "description": "Whether the rate is refundable (null when not stated).",
+ "type": [
+ "boolean",
+ "null"
+ ]
+ },
+ "room": {
+ "description": "Room as the source names it (null when it does not say).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "seller": {
+ "description": "Booking site of the offer, e.g. Agoda (null when the source names none; then it sells the room itself).",
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "total": {
+ "description": "Price for the whole stay in that currency (null when not given).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "url": {
+ "description": "Link to the offer at the source, when given.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "seller",
+ "per_night_inr",
+ "per_night",
+ "currency",
+ "total",
+ "includes_taxes",
+ "refundable",
+ "available",
+ "room",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "offers_total": {
+ "description": "How many offers the source returned (offers may list fewer).",
+ "type": "number"
+ },
+ "property_type": {
+ "description": "Kind of property as the source labels it, e.g. Hotel, Homestay.",
+ "type": "string"
+ },
+ "rating_10": {
+ "description": "This source's guest rating on a 0–10 scale (5-point scales doubled); null if unrated.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "review_count": {
+ "description": "Number of reviews behind rating_10 at this source.",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "source": {
+ "description": "Data source id: trivago, hotelscasa, xotelo, serpapi (Google Hotels) or osm_lodging.",
+ "type": "string"
+ },
+ "source_id": {
+ "description": "The hotel's id at this source; source:source_id is one of the hotel's ids.",
+ "type": "string"
+ },
+ "stars": {
+ "description": "Hotel class this source gives, 1–5 stars (null if none).",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "typical_price": {
+ "additionalProperties": false,
+ "description": "The source's usual nightly price range for the property, independent of these dates.",
+ "properties": {
+ "currency": {
+ "description": "Currency of min and max.",
+ "type": "string"
+ },
+ "max": {
+ "description": "High end of the usual nightly price.",
+ "type": "number"
+ },
+ "min": {
+ "description": "Low end of the usual nightly price.",
+ "type": "number"
+ }
+ },
+ "required": [
+ "min",
+ "max",
+ "currency"
+ ],
+ "type": "object"
+ },
+ "url": {
+ "description": "The hotel's page at this source, when given.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+}
addedOutput schema / properties / hotels / items / properties / sources / items / required
Added value: +[
+ "source",
+ "source_id",
+ "name",
+ "rating_10",
+ "review_count",
+ "stars",
+ "url",
+ "cheapest_inr",
+ "offers",
+ "offers_total",
+ "fetched_at"
+]
changedOutput schema / properties / hotels / items / properties / sources / items / type
Previous value: -"string"New value: +"object"
addedOutput schema / properties / hotels / items / properties / stars / description
Added value: +"Official hotel class, 1–5 stars (null if unknown)."
changedOutput schema / properties / hotels / items / required
Previous value: -[
- "hotel_id",
- "also_ids",
- "name",
- "lat",
- "lng",
- "distance_km",
- "stars",
- "rating_10",
- "review_count",
- "cheapest",
- "price_count",
- "sources",
- "drive_minutes"
-]New value: +[
+ "hotel_id",
+ "also_ids",
+ "name",
+ "lat",
+ "lng",
+ "distance_km",
+ "stars",
+ "rating_10",
+ "review_count",
+ "cheapest",
+ "sources",
+ "drive_minutes"
+]
addedOutput schema / properties / notes / description
Added value: +"Caveats about the results, sources and attribution."
addedOutput schema / properties / query / description
Added value: +"The search as run."
addedOutput schema / properties / query / properties / adults / description
Added value: +"Adults in the one room searched for."
addedOutput schema / properties / query / properties / check_in / description
Added value: +"Check-in date, YYYY-MM-DD."
addedOutput schema / properties / query / properties / check_out / description
Added value: +"Check-out date, YYYY-MM-DD."
addedOutput schema / properties / query / properties / children_ages
Added value: +{
+ "description": "Ages of children sharing that room.",
+ "items": {
+ "type": "number"
+ },
+ "type": "array"
+}
addedOutput schema / properties / query / properties / radius_km / description
Added value: +"Radius searched, km; widened when max_drive_minutes needs it."
changedOutput schema / properties / query / required
Previous value: -[
- "radius_km",
- "check_in",
- "check_out",
- "adults"
-]New value: +[
+ "radius_km",
+ "check_in",
+ "check_out",
+ "adults",
+ "children_ages"
+]
addedOutput schema / properties / showing / description
Added value: +"Which slice of the results this page holds, e.g. 'Showing 1–10 of 42'."
addedOutput schema / properties / sources_failed / description
Added value: +"Sources that did not answer, and why."
addedOutput schema / properties / sources_failed / items / properties / code / description
Added value: +"Error code, e.g. UPSTREAM_UNAVAILABLE or RATE_LIMITED."
addedOutput schema / properties / sources_failed / items / properties / message / description
Added value: +"What went wrong."
addedOutput schema / properties / sources_failed / items / properties / source / description
Added value: +"Id of the source that failed."
addedOutput schema / properties / sources_ok / description
Added value: +"Ids of the sources that answered."
addedOutput schema / properties / total / description
Added value: +"Number of hotels matching all filters, across all pages."
changedOutput schema / required
Previous value: -[
- "anchor",
- "query",
- "showing",
- "total",
- "hotels",
- "sources_ok",
- "sources_failed",
- "notes"
-]New value: +[
+ "anchor",
+ "query",
+ "showing",
+ "total",
+ "hotels",
+ "sources_ok",
+ "sources_failed",
+ "coverage",
+ "notes"
+]