Skip to main content
Glama

EscapeStays by Luxury Lodging

Search Luxury Lodging homes

search_properties
Read-onlyIdempotent

Searches Luxury Lodging's directly bookable vacation rentals by destination, dates, group size, bedrooms and amenities. With dates, only homes confirmed available are returned, each with a stay total that includes cleaning, fees and taxes; nightly rates exclude them. Interchangeable units of the same type are returned once, with every unit's id listed in similar_units so any of them can still be quoted and booked; limit counts those results, while total_matching counts the individual homes confirmed available. A busy market can hold more homes than one request can price, so unpriced_in_time counts matching homes whose availability was not established: they are unknown, not unavailable, and unpriced_property_ids lists the property_id of up to 30 of them, each of which can be priced individually with a live quote. Pet-friendly searches also report pet_policy_unknown: otherwise matching homes with unverified pet policies, with or without dates. While either count is above zero, the results are not the whole market; price_all_matches, a higher limit, or a narrower place covers more of it. Without dates no price is returned. Each result carries accommodation_type and bathroom_sharing: a private room or shared room is not an entire home. Optional filters cover accommodation type, exact bedrooms, required amenities and a budget; results can be paged with cursor, and completeness is partial when a matching home was left unpriced or unchecked. A query that names a known landmark or area ("near McCormick Place") returns homes within radius_miles of it, nearest first, each with distance_miles and distance_type straight_line: a direct distance, not a driving or walking route.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1, counted in units of page_size. Cannot be sent together with cursor.
petsNoHow many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Results are limited to pet-friendly homes, dated totals include the pet fee for that many pets, and booking links keep the number of pets.
sortNototal_price_* needs dates and orders by the stay total; from_price_asc orders by a starting rate that is not returned, and with dates by the stay total; sleeps_desc puts the largest homes first.
limitNoHow many properties to return (default 8).
queryNoFree text place, e.g. 'Tampa', a neighbourhood, or a landmark such as 'near McCormick Place, Chicago'. A known Chicago landmark or area (McCormick Place, Navy Pier, Wrigley Field, O'Hare Airport, the South Loop and others) returns homes within radius_miles, nearest first, with a straight-line distance. Text that names no city, state, neighbourhood or landmark is refused with INVALID_INPUT; it is not answered as an empty, complete result.
budgetNoA spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.
cursorNoThe next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it.
guestsNoEveryone staying, including children and infants.
marketNoMarket or city name, when the guest named one exactly.
check_inNoCheck-in date, YYYY-MM-DD. Availability is checked only when both dates are given.
amenitiesNoAmenities every returned home has, as recorded by the property manager. The same hard filter as amenities_required, except a home with no amenity data is left out without being counted.
check_outNoCheck-out date, YYYY-MM-DD.
max_totalNoBudget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given.
page_sizeNoResults per page, up to 20. Takes the place of limit when both are sent.
bedrooms_minNoFewest bedrooms acceptable.
radius_milesNoHow far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place.
bathrooms_minNoFewest bathrooms acceptable.
bedrooms_exactNoExactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min.
price_all_matchesNoPrices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach.
accommodation_typeNoWhat the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown.
amenities_requiredNoAmenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown.
amenities_preferredNoAmenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
offsetNoHow many results precede this page in the full ordering.
statusNoNO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown.
matchesYesHow many results this response carries.
has_moreYesTrue when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this.
page_sizeNoHow many results this page asked for.
propertiesYes
next_cursorYesThe value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false.
completenessYescomplete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches.
search_scopeYesThe place actually searched and how it was read.
dates_checkedYesFalse means availability is unknown and no stay has been priced; no row carries a stay_total.
budget_appliedNoOnly returned when a budget was sent: what it was compared with.
total_matchingYesHow many individual homes matched, counting every interchangeable unit.
distance_unknownNoOnly on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius.
unpriced_in_timeYesMatching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them. These counts cover the whole search, not one page, and the homes they count are not part of any page. A later page quotes more homes, so the count can fall.
amenities_unknownNoOtherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent.
availability_noteYes
budget_unverifiedNoOtherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget.
searched_locationNo
pet_policy_unknownNoOtherwise matching homes omitted from a pet-friendly search because their pet policy is unknown, not confirmed to prohibit pets. Applies with or without dates; included in unpriced_in_time when dated. A positive count means the pet-friendly inventory is incomplete.
total_matching_groupsYesHow many distinct unit types matched.
unpriced_property_idsYesThe property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable.
accommodation_type_unknownNoOtherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent.
budget_unverified_property_idsNoThe property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed45 schema fields changed
    • addedInput schema / properties / accommodation_type
      Added value: +{
      +  "description": "What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown.",
      +  "enum": [
      +    "entire_home",
      +    "private_room",
      +    "shared_room"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager. The same hard filter as amenities_required, except a home with no amenity data is left out without being counted."
    • addedInput schema / properties / amenities_preferred
      Added value: +{
      +  "description": "Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results.",
      +  "items": {
      +    "enum": [
      +      "pool",
      +      "hot_tub",
      +      "parking",
      +      "wifi",
      +      "kitchen",
      +      "washer",
      +      "pets"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / amenities_required
      Added value: +{
      +  "description": "Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown.",
      +  "items": {
      +    "enum": [
      +      "pool",
      +      "hot_tub",
      +      "parking",
      +      "wifi",
      +      "kitchen",
      +      "washer",
      +      "pets"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / bedrooms_exact
      Added value: +{
      +  "description": "Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / budget
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.",
      +  "properties": {
      +    "amount": {
      +      "description": "The limit, in the stated currency.",
      +      "exclusiveMinimum": 0,
      +      "maximum": 1000000,
      +      "type": "number"
      +    },
      +    "currency": {
      +      "description": "Only USD is supported.",
      +      "enum": [
      +        "USD"
      +      ],
      +      "type": "string"
      +    },
      +    "scope": {
      +      "description": "total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes.",
      +      "enum": [
      +        "total",
      +        "nightly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "amount",
      +    "currency",
      +    "scope"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it.",
      +  "type": "string"
      +}
    • changedInput schema / properties / guests / description
      Previous value: -"Number of guests, including children."New value: +"Everyone staying, including children and infants."
    • addedInput schema / properties / page
      Added value: +{
      +  "description": "Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / page_size
      Added value: +{
      +  "description": "Results per page, up to 20. Takes the place of limit when both are sent.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."New value: +"How many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Results are limited to pet-friendly homes, dated totals include the pet fee for that many pets, and booking links keep the number of pets."
    • addedInput schema / properties / pets / maximum
      Added value: +4
    • addedInput schema / properties / pets / minimum
      Added value: +0
    • changedInput schema / properties / pets / type
      Previous value: -"boolean"New value: +[
      +  "integer",
      +  "boolean"
      +]
    • changedInput schema / properties / query / description
      Previous value: -"Free text place, e.g. 'Tampa', 'near Chicago downtown', a neighbourhood or a landmark."New value: +"Free text place, e.g. 'Tampa', a neighbourhood, or a landmark such as 'near McCormick Place, Chicago'. A known Chicago landmark or area (McCormick Place, Navy Pier, Wrigley Field, O'Hare Airport, the South Loop and others) returns homes within radius_miles, nearest first, with a straight-line distance. Text that names no city, state, neighbourhood or landmark is refused with INVALID_INPUT; it is not answered as an empty, complete result."
    • addedInput schema / properties / radius_miles
      Added value: +{
      +  "description": "How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place.",
      +  "maximum": 25,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / sort / description
      Previous value: -"total_price_* needs dates and orders by the stay total; from_price_asc orders by starting nightly rate; sleeps_desc puts the largest homes first."New value: +"total_price_* needs dates and orders by the stay total; from_price_asc orders by a starting rate that is not returned, and with dates by the stay total; sleeps_desc puts the largest homes first."
    • addedOutput schema / properties / accommodation_type_unknown
      Added value: +{
      +  "description": "Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / amenities_unknown
      Added value: +{
      +  "description": "Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budget_applied
      Added value: +{
      +  "description": "Only returned when a budget was sent: what it was compared with.",
      +  "properties": {
      +    "amount": {
      +      "type": "number"
      +    },
      +    "compared_to": {
      +      "description": "stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them.",
      +      "enum": [
      +        "stay_total",
      +        "from_price_per_night"
      +      ],
      +      "type": "string"
      +    },
      +    "currency": {
      +      "type": "string"
      +    },
      +    "homes_not_checked": {
      +      "description": "Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one.",
      +      "type": "integer"
      +    },
      +    "includes_fees_and_taxes": {
      +      "type": "boolean"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "scope": {
      +      "enum": [
      +        "total",
      +        "nightly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "scope",
      +    "amount",
      +    "currency",
      +    "compared_to",
      +    "includes_fees_and_taxes",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / budget_unverified
      Added value: +{
      +  "description": "Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budget_unverified_property_ids
      Added value: +{
      +  "description": "The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • addedOutput schema / properties / completeness
      Added value: +{
      +  "description": "complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches.",
      +  "enum": [
      +    "complete",
      +    "partial"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / distance_unknown
      Added value: +{
      +  "description": "Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "description": "The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "How many results precede this page in the full ordering.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / page_size
      Added value: +{
      +  "description": "How many results this page asked for.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / properties / items / properties / accommodation_type
      Added value: +{
      +  "description": "What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home.",
      +  "enum": [
      +    "entire_home",
      +    "private_room",
      +    "shared_room",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / availability_status
      Added value: +{
      +  "description": "available: confirmed available for the requested dates when this answer was produced. not_checked: no dates were given, so availability was not checked.",
      +  "enum": [
      +    "available",
      +    "not_checked"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / bathroom_sharing
      Added value: +{
      +  "description": "Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home.",
      +  "enum": [
      +    "private",
      +    "shared",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / content_updated_at
      Added value: +{
      +  "description": "When the property manager's record of this home last changed, ISO 8601, as the provider states it. Omitted when the provider gives no such time.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / data_checked_at
      Added value: +{
      +  "description": "When this home's availability and price were fetched, ISO 8601. Only present on a row whose stay was priced.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / distance_miles
      Added value: +{
      +  "description": "Only on a landmark or area search: how far this home is from it, in miles, rounded to the nearest 0.5 (0.5 means under 0.5 mile), as a straight line over the ground, not a driving or walking route.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / properties / items / properties / distance_type
      Added value: +{
      +  "description": "Only with distance_miles: how the distance was measured. straight_line is the direct distance, shorter than any route.",
      +  "enum": [
      +    "straight_line"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."New value: +"Deprecated, no longer returned along with from_price_per_night."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Deprecated, no longer returned: only a row with a confirmed stay_total carries a price. Kept in this schema so existing clients still validate."
    • addedOutput schema / properties / properties / items / properties / match_reasons
      Added value: +{
      +  "description": "Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". On a landmark search the first is the distance, e.g. \"1.5 mi from McCormick Place (straight line)\" or \"under 0.5 mi from McCormick Place (straight line)\". Empty when no filter was sent.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / properties / items / properties / missing_or_unverified
      Added value: +{
      +  "description": "Facts about this home that could not be verified, drawn from: pet policy, amenities, accommodation type.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "property_id",
      -  "name",
      -  "city",
      -  "top_amenities",
      -  "review_count",
      -  "review_sources",
      -  "highlights",
      -  "booking_url"
      -]New value: +[
      +  "property_id",
      +  "name",
      +  "city",
      +  "top_amenities",
      +  "review_count",
      +  "review_sources",
      +  "highlights",
      +  "booking_url",
      +  "match_reasons",
      +  "availability_status",
      +  "missing_or_unverified"
      +]
    • addedOutput schema / properties / search_scope
      Added value: +{
      +  "description": "The place actually searched and how it was read.",
      +  "properties": {
      +    "place": {
      +      "description": "The place searched; null when no place was given and every home was searched.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "radius_miles": {
      +      "description": "How far from its centre or point homes are included; given for a metro, landmark or area.",
      +      "type": "number"
      +    },
      +    "type": {
      +      "description": "metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop.",
      +      "enum": [
      +        "all_homes",
      +        "metro",
      +        "state",
      +        "city",
      +        "nearby_or_text",
      +        "landmark",
      +        "area"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "place",
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown.",
      +  "enum": [
      +    "OK",
      +    "NO_MATCHES"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them. These counts cover the whole search, not one page, and the homes they count are not part of any page. A later page quotes more homes, so the count can fall."
    • addedOutput schema / properties / unpriced_property_ids
      Added value: +{
      +  "description": "The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "matches",
      -  "total_matching",
      -  "total_matching_groups",
      -  "unpriced_in_time",
      -  "dates_checked",
      -  "availability_note",
      -  "properties"
      -]New value: +[
      +  "matches",
      +  "total_matching",
      +  "total_matching_groups",
      +  "unpriced_in_time",
      +  "unpriced_property_ids",
      +  "dates_checked",
      +  "availability_note",
      +  "properties",
      +  "completeness",
      +  "search_scope",
      +  "has_more",
      +  "next_cursor"
      +]
  2. Changed45 schema fields changed
    • removedInput schema / properties / accommodation_type
      Removed value: -{
      -  "description": "What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown.",
      -  "enum": [
      -    "entire_home",
      -    "private_room",
      -    "shared_room"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager. The same hard filter as amenities_required, except a home with no amenity data is left out without being counted."New value: +"Amenities every returned home has, as recorded by the property manager."
    • removedInput schema / properties / amenities_preferred
      Removed value: -{
      -  "description": "Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results.",
      -  "items": {
      -    "enum": [
      -      "pool",
      -      "hot_tub",
      -      "parking",
      -      "wifi",
      -      "kitchen",
      -      "washer",
      -      "pets"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / amenities_required
      Removed value: -{
      -  "description": "Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown.",
      -  "items": {
      -    "enum": [
      -      "pool",
      -      "hot_tub",
      -      "parking",
      -      "wifi",
      -      "kitchen",
      -      "washer",
      -      "pets"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / bedrooms_exact
      Removed value: -{
      -  "description": "Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min.",
      -  "maximum": 100,
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedInput schema / properties / budget
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.",
      -  "properties": {
      -    "amount": {
      -      "description": "The limit, in the stated currency.",
      -      "exclusiveMinimum": 0,
      -      "maximum": 1000000,
      -      "type": "number"
      -    },
      -    "currency": {
      -      "description": "Only USD is supported.",
      -      "enum": [
      -        "USD"
      -      ],
      -      "type": "string"
      -    },
      -    "scope": {
      -      "description": "total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes.",
      -      "enum": [
      -        "total",
      -        "nightly"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "currency",
      -    "scope"
      -  ],
      -  "type": "object"
      -}
    • removedInput schema / properties / cursor
      Removed value: -{
      -  "description": "The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it.",
      -  "type": "string"
      -}
    • changedInput schema / properties / guests / description
      Previous value: -"Everyone staying, including children and infants."New value: +"Number of guests, including children."
    • removedInput schema / properties / page
      Removed value: -{
      -  "description": "Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor.",
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • removedInput schema / properties / page_size
      Removed value: -{
      -  "description": "Results per page, up to 20. Takes the place of limit when both are sent.",
      -  "maximum": 20,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / pets / description
      Previous value: -"How many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Results are limited to pet-friendly homes, dated totals include the pet fee for that many pets, and booking links keep the number of pets."New value: +"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."
    • removedInput schema / properties / pets / maximum
      Removed value: -4
    • removedInput schema / properties / pets / minimum
      Removed value: -0
    • changedInput schema / properties / pets / type
      Previous value: -[
      -  "integer",
      -  "boolean"
      -]New value: +"boolean"
    • changedInput schema / properties / query / description
      Previous value: -"Free text place, e.g. 'Tampa', a neighbourhood, or a landmark such as 'near McCormick Place, Chicago'. A known Chicago landmark or area (McCormick Place, Navy Pier, Wrigley Field, O'Hare Airport, the South Loop and others) returns homes within radius_miles, nearest first, with a straight-line distance. Text that names no city, state, neighbourhood or landmark is refused with INVALID_INPUT; it is not answered as an empty, complete result."New value: +"Free text place, e.g. 'Tampa', 'near Chicago downtown', a neighbourhood or a landmark."
    • removedInput schema / properties / radius_miles
      Removed value: -{
      -  "description": "How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place.",
      -  "maximum": 25,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / sort / description
      Previous value: -"total_price_* needs dates and orders by the stay total; from_price_asc orders by a starting rate that is not returned, and with dates by the stay total; sleeps_desc puts the largest homes first."New value: +"total_price_* needs dates and orders by the stay total; from_price_asc orders by starting nightly rate; sleeps_desc puts the largest homes first."
    • removedOutput schema / properties / accommodation_type_unknown
      Removed value: -{
      -  "description": "Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / amenities_unknown
      Removed value: -{
      -  "description": "Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / budget_applied
      Removed value: -{
      -  "description": "Only returned when a budget was sent: what it was compared with.",
      -  "properties": {
      -    "amount": {
      -      "type": "number"
      -    },
      -    "compared_to": {
      -      "description": "stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them.",
      -      "enum": [
      -        "stay_total",
      -        "from_price_per_night"
      -      ],
      -      "type": "string"
      -    },
      -    "currency": {
      -      "type": "string"
      -    },
      -    "homes_not_checked": {
      -      "description": "Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one.",
      -      "type": "integer"
      -    },
      -    "includes_fees_and_taxes": {
      -      "type": "boolean"
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "scope": {
      -      "enum": [
      -        "total",
      -        "nightly"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "scope",
      -    "amount",
      -    "currency",
      -    "compared_to",
      -    "includes_fees_and_taxes",
      -    "note"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / budget_unverified
      Removed value: -{
      -  "description": "Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / budget_unverified_property_ids
      Removed value: -{
      -  "description": "The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote.",
      -  "items": {
      -    "type": "integer"
      -  },
      -  "maxItems": 30,
      -  "type": "array"
      -}
    • removedOutput schema / properties / completeness
      Removed value: -{
      -  "description": "complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches.",
      -  "enum": [
      -    "complete",
      -    "partial"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / distance_unknown
      Removed value: -{
      -  "description": "Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / has_more
      Removed value: -{
      -  "description": "True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / next_cursor
      Removed value: -{
      -  "description": "The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / offset
      Removed value: -{
      -  "description": "How many results precede this page in the full ordering.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / page_size
      Removed value: -{
      -  "description": "How many results this page asked for.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / properties / items / properties / accommodation_type
      Removed value: -{
      -  "description": "What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home.",
      -  "enum": [
      -    "entire_home",
      -    "private_room",
      -    "shared_room",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / availability_status
      Removed value: -{
      -  "description": "available: confirmed available for the requested dates when this answer was produced. not_checked: no dates were given, so availability was not checked.",
      -  "enum": [
      -    "available",
      -    "not_checked"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / bathroom_sharing
      Removed value: -{
      -  "description": "Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home.",
      -  "enum": [
      -    "private",
      -    "shared",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / content_updated_at
      Removed value: -{
      -  "description": "When the property manager's record of this home last changed, ISO 8601, as the provider states it. Omitted when the provider gives no such time.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / data_checked_at
      Removed value: -{
      -  "description": "When this home's availability and price were fetched, ISO 8601. Only present on a row whose stay was priced.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / distance_miles
      Removed value: -{
      -  "description": "Only on a landmark or area search: how far this home is from it, in miles, rounded to the nearest 0.5 (0.5 means under 0.5 mile), as a straight line over the ground, not a driving or walking route.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / properties / items / properties / distance_type
      Removed value: -{
      -  "description": "Only with distance_miles: how the distance was measured. straight_line is the direct distance, shorter than any route.",
      -  "enum": [
      -    "straight_line"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Deprecated, no longer returned along with from_price_per_night."New value: +"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Deprecated, no longer returned: only a row with a confirmed stay_total carries a price. Kept in this schema so existing clients still validate."New value: +"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
    • removedOutput schema / properties / properties / items / properties / match_reasons
      Removed value: -{
      -  "description": "Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". On a landmark search the first is the distance, e.g. \"1.5 mi from McCormick Place (straight line)\" or \"under 0.5 mi from McCormick Place (straight line)\". Empty when no filter was sent.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / properties / items / properties / missing_or_unverified
      Removed value: -{
      -  "description": "Facts about this home that could not be verified, drawn from: pet policy, amenities, accommodation type.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "property_id",
      -  "name",
      -  "city",
      -  "top_amenities",
      -  "review_count",
      -  "review_sources",
      -  "highlights",
      -  "booking_url",
      -  "match_reasons",
      -  "availability_status",
      -  "missing_or_unverified"
      -]New value: +[
      +  "property_id",
      +  "name",
      +  "city",
      +  "top_amenities",
      +  "review_count",
      +  "review_sources",
      +  "highlights",
      +  "booking_url"
      +]
    • removedOutput schema / properties / search_scope
      Removed value: -{
      -  "description": "The place actually searched and how it was read.",
      -  "properties": {
      -    "place": {
      -      "description": "The place searched; null when no place was given and every home was searched.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "radius_miles": {
      -      "description": "How far from its centre or point homes are included; given for a metro, landmark or area.",
      -      "type": "number"
      -    },
      -    "type": {
      -      "description": "metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop.",
      -      "enum": [
      -        "all_homes",
      -        "metro",
      -        "state",
      -        "city",
      -        "nearby_or_text",
      -        "landmark",
      -        "area"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "place",
      -    "type"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "description": "NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown.",
      -  "enum": [
      -    "OK",
      -    "NO_MATCHES"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them. These counts cover the whole search, not one page, and the homes they count are not part of any page. A later page quotes more homes, so the count can fall."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."
    • removedOutput schema / properties / unpriced_property_ids
      Removed value: -{
      -  "description": "The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable.",
      -  "items": {
      -    "type": "integer"
      -  },
      -  "maxItems": 30,
      -  "type": "array"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "matches",
      -  "total_matching",
      -  "total_matching_groups",
      -  "unpriced_in_time",
      -  "unpriced_property_ids",
      -  "dates_checked",
      -  "availability_note",
      -  "properties",
      -  "completeness",
      -  "search_scope",
      -  "has_more",
      -  "next_cursor"
      -]New value: +[
      +  "matches",
      +  "total_matching",
      +  "total_matching_groups",
      +  "unpriced_in_time",
      +  "dates_checked",
      +  "availability_note",
      +  "properties"
      +]
  3. Changed45 schema fields changed
    • addedInput schema / properties / accommodation_type
      Added value: +{
      +  "description": "What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown.",
      +  "enum": [
      +    "entire_home",
      +    "private_room",
      +    "shared_room"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager. The same hard filter as amenities_required, except a home with no amenity data is left out without being counted."
    • addedInput schema / properties / amenities_preferred
      Added value: +{
      +  "description": "Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results.",
      +  "items": {
      +    "enum": [
      +      "pool",
      +      "hot_tub",
      +      "parking",
      +      "wifi",
      +      "kitchen",
      +      "washer",
      +      "pets"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / amenities_required
      Added value: +{
      +  "description": "Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown.",
      +  "items": {
      +    "enum": [
      +      "pool",
      +      "hot_tub",
      +      "parking",
      +      "wifi",
      +      "kitchen",
      +      "washer",
      +      "pets"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / bedrooms_exact
      Added value: +{
      +  "description": "Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / budget
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.",
      +  "properties": {
      +    "amount": {
      +      "description": "The limit, in the stated currency.",
      +      "exclusiveMinimum": 0,
      +      "maximum": 1000000,
      +      "type": "number"
      +    },
      +    "currency": {
      +      "description": "Only USD is supported.",
      +      "enum": [
      +        "USD"
      +      ],
      +      "type": "string"
      +    },
      +    "scope": {
      +      "description": "total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes.",
      +      "enum": [
      +        "total",
      +        "nightly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "amount",
      +    "currency",
      +    "scope"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it.",
      +  "type": "string"
      +}
    • changedInput schema / properties / guests / description
      Previous value: -"Number of guests, including children."New value: +"Everyone staying, including children and infants."
    • addedInput schema / properties / page
      Added value: +{
      +  "description": "Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / page_size
      Added value: +{
      +  "description": "Results per page, up to 20. Takes the place of limit when both are sent.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."New value: +"How many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Results are limited to pet-friendly homes, dated totals include the pet fee for that many pets, and booking links keep the number of pets."
    • addedInput schema / properties / pets / maximum
      Added value: +4
    • addedInput schema / properties / pets / minimum
      Added value: +0
    • changedInput schema / properties / pets / type
      Previous value: -"boolean"New value: +[
      +  "integer",
      +  "boolean"
      +]
    • changedInput schema / properties / query / description
      Previous value: -"Free text place, e.g. 'Tampa', 'near Chicago downtown', a neighbourhood or a landmark."New value: +"Free text place, e.g. 'Tampa', a neighbourhood, or a landmark such as 'near McCormick Place, Chicago'. A known Chicago landmark or area (McCormick Place, Navy Pier, Wrigley Field, O'Hare Airport, the South Loop and others) returns homes within radius_miles, nearest first, with a straight-line distance. Text that names no city, state, neighbourhood or landmark is refused with INVALID_INPUT; it is not answered as an empty, complete result."
    • addedInput schema / properties / radius_miles
      Added value: +{
      +  "description": "How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place.",
      +  "maximum": 25,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / sort / description
      Previous value: -"total_price_* needs dates and orders by the stay total; from_price_asc orders by starting nightly rate; sleeps_desc puts the largest homes first."New value: +"total_price_* needs dates and orders by the stay total; from_price_asc orders by a starting rate that is not returned, and with dates by the stay total; sleeps_desc puts the largest homes first."
    • addedOutput schema / properties / accommodation_type_unknown
      Added value: +{
      +  "description": "Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / amenities_unknown
      Added value: +{
      +  "description": "Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budget_applied
      Added value: +{
      +  "description": "Only returned when a budget was sent: what it was compared with.",
      +  "properties": {
      +    "amount": {
      +      "type": "number"
      +    },
      +    "compared_to": {
      +      "description": "stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them.",
      +      "enum": [
      +        "stay_total",
      +        "from_price_per_night"
      +      ],
      +      "type": "string"
      +    },
      +    "currency": {
      +      "type": "string"
      +    },
      +    "homes_not_checked": {
      +      "description": "Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one.",
      +      "type": "integer"
      +    },
      +    "includes_fees_and_taxes": {
      +      "type": "boolean"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "scope": {
      +      "enum": [
      +        "total",
      +        "nightly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "scope",
      +    "amount",
      +    "currency",
      +    "compared_to",
      +    "includes_fees_and_taxes",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / budget_unverified
      Added value: +{
      +  "description": "Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budget_unverified_property_ids
      Added value: +{
      +  "description": "The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • addedOutput schema / properties / completeness
      Added value: +{
      +  "description": "complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches.",
      +  "enum": [
      +    "complete",
      +    "partial"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / distance_unknown
      Added value: +{
      +  "description": "Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "description": "The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "How many results precede this page in the full ordering.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / page_size
      Added value: +{
      +  "description": "How many results this page asked for.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / properties / items / properties / accommodation_type
      Added value: +{
      +  "description": "What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home.",
      +  "enum": [
      +    "entire_home",
      +    "private_room",
      +    "shared_room",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / availability_status
      Added value: +{
      +  "description": "available: confirmed available for the requested dates when this answer was produced. not_checked: no dates were given, so availability was not checked.",
      +  "enum": [
      +    "available",
      +    "not_checked"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / bathroom_sharing
      Added value: +{
      +  "description": "Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home.",
      +  "enum": [
      +    "private",
      +    "shared",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / content_updated_at
      Added value: +{
      +  "description": "When the property manager's record of this home last changed, ISO 8601, as the provider states it. Omitted when the provider gives no such time.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / data_checked_at
      Added value: +{
      +  "description": "When this home's availability and price were fetched, ISO 8601. Only present on a row whose stay was priced.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / distance_miles
      Added value: +{
      +  "description": "Only on a landmark or area search: how far this home is from it, in miles, rounded to the nearest 0.5 (0.5 means under 0.5 mile), as a straight line over the ground, not a driving or walking route.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / properties / items / properties / distance_type
      Added value: +{
      +  "description": "Only with distance_miles: how the distance was measured. straight_line is the direct distance, shorter than any route.",
      +  "enum": [
      +    "straight_line"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."New value: +"Deprecated, no longer returned along with from_price_per_night."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Deprecated, no longer returned: only a row with a confirmed stay_total carries a price. Kept in this schema so existing clients still validate."
    • addedOutput schema / properties / properties / items / properties / match_reasons
      Added value: +{
      +  "description": "Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". On a landmark search the first is the distance, e.g. \"1.5 mi from McCormick Place (straight line)\" or \"under 0.5 mi from McCormick Place (straight line)\". Empty when no filter was sent.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / properties / items / properties / missing_or_unverified
      Added value: +{
      +  "description": "Facts about this home that could not be verified, drawn from: pet policy, amenities, accommodation type.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "property_id",
      -  "name",
      -  "city",
      -  "top_amenities",
      -  "review_count",
      -  "review_sources",
      -  "highlights",
      -  "booking_url"
      -]New value: +[
      +  "property_id",
      +  "name",
      +  "city",
      +  "top_amenities",
      +  "review_count",
      +  "review_sources",
      +  "highlights",
      +  "booking_url",
      +  "match_reasons",
      +  "availability_status",
      +  "missing_or_unverified"
      +]
    • addedOutput schema / properties / search_scope
      Added value: +{
      +  "description": "The place actually searched and how it was read.",
      +  "properties": {
      +    "place": {
      +      "description": "The place searched; null when no place was given and every home was searched.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "radius_miles": {
      +      "description": "How far from its centre or point homes are included; given for a metro, landmark or area.",
      +      "type": "number"
      +    },
      +    "type": {
      +      "description": "metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop.",
      +      "enum": [
      +        "all_homes",
      +        "metro",
      +        "state",
      +        "city",
      +        "nearby_or_text",
      +        "landmark",
      +        "area"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "place",
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown.",
      +  "enum": [
      +    "OK",
      +    "NO_MATCHES"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them. These counts cover the whole search, not one page, and the homes they count are not part of any page. A later page quotes more homes, so the count can fall."
    • addedOutput schema / properties / unpriced_property_ids
      Added value: +{
      +  "description": "The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "matches",
      -  "total_matching",
      -  "total_matching_groups",
      -  "unpriced_in_time",
      -  "dates_checked",
      -  "availability_note",
      -  "properties"
      -]New value: +[
      +  "matches",
      +  "total_matching",
      +  "total_matching_groups",
      +  "unpriced_in_time",
      +  "unpriced_property_ids",
      +  "dates_checked",
      +  "availability_note",
      +  "properties",
      +  "completeness",
      +  "search_scope",
      +  "has_more",
      +  "next_cursor"
      +]
  4. Changed45 schema fields changed
    • removedInput schema / properties / accommodation_type
      Removed value: -{
      -  "description": "What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown.",
      -  "enum": [
      -    "entire_home",
      -    "private_room",
      -    "shared_room"
      -  ],
      -  "type": "string"
      -}
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager. The same hard filter as amenities_required, except a home with no amenity data is left out without being counted."New value: +"Amenities every returned home has, as recorded by the property manager."
    • removedInput schema / properties / amenities_preferred
      Removed value: -{
      -  "description": "Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results.",
      -  "items": {
      -    "enum": [
      -      "pool",
      -      "hot_tub",
      -      "parking",
      -      "wifi",
      -      "kitchen",
      -      "washer",
      -      "pets"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / amenities_required
      Removed value: -{
      -  "description": "Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown.",
      -  "items": {
      -    "enum": [
      -      "pool",
      -      "hot_tub",
      -      "parking",
      -      "wifi",
      -      "kitchen",
      -      "washer",
      -      "pets"
      -    ],
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / bedrooms_exact
      Removed value: -{
      -  "description": "Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min.",
      -  "maximum": 100,
      -  "minimum": 0,
      -  "type": "integer"
      -}
    • removedInput schema / properties / budget
      Removed value: -{
      -  "additionalProperties": false,
      -  "description": "A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.",
      -  "properties": {
      -    "amount": {
      -      "description": "The limit, in the stated currency.",
      -      "exclusiveMinimum": 0,
      -      "maximum": 1000000,
      -      "type": "number"
      -    },
      -    "currency": {
      -      "description": "Only USD is supported.",
      -      "enum": [
      -        "USD"
      -      ],
      -      "type": "string"
      -    },
      -    "scope": {
      -      "description": "total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes.",
      -      "enum": [
      -        "total",
      -        "nightly"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "amount",
      -    "currency",
      -    "scope"
      -  ],
      -  "type": "object"
      -}
    • removedInput schema / properties / cursor
      Removed value: -{
      -  "description": "The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it.",
      -  "type": "string"
      -}
    • changedInput schema / properties / guests / description
      Previous value: -"Everyone staying, including children and infants."New value: +"Number of guests, including children."
    • removedInput schema / properties / page
      Removed value: -{
      -  "description": "Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor.",
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • removedInput schema / properties / page_size
      Removed value: -{
      -  "description": "Results per page, up to 20. Takes the place of limit when both are sent.",
      -  "maximum": 20,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / pets / description
      Previous value: -"How many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Results are limited to pet-friendly homes, dated totals include the pet fee for that many pets, and booking links keep the number of pets."New value: +"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."
    • removedInput schema / properties / pets / maximum
      Removed value: -4
    • removedInput schema / properties / pets / minimum
      Removed value: -0
    • changedInput schema / properties / pets / type
      Previous value: -[
      -  "integer",
      -  "boolean"
      -]New value: +"boolean"
    • changedInput schema / properties / query / description
      Previous value: -"Free text place, e.g. 'Tampa', a neighbourhood, or a landmark such as 'near McCormick Place, Chicago'. A known Chicago landmark or area (McCormick Place, Navy Pier, Wrigley Field, O'Hare Airport, the South Loop and others) returns homes within radius_miles, nearest first, with a straight-line distance. Text that names no city, state, neighbourhood or landmark is refused with INVALID_INPUT; it is not answered as an empty, complete result."New value: +"Free text place, e.g. 'Tampa', 'near Chicago downtown', a neighbourhood or a landmark."
    • removedInput schema / properties / radius_miles
      Removed value: -{
      -  "description": "How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place.",
      -  "maximum": 25,
      -  "minimum": 1,
      -  "type": "integer"
      -}
    • changedInput schema / properties / sort / description
      Previous value: -"total_price_* needs dates and orders by the stay total; from_price_asc orders by a starting rate that is not returned, and with dates by the stay total; sleeps_desc puts the largest homes first."New value: +"total_price_* needs dates and orders by the stay total; from_price_asc orders by starting nightly rate; sleeps_desc puts the largest homes first."
    • removedOutput schema / properties / accommodation_type_unknown
      Removed value: -{
      -  "description": "Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / amenities_unknown
      Removed value: -{
      -  "description": "Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / budget_applied
      Removed value: -{
      -  "description": "Only returned when a budget was sent: what it was compared with.",
      -  "properties": {
      -    "amount": {
      -      "type": "number"
      -    },
      -    "compared_to": {
      -      "description": "stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them.",
      -      "enum": [
      -        "stay_total",
      -        "from_price_per_night"
      -      ],
      -      "type": "string"
      -    },
      -    "currency": {
      -      "type": "string"
      -    },
      -    "homes_not_checked": {
      -      "description": "Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one.",
      -      "type": "integer"
      -    },
      -    "includes_fees_and_taxes": {
      -      "type": "boolean"
      -    },
      -    "note": {
      -      "type": "string"
      -    },
      -    "scope": {
      -      "enum": [
      -        "total",
      -        "nightly"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "scope",
      -    "amount",
      -    "currency",
      -    "compared_to",
      -    "includes_fees_and_taxes",
      -    "note"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / budget_unverified
      Removed value: -{
      -  "description": "Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / budget_unverified_property_ids
      Removed value: -{
      -  "description": "The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote.",
      -  "items": {
      -    "type": "integer"
      -  },
      -  "maxItems": 30,
      -  "type": "array"
      -}
    • removedOutput schema / properties / completeness
      Removed value: -{
      -  "description": "complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches.",
      -  "enum": [
      -    "complete",
      -    "partial"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / distance_unknown
      Removed value: -{
      -  "description": "Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / has_more
      Removed value: -{
      -  "description": "True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this.",
      -  "type": "boolean"
      -}
    • removedOutput schema / properties / next_cursor
      Removed value: -{
      -  "description": "The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false.",
      -  "type": [
      -    "string",
      -    "null"
      -  ]
      -}
    • removedOutput schema / properties / offset
      Removed value: -{
      -  "description": "How many results precede this page in the full ordering.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / page_size
      Removed value: -{
      -  "description": "How many results this page asked for.",
      -  "type": "integer"
      -}
    • removedOutput schema / properties / properties / items / properties / accommodation_type
      Removed value: -{
      -  "description": "What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home.",
      -  "enum": [
      -    "entire_home",
      -    "private_room",
      -    "shared_room",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / availability_status
      Removed value: -{
      -  "description": "available: confirmed available for the requested dates when this answer was produced. not_checked: no dates were given, so availability was not checked.",
      -  "enum": [
      -    "available",
      -    "not_checked"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / bathroom_sharing
      Removed value: -{
      -  "description": "Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home.",
      -  "enum": [
      -    "private",
      -    "shared",
      -    "unknown"
      -  ],
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / content_updated_at
      Removed value: -{
      -  "description": "When the property manager's record of this home last changed, ISO 8601, as the provider states it. Omitted when the provider gives no such time.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / data_checked_at
      Removed value: -{
      -  "description": "When this home's availability and price were fetched, ISO 8601. Only present on a row whose stay was priced.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / properties / items / properties / distance_miles
      Removed value: -{
      -  "description": "Only on a landmark or area search: how far this home is from it, in miles, rounded to the nearest 0.5 (0.5 means under 0.5 mile), as a straight line over the ground, not a driving or walking route.",
      -  "type": "number"
      -}
    • removedOutput schema / properties / properties / items / properties / distance_type
      Removed value: -{
      -  "description": "Only with distance_miles: how the distance was measured. straight_line is the direct distance, shorter than any route.",
      -  "enum": [
      -    "straight_line"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Deprecated, no longer returned along with from_price_per_night."New value: +"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Deprecated, no longer returned: only a row with a confirmed stay_total carries a price. Kept in this schema so existing clients still validate."New value: +"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
    • removedOutput schema / properties / properties / items / properties / match_reasons
      Removed value: -{
      -  "description": "Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". On a landmark search the first is the distance, e.g. \"1.5 mi from McCormick Place (straight line)\" or \"under 0.5 mi from McCormick Place (straight line)\". Empty when no filter was sent.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / properties / properties / items / properties / missing_or_unverified
      Removed value: -{
      -  "description": "Facts about this home that could not be verified, drawn from: pet policy, amenities, accommodation type.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "property_id",
      -  "name",
      -  "city",
      -  "top_amenities",
      -  "review_count",
      -  "review_sources",
      -  "highlights",
      -  "booking_url",
      -  "match_reasons",
      -  "availability_status",
      -  "missing_or_unverified"
      -]New value: +[
      +  "property_id",
      +  "name",
      +  "city",
      +  "top_amenities",
      +  "review_count",
      +  "review_sources",
      +  "highlights",
      +  "booking_url"
      +]
    • removedOutput schema / properties / search_scope
      Removed value: -{
      -  "description": "The place actually searched and how it was read.",
      -  "properties": {
      -    "place": {
      -      "description": "The place searched; null when no place was given and every home was searched.",
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "radius_miles": {
      -      "description": "How far from its centre or point homes are included; given for a metro, landmark or area.",
      -      "type": "number"
      -    },
      -    "type": {
      -      "description": "metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop.",
      -      "enum": [
      -        "all_homes",
      -        "metro",
      -        "state",
      -        "city",
      -        "nearby_or_text",
      -        "landmark",
      -        "area"
      -      ],
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "place",
      -    "type"
      -  ],
      -  "type": "object"
      -}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "description": "NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown.",
      -  "enum": [
      -    "OK",
      -    "NO_MATCHES"
      -  ],
      -  "type": "string"
      -}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them. These counts cover the whole search, not one page, and the homes they count are not part of any page. A later page quotes more homes, so the count can fall."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."
    • removedOutput schema / properties / unpriced_property_ids
      Removed value: -{
      -  "description": "The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable.",
      -  "items": {
      -    "type": "integer"
      -  },
      -  "maxItems": 30,
      -  "type": "array"
      -}
    • changedOutput schema / required
      Previous value: -[
      -  "matches",
      -  "total_matching",
      -  "total_matching_groups",
      -  "unpriced_in_time",
      -  "unpriced_property_ids",
      -  "dates_checked",
      -  "availability_note",
      -  "properties",
      -  "completeness",
      -  "search_scope",
      -  "has_more",
      -  "next_cursor"
      -]New value: +[
      +  "matches",
      +  "total_matching",
      +  "total_matching_groups",
      +  "unpriced_in_time",
      +  "dates_checked",
      +  "availability_note",
      +  "properties"
      +]
  5. Changed10 schema fields changed
    • changedInput schema / properties / query / description
      Previous value: -"Free text place, e.g. 'Tampa', 'near Chicago downtown', a neighbourhood or a landmark."New value: +"Free text place, e.g. 'Tampa', a neighbourhood, or a landmark such as 'near McCormick Place, Chicago'. A known Chicago landmark or area (McCormick Place, Navy Pier, Wrigley Field, O'Hare Airport, the South Loop and others) returns homes within radius_miles, nearest first, with a straight-line distance. Text that names no city, state, neighbourhood or landmark is refused with INVALID_INPUT; it is not answered as an empty, complete result."
    • addedInput schema / properties / radius_miles
      Added value: +{
      +  "description": "How far from a named landmark or area to search, in whole miles, 1 to 25. Homes are included by the distance they state, to the nearest half mile. Defaults to 5 for a landmark and 3 for an area. Ignored for any other place.",
      +  "maximum": 25,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / completeness / description
      Previous value: -"complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data or starting rate. partial: at least one is, so the results may omit a home that matches."New value: +"complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data, starting rate or position. partial: at least one is, so the results may omit a home that matches."
    • addedOutput schema / properties / distance_unknown
      Added value: +{
      +  "description": "Only on a landmark or area search: otherwise matching homes left out because no position is recorded for them, so their distance is unknown. They are not confirmed to be outside the radius.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / properties / items / properties / distance_miles
      Added value: +{
      +  "description": "Only on a landmark or area search: how far this home is from it, in miles, rounded to the nearest 0.5 (0.5 means under 0.5 mile), as a straight line over the ground, not a driving or walking route.",
      +  "type": "number"
      +}
    • addedOutput schema / properties / properties / items / properties / distance_type
      Added value: +{
      +  "description": "Only with distance_miles: how the distance was measured. straight_line is the direct distance, shorter than any route.",
      +  "enum": [
      +    "straight_line"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / properties / items / properties / match_reasons / description
      Previous value: -"Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". Empty when no filter was sent."New value: +"Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". On a landmark search the first is the distance, e.g. \"1.5 mi from McCormick Place (straight line)\" or \"under 0.5 mi from McCormick Place (straight line)\". Empty when no filter was sent."
    • changedOutput schema / properties / search_scope / properties / radius_miles / description
      Previous value: -"Only present for a metro: how far from its centre homes are included."New value: +"How far from its centre or point homes are included; given for a metro, landmark or area."
    • changedOutput schema / properties / search_scope / properties / type / description
      Previous value: -"metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it."New value: +"metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it. landmark: homes within radius_miles of a named landmark, nearest first, by straight-line distance. area: the same, measured from the centre of a named area such as the South Loop."
    • changedOutput schema / properties / search_scope / properties / type / enum
      Previous value: -[
      -  "all_homes",
      -  "metro",
      -  "state",
      -  "city",
      -  "nearby_or_text"
      -]New value: +[
      +  "all_homes",
      +  "metro",
      +  "state",
      +  "city",
      +  "nearby_or_text",
      +  "landmark",
      +  "area"
      +]
  6. Changed28 schema fields changed
    • addedInput schema / properties / accommodation_type
      Added value: +{
      +  "description": "What the guest rents. Homes whose type is not recorded are left out and counted in accommodation_type_unknown.",
      +  "enum": [
      +    "entire_home",
      +    "private_room",
      +    "shared_room"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager. The same hard filter as amenities_required, except a home with no amenity data is left out without being counted."
    • addedInput schema / properties / amenities_preferred
      Added value: +{
      +  "description": "Amenities that order homes when the requested sort ties, and appear in match_reasons. Homes lacking them stay in the results.",
      +  "items": {
      +    "enum": [
      +      "pool",
      +      "hot_tub",
      +      "parking",
      +      "wifi",
      +      "kitchen",
      +      "washer",
      +      "pets"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / amenities_required
      Added value: +{
      +  "description": "Amenities every returned home has. A home whose amenity data is unavailable fails the filter and is counted in amenities_unknown.",
      +  "items": {
      +    "enum": [
      +      "pool",
      +      "hot_tub",
      +      "parking",
      +      "wifi",
      +      "kitchen",
      +      "washer",
      +      "pets"
      +    ],
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / bedrooms_exact
      Added value: +{
      +  "description": "Exactly this many bedrooms; 0 is a studio. Cannot be sent together with bedrooms_min.",
      +  "maximum": 100,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / budget
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "A spending limit. scope total compares amount with each home's stay total including cleaning, fees and taxes, and needs check_in and check_out. scope nightly compares it with each home's starting nightly rate, which excludes cleaning, fees and taxes. amount, currency and scope are all required.",
      +  "properties": {
      +    "amount": {
      +      "description": "The limit, in the stated currency.",
      +      "exclusiveMinimum": 0,
      +      "maximum": 1000000,
      +      "type": "number"
      +    },
      +    "currency": {
      +      "description": "Only USD is supported.",
      +      "enum": [
      +        "USD"
      +      ],
      +      "type": "string"
      +    },
      +    "scope": {
      +      "description": "total: the whole stay, with dates. nightly: the starting nightly rate, excluding fees and taxes.",
      +      "enum": [
      +        "total",
      +        "nightly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "amount",
      +    "currency",
      +    "scope"
      +  ],
      +  "type": "object"
      +}
    • addedInput schema / properties / cursor
      Added value: +{
      +  "description": "The next_cursor value of the previous response, valid only with the same other inputs. Returns the page after it.",
      +  "type": "string"
      +}
    • addedInput schema / properties / page
      Added value: +{
      +  "description": "Page number, starting at 1, counted in units of page_size. Cannot be sent together with cursor.",
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / page_size
      Added value: +{
      +  "description": "Results per page, up to 20. Takes the place of limit when both are sent.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / accommodation_type_unknown
      Added value: +{
      +  "description": "Otherwise matching homes left out of an accommodation_type search because no type is recorded for them. They are not confirmed to be another type. 0 when the filter was not sent.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / amenities_unknown
      Added value: +{
      +  "description": "Otherwise matching homes left out of an amenities_required search because no amenity data is available for them. They are not confirmed to lack the amenity. 0 when the filter was not sent.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budget_applied
      Added value: +{
      +  "description": "Only returned when a budget was sent: what it was compared with.",
      +  "properties": {
      +    "amount": {
      +      "type": "number"
      +    },
      +    "compared_to": {
      +      "description": "stay_total includes cleaning, fees and taxes; from_price_per_night is a starting nightly rate that excludes them.",
      +      "enum": [
      +        "stay_total",
      +        "from_price_per_night"
      +      ],
      +      "type": "string"
      +    },
      +    "currency": {
      +      "type": "string"
      +    },
      +    "homes_not_checked": {
      +      "description": "Matching homes the budget could not be checked against: unpriced for a total budget, no starting rate for a nightly one.",
      +      "type": "integer"
      +    },
      +    "includes_fees_and_taxes": {
      +      "type": "boolean"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "scope": {
      +      "enum": [
      +        "total",
      +        "nightly"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "scope",
      +    "amount",
      +    "currency",
      +    "compared_to",
      +    "includes_fees_and_taxes",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / budget_unverified
      Added value: +{
      +  "description": "Otherwise matching homes left out of a nightly budget search because no starting nightly rate is on record. 0 when the budget was not sent or was a total budget.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / budget_unverified_property_ids
      Added value: +{
      +  "description": "The property_id of up to 30 of the homes counted in budget_unverified; each can be priced for specific dates with a live quote.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • addedOutput schema / properties / completeness
      Added value: +{
      +  "description": "complete: no matching home is unpriced, and none was left out for an unknown pet policy, accommodation type, amenity data or starting rate. partial: at least one is, so the results may omit a home that matches.",
      +  "enum": [
      +    "complete",
      +    "partial"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / has_more
      Added value: +{
      +  "description": "True when more results follow this page in the same ordering, within the priced sample. Homes counted in unpriced_in_time are not part of any page and have no effect on this.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / next_cursor
      Added value: +{
      +  "description": "The value to send as cursor, with every other input unchanged, to get the next page. Null when has_more is false.",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "description": "How many results precede this page in the full ordering.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / page_size
      Added value: +{
      +  "description": "How many results this page asked for.",
      +  "type": "integer"
      +}
    • addedOutput schema / properties / properties / items / properties / availability_status
      Added value: +{
      +  "description": "available: confirmed available for the requested dates when this answer was produced. not_checked: no dates were given, so availability was not checked.",
      +  "enum": [
      +    "available",
      +    "not_checked"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / content_updated_at
      Added value: +{
      +  "description": "When the property manager's record of this home last changed, ISO 8601, as the provider states it. Omitted when the provider gives no such time.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / data_checked_at
      Added value: +{
      +  "description": "When this home's availability and price were fetched, ISO 8601. Only present on a row whose stay was priced.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / match_reasons
      Added value: +{
      +  "description": "Short statements of why this home passed the filters that were sent, e.g. \"2 bedrooms (exact)\" or \"has parking\". Empty when no filter was sent.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / properties / items / properties / missing_or_unverified
      Added value: +{
      +  "description": "Facts about this home that could not be verified, drawn from: pet policy, amenities, accommodation type.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedOutput schema / properties / properties / items / required
      Previous value: -[
      -  "property_id",
      -  "name",
      -  "city",
      -  "top_amenities",
      -  "review_count",
      -  "review_sources",
      -  "highlights",
      -  "booking_url"
      -]New value: +[
      +  "property_id",
      +  "name",
      +  "city",
      +  "top_amenities",
      +  "review_count",
      +  "review_sources",
      +  "highlights",
      +  "booking_url",
      +  "match_reasons",
      +  "availability_status",
      +  "missing_or_unverified"
      +]
    • addedOutput schema / properties / search_scope
      Added value: +{
      +  "description": "The place actually searched and how it was read.",
      +  "properties": {
      +    "place": {
      +      "description": "The place searched; null when no place was given and every home was searched.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "radius_miles": {
      +      "description": "Only present for a metro: how far from its centre homes are included.",
      +      "type": "number"
      +    },
      +    "type": {
      +      "description": "metro: the metro area around the named city, within radius_miles. state: the whole state. city: homes in the named city. nearby_or_text: homes near the place or whose listing text matches it.",
      +      "enum": [
      +        "all_homes",
      +        "metro",
      +        "state",
      +        "city",
      +        "nearby_or_text"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "place",
      +    "type"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them. These counts cover the whole search, not one page, and the homes they count are not part of any page. A later page quotes more homes, so the count can fall."
    • changedOutput schema / required
      Previous value: -[
      -  "matches",
      -  "total_matching",
      -  "total_matching_groups",
      -  "unpriced_in_time",
      -  "unpriced_property_ids",
      -  "dates_checked",
      -  "availability_note",
      -  "properties"
      -]New value: +[
      +  "matches",
      +  "total_matching",
      +  "total_matching_groups",
      +  "unpriced_in_time",
      +  "unpriced_property_ids",
      +  "dates_checked",
      +  "availability_note",
      +  "properties",
      +  "completeness",
      +  "search_scope",
      +  "has_more",
      +  "next_cursor"
      +]
  7. Changed2 schema fields changed
    • changedInput schema / properties / guests / description
      Previous value: -"Number of guests, including children."New value: +"Everyone staying, including children and infants."
    • addedOutput schema / properties / status
      Added value: +{
      +  "description": "NO_MATCHES: nothing matched and nothing is unknown (unpriced_in_time and pet_policy_unknown are both 0). It is a normal answer, not an error. Any other search is OK, even with no results, and unpriced_in_time and pet_policy_unknown say what is still unknown.",
      +  "enum": [
      +    "OK",
      +    "NO_MATCHES"
      +  ],
      +  "type": "string"
      +}
  8. Changed4 schema fields changed
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."New value: +"How many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Results are limited to pet-friendly homes, dated totals include the pet fee for that many pets, and booking links keep the number of pets."
    • addedInput schema / properties / pets / maximum
      Added value: +4
    • addedInput schema / properties / pets / minimum
      Added value: +0
    • changedInput schema / properties / pets / type
      Previous value: -"boolean"New value: +[
      +  "integer",
      +  "boolean"
      +]
  9. Changed2 schema fields changed
    • addedOutput schema / properties / unpriced_property_ids
      Added value: +{
      +  "description": "The property_id of up to 30 of the homes counted in unpriced_in_time; each can be priced individually with a live quote. Homes whose quote failed or timed out come first, then homes the request did not reach. A home listed here is unknown, not unavailable.",
      +  "items": {
      +    "type": "integer"
      +  },
      +  "maxItems": 30,
      +  "type": "array"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "matches",
      -  "total_matching",
      -  "total_matching_groups",
      -  "unpriced_in_time",
      -  "dates_checked",
      -  "availability_note",
      -  "properties"
      -]New value: +[
      +  "matches",
      +  "total_matching",
      +  "total_matching_groups",
      +  "unpriced_in_time",
      +  "unpriced_property_ids",
      +  "dates_checked",
      +  "availability_note",
      +  "properties"
      +]
  10. Changed5 schema fields changed
    • changedInput schema / properties / sort / description
      Previous value: -"total_price_* needs dates and orders by the stay total; from_price_asc orders by starting nightly rate; sleeps_desc puts the largest homes first."New value: +"total_price_* needs dates and orders by the stay total; from_price_asc orders by a starting rate that is not returned, and with dates by the stay total; sleeps_desc puts the largest homes first."
    • addedOutput schema / properties / properties / items / properties / accommodation_type
      Added value: +{
      +  "description": "What the guest rents: an entire home, a private room in a shared building or a shared room. A private room or shared room is not an entire home. unknown means the type is not recorded for this home.",
      +  "enum": [
      +    "entire_home",
      +    "private_room",
      +    "shared_room",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / properties / items / properties / bathroom_sharing
      Added value: +{
      +  "description": "Whether the guest has a private bathroom or shares one. unknown means it is not recorded for this home.",
      +  "enum": [
      +    "private",
      +    "shared",
      +    "unknown"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."New value: +"Deprecated, no longer returned along with from_price_per_night."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Deprecated, no longer returned: only a row with a confirmed stay_total carries a price. Kept in this schema so existing clients still validate."
  11. Changed13 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities the home must have, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."New value: +"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."
    • changedInput schema / properties / guests / maximum
      Previous value: -40New value: +50
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."New value: +"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."New value: +"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."
    • changedOutput schema / properties / dates_checked / description
      Previous value: -"False means availability is unknown and every price is a starting nightly rate."New value: +"False means availability is unknown and no stay has been priced; no row carries a stay_total."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"stay_total divided by nights. A derived figure; quote the total, not this."New value: +"No longer returned; stay_total is the price of the stay."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."New value: +"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."New value: +"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases an agent can repeat when recommending the home."New value: +"Up to three short phrases describing what sets the home apart."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."New value: +"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."
  12. Changed13 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager."New value: +"Amenities the home must have, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."New value: +"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."
    • changedInput schema / properties / guests / maximum
      Previous value: -50New value: +40
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."New value: +"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."New value: +"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."
    • changedOutput schema / properties / dates_checked / description
      Previous value: -"False means availability is unknown and no stay has been priced; no row carries a stay_total."New value: +"False means availability is unknown and every price is a starting nightly rate."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"No longer returned; stay_total is the price of the stay."New value: +"stay_total divided by nights. A derived figure; quote the total, not this."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."New value: +"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases describing what sets the home apart."New value: +"Up to three short phrases an agent can repeat when recommending the home."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."New value: +"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."New value: +"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  13. Changed13 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities the home must have, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."New value: +"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."
    • changedInput schema / properties / guests / maximum
      Previous value: -40New value: +50
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."New value: +"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."New value: +"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."
    • changedOutput schema / properties / dates_checked / description
      Previous value: -"False means availability is unknown and every price is a starting nightly rate."New value: +"False means availability is unknown and no stay has been priced; no row carries a stay_total."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"stay_total divided by nights. A derived figure; quote the total, not this."New value: +"No longer returned; stay_total is the price of the stay."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."New value: +"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."New value: +"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases an agent can repeat when recommending the home."New value: +"Up to three short phrases describing what sets the home apart."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."New value: +"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."
  14. Changed13 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager."New value: +"Amenities the home must have, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."New value: +"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."
    • changedInput schema / properties / guests / maximum
      Previous value: -50New value: +40
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."New value: +"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."New value: +"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."
    • changedOutput schema / properties / dates_checked / description
      Previous value: -"False means availability is unknown and no stay has been priced; no row carries a stay_total."New value: +"False means availability is unknown and every price is a starting nightly rate."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"No longer returned; stay_total is the price of the stay."New value: +"stay_total divided by nights. A derived figure; quote the total, not this."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."New value: +"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases describing what sets the home apart."New value: +"Up to three short phrases an agent can repeat when recommending the home."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."New value: +"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."New value: +"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  15. Changed3 schema fields changed
    • changedOutput schema / properties / dates_checked / description
      Previous value: -"False means availability is unknown and every price is a starting nightly rate."New value: +"False means availability is unknown and no stay has been priced; no row carries a stay_total."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"stay_total divided by nights. A derived figure, not a rate the home charges; stay_total is the price of the stay."New value: +"No longer returned; stay_total is the price of the stay."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, not a stay total. Without dates, this is all that is known. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Starting nightly rate, used to order results. It excludes cleaning, fees and taxes, so it is not the price of any stay. Only present on a row without stay_total. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
  16. Changed1 schema field changed
    • changedInput schema / properties / guests / maximum
      Previous value: -40New value: +50
  17. Changed11 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities the home must have, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."New value: +"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."New value: +"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."New value: +"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"stay_total divided by nights. A derived figure; quote the total, not this."New value: +"stay_total divided by nights. A derived figure, not a rate the home charges; stay_total is the price of the stay."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."New value: +"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."New value: +"Starting nightly rate, not a stay total. Without dates, this is all that is known. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases an agent can repeat when recommending the home."New value: +"Up to three short phrases describing what sets the home apart."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."New value: +"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."
  18. Changed11 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities every returned home has, as recorded by the property manager."New value: +"Amenities the home must have, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."New value: +"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."New value: +"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."New value: +"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"stay_total divided by nights. A derived figure, not a rate the home charges; stay_total is the price of the stay."New value: +"stay_total divided by nights. A derived figure; quote the total, not this."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."New value: +"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, not a stay total. Without dates, this is all that is known. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."New value: +"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases describing what sets the home apart."New value: +"Up to three short phrases an agent can repeat when recommending the home."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."New value: +"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."New value: +"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  19. Changed11 schema fields changed
    • changedInput schema / properties / amenities / description
      Previous value: -"Amenities the home must have, as recorded by the property manager."New value: +"Amenities every returned home has, as recorded by the property manager."
    • changedInput schema / properties / check_in / description
      Previous value: -"Check-in date, YYYY-MM-DD. Give both dates to filter by real availability."New value: +"Check-in date, YYYY-MM-DD. Availability is checked only when both dates are given."
    • changedInput schema / properties / max_total / description
      Previous value: -"Budget for the whole stay in dollars, including cleaning, fees and taxes. Only works with dates."New value: +"Budget for the whole stay in dollars, including cleaning, fees and taxes. Applies only when dates are given."
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."New value: +"The guest is bringing a pet. Results are limited to pet-friendly homes, dated totals include the pet fee, and booking links keep the pet selection."
    • changedInput schema / properties / price_all_matches / description
      Previous value: -"Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing."New value: +"Prices every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded: unpriced_in_time counts any homes it did not reach."
    • changedOutput schema / properties / properties / items / properties / avg_per_night / description
      Previous value: -"stay_total divided by nights. A derived figure; quote the total, not this."New value: +"stay_total divided by nights. A derived figure, not a rate the home charges; stay_total is the price of the stay."
    • changedOutput schema / properties / properties / items / properties / from_price_note / description
      Previous value: -"Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book."New value: +"Only present when from_price_per_night is null: what is and is not visible about this home's calendar. A null starting rate means neither that the home is booked out nor that it is ready to book."
    • changedOutput schema / properties / properties / items / properties / from_price_per_night / description
      Previous value: -"Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note."New value: +"Starting nightly rate, not a stay total. Without dates, this is all that is known. Null means no starting rate is published for this home, not that it is free or cheap; from_price_note says why."
    • changedOutput schema / properties / properties / items / properties / highlights / description
      Previous value: -"Up to three short phrases an agent can repeat when recommending the home."New value: +"Up to three short phrases describing what sets the home apart."
    • changedOutput schema / properties / properties / items / properties / review_count / description
      Previous value: -"How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating."New value: +"How many 4- and 5-star reviews this home has. It is a count, not a rating; no average rating exists for any home."
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was not established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable. `price_all_matches`, a higher `limit`, or a narrower place establishes more of them."
  20. Changed3 schema fields changed
    • changedInput schema / properties / pets / description
      Previous value: -"Only return homes that accept pets."New value: +"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."
    • addedOutput schema / properties / pet_policy_unknown
      Added value: +{
      +  "description": "Otherwise matching homes omitted from a pet-friendly search because their pet policy is unknown, not confirmed to prohibit pets. Applies with or without dates; included in unpriced_in_time when dated. A positive count means the pet-friendly inventory is incomplete.",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  21. Changed3 schema fields changed
    • changedInput schema / properties / pets / description
      Previous value: -"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."New value: +"Only return homes that accept pets."
    • removedOutput schema / properties / pet_policy_unknown
      Removed value: -{
      -  "description": "Otherwise matching homes omitted from a pet-friendly search because their pet policy is unknown, not confirmed to prohibit pets. Applies with or without dates; included in unpriced_in_time when dated. A positive count means the pet-friendly inventory is incomplete.",
      -  "type": "integer"
      -}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  22. Changed3 schema fields changed
    • changedInput schema / properties / pets / description
      Previous value: -"Only return homes that accept pets."New value: +"The guest is bringing a pet. Only return pet-friendly homes, include the pet fee in dated totals, and preserve the pet selection in booking links."
    • addedOutput schema / properties / pet_policy_unknown
      Added value: +{
      +  "description": "Otherwise matching homes omitted from a pet-friendly search because their pet policy is unknown, not confirmed to prohibit pets. Applies with or without dates; included in unpriced_in_time when dated. A positive count means the pet-friendly inventory is incomplete.",
      +  "type": "integer"
      +}
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."New value: +"Matching homes whose availability was never established for these dates, because their pet policy could not be verified, a quote failed, the request ran out of budget, or it did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  23. Changed2 schema fields changed
    • addedInput schema / properties / price_all_matches
      Added value: +{
      +  "description": "Price every matching home rather than a fast sample, so total_matching is the real count and the cheapest result is genuinely the cheapest. Slower, and still bounded — check unpriced_in_time. Use it when a guest asks how many homes are free or for the cheapest; leave it off for browsing.",
      +  "type": "boolean"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "availability_note": {
      +      "type": "string"
      +    },
      +    "dates_checked": {
      +      "description": "False means availability is unknown and every price is a starting nightly rate.",
      +      "type": "boolean"
      +    },
      +    "matches": {
      +      "description": "How many results this response carries.",
      +      "type": "integer"
      +    },
      +    "properties": {
      +      "items": {
      +        "properties": {
      +          "avg_per_night": {
      +            "description": "stay_total divided by nights. A derived figure; quote the total, not this.",
      +            "type": "number"
      +          },
      +          "avg_per_night_display": {
      +            "type": "string"
      +          },
      +          "bathrooms": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "bedrooms": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "booking_url": {
      +            "description": "Where the guest completes the booking on Luxury Lodging's own site.",
      +            "type": "string"
      +          },
      +          "city": {
      +            "type": "string"
      +          },
      +          "from_price_note": {
      +            "description": "Only present when from_price_per_night is null: what we can and cannot see about this home's calendar. Call get_availability before suggesting dates; do not describe the home as booked out or as ready to book.",
      +            "type": "string"
      +          },
      +          "from_price_per_night": {
      +            "description": "Starting nightly rate, not a stay total. Absent dates, this is all that is known. Null means no starting rate is published for this home, never that it is free or cheap -- read from_price_note.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "highlights": {
      +            "description": "Up to three short phrases an agent can repeat when recommending the home.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "neighbourhood": {
      +            "description": "Neighbourhood-level location only; the exact address is shared after booking.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "nights": {
      +            "type": "integer"
      +          },
      +          "photo": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "property_id": {
      +            "type": "integer"
      +          },
      +          "property_type": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "review_count": {
      +            "description": "How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating.",
      +            "type": "integer"
      +          },
      +          "review_sources": {
      +            "description": "Which platforms those reviews came from.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "similar_units": {
      +            "description": "Only present when interchangeable units of this type exist; any of these ids can be quoted and booked.",
      +            "properties": {
      +              "count": {
      +                "type": "integer"
      +              },
      +              "note": {
      +                "type": "string"
      +              },
      +              "property_ids": {
      +                "items": {
      +                  "type": "integer"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "count",
      +              "note",
      +              "property_ids"
      +            ],
      +            "type": "object"
      +          },
      +          "sleeps": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "state": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "stay_total": {
      +            "description": "Total for the requested dates including cleaning, fees and taxes. Only present when dates were given and the home was priced.",
      +            "type": "number"
      +          },
      +          "stay_total_display": {
      +            "type": "string"
      +          },
      +          "top_amenities": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "property_id",
      +          "name",
      +          "city",
      +          "top_amenities",
      +          "review_count",
      +          "review_sources",
      +          "highlights",
      +          "booking_url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "searched_location": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_matching": {
      +      "description": "How many individual homes matched, counting every interchangeable unit.",
      +      "type": "integer"
      +    },
      +    "total_matching_groups": {
      +      "description": "How many distinct unit types matched.",
      +      "type": "integer"
      +    },
      +    "unpriced_in_time": {
      +      "description": "Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote.",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "matches",
      +    "total_matching",
      +    "total_matching_groups",
      +    "unpriced_in_time",
      +    "dates_checked",
      +    "availability_note",
      +    "properties"
      +  ],
      +  "type": "object"
      +}
  24. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "availability_note": {
      -      "type": "string"
      -    },
      -    "dates_checked": {
      -      "description": "False means availability is unknown and every price is a starting nightly rate.",
      -      "type": "boolean"
      -    },
      -    "matches": {
      -      "description": "How many results this response carries.",
      -      "type": "integer"
      -    },
      -    "properties": {
      -      "items": {
      -        "properties": {
      -          "avg_per_night": {
      -            "description": "stay_total divided by nights. A derived figure; quote the total, not this.",
      -            "type": "number"
      -          },
      -          "avg_per_night_display": {
      -            "type": "string"
      -          },
      -          "bathrooms": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "bedrooms": {
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "booking_url": {
      -            "description": "Where the guest completes the booking on Luxury Lodging's own site.",
      -            "type": "string"
      -          },
      -          "city": {
      -            "type": "string"
      -          },
      -          "from_price_per_night": {
      -            "description": "Starting nightly rate, not a stay total. Absent dates, this is all that is known.",
      -            "type": [
      -              "number",
      -              "null"
      -            ]
      -          },
      -          "highlights": {
      -            "description": "Up to three short phrases an agent can repeat when recommending the home.",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "name": {
      -            "type": "string"
      -          },
      -          "neighbourhood": {
      -            "description": "Neighbourhood-level location only; the exact address is shared after booking.",
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "nights": {
      -            "type": "integer"
      -          },
      -          "photo": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "property_id": {
      -            "type": "integer"
      -          },
      -          "property_type": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "review_count": {
      -            "description": "How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating.",
      -            "type": "integer"
      -          },
      -          "review_sources": {
      -            "description": "Which platforms those reviews came from.",
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          },
      -          "similar_units": {
      -            "description": "Only present when interchangeable units of this type exist; any of these ids can be quoted and booked.",
      -            "properties": {
      -              "count": {
      -                "type": "integer"
      -              },
      -              "note": {
      -                "type": "string"
      -              },
      -              "property_ids": {
      -                "items": {
      -                  "type": "integer"
      -                },
      -                "type": "array"
      -              }
      -            },
      -            "required": [
      -              "count",
      -              "note",
      -              "property_ids"
      -            ],
      -            "type": "object"
      -          },
      -          "sleeps": {
      -            "type": [
      -              "integer",
      -              "null"
      -            ]
      -          },
      -          "state": {
      -            "type": [
      -              "string",
      -              "null"
      -            ]
      -          },
      -          "stay_total": {
      -            "description": "Total for the requested dates including cleaning, fees and taxes. Only present when dates were given and the home was priced.",
      -            "type": "number"
      -          },
      -          "stay_total_display": {
      -            "type": "string"
      -          },
      -          "top_amenities": {
      -            "items": {
      -              "type": "string"
      -            },
      -            "type": "array"
      -          }
      -        },
      -        "required": [
      -          "property_id",
      -          "name",
      -          "city",
      -          "top_amenities",
      -          "review_count",
      -          "review_sources",
      -          "highlights",
      -          "booking_url"
      -        ],
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    "searched_location": {
      -      "type": [
      -        "string",
      -        "null"
      -      ]
      -    },
      -    "total_matching": {
      -      "description": "How many individual homes matched, counting every interchangeable unit.",
      -      "type": "integer"
      -    },
      -    "total_matching_groups": {
      -      "description": "How many distinct unit types matched.",
      -      "type": "integer"
      -    },
      -    "unpriced_in_time": {
      -      "description": "Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote.",
      -      "type": "integer"
      -    }
      -  },
      -  "required": [
      -    "matches",
      -    "total_matching",
      -    "total_matching_groups",
      -    "unpriced_in_time",
      -    "dates_checked",
      -    "availability_note",
      -    "properties"
      -  ],
      -  "type": "object"
      -}New value: +null
  25. Changed1 schema field changed
    • changedOutput schema / properties / unpriced_in_time / description
      Previous value: -"Matching homes that could not be priced before the deadline. Narrow the search or use get_live_quote for a specific home."New value: +"Matching homes whose availability was never established for these dates, because the request ran out of budget or did not reach them. They are unknown, not unavailable — raise `limit`, narrow the place, or use get_live_quote."
  26. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "availability_note": {
      +      "type": "string"
      +    },
      +    "dates_checked": {
      +      "description": "False means availability is unknown and every price is a starting nightly rate.",
      +      "type": "boolean"
      +    },
      +    "matches": {
      +      "description": "How many results this response carries.",
      +      "type": "integer"
      +    },
      +    "properties": {
      +      "items": {
      +        "properties": {
      +          "avg_per_night": {
      +            "description": "stay_total divided by nights. A derived figure; quote the total, not this.",
      +            "type": "number"
      +          },
      +          "avg_per_night_display": {
      +            "type": "string"
      +          },
      +          "bathrooms": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "bedrooms": {
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "booking_url": {
      +            "description": "Where the guest completes the booking on Luxury Lodging's own site.",
      +            "type": "string"
      +          },
      +          "city": {
      +            "type": "string"
      +          },
      +          "from_price_per_night": {
      +            "description": "Starting nightly rate, not a stay total. Absent dates, this is all that is known.",
      +            "type": [
      +              "number",
      +              "null"
      +            ]
      +          },
      +          "highlights": {
      +            "description": "Up to three short phrases an agent can repeat when recommending the home.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "neighbourhood": {
      +            "description": "Neighbourhood-level location only; the exact address is shared after booking.",
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "nights": {
      +            "type": "integer"
      +          },
      +          "photo": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "property_id": {
      +            "type": "integer"
      +          },
      +          "property_type": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "review_count": {
      +            "description": "How many 4- and 5-star reviews this home has. Never present this as, or derive, an average rating.",
      +            "type": "integer"
      +          },
      +          "review_sources": {
      +            "description": "Which platforms those reviews came from.",
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "similar_units": {
      +            "description": "Only present when interchangeable units of this type exist; any of these ids can be quoted and booked.",
      +            "properties": {
      +              "count": {
      +                "type": "integer"
      +              },
      +              "note": {
      +                "type": "string"
      +              },
      +              "property_ids": {
      +                "items": {
      +                  "type": "integer"
      +                },
      +                "type": "array"
      +              }
      +            },
      +            "required": [
      +              "count",
      +              "note",
      +              "property_ids"
      +            ],
      +            "type": "object"
      +          },
      +          "sleeps": {
      +            "type": [
      +              "integer",
      +              "null"
      +            ]
      +          },
      +          "state": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "stay_total": {
      +            "description": "Total for the requested dates including cleaning, fees and taxes. Only present when dates were given and the home was priced.",
      +            "type": "number"
      +          },
      +          "stay_total_display": {
      +            "type": "string"
      +          },
      +          "top_amenities": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "property_id",
      +          "name",
      +          "city",
      +          "top_amenities",
      +          "review_count",
      +          "review_sources",
      +          "highlights",
      +          "booking_url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "searched_location": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "total_matching": {
      +      "description": "How many individual homes matched, counting every interchangeable unit.",
      +      "type": "integer"
      +    },
      +    "total_matching_groups": {
      +      "description": "How many distinct unit types matched.",
      +      "type": "integer"
      +    },
      +    "unpriced_in_time": {
      +      "description": "Matching homes that could not be priced before the deadline. Narrow the search or use get_live_quote for a specific home.",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "matches",
      +    "total_matching",
      +    "total_matching_groups",
      +    "unpriced_in_time",
      +    "dates_checked",
      +    "availability_note",
      +    "properties"
      +  ],
      +  "type": "object"
      +}
  27. Changed3 schema fields changed
    • addedInput schema / properties / bathrooms_min
      Added value: +{
      +  "description": "Fewest bathrooms acceptable.",
      +  "maximum": 100,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • changedInput schema / properties / sort / description
      Previous value: -"Order by the cheapest stay total. Only works with dates."New value: +"total_price_* needs dates and orders by the stay total; from_price_asc orders by starting nightly rate; sleeps_desc puts the largest homes first."
    • changedInput schema / properties / sort / enum
      Previous value: -[
      -  "total_price_asc"
      -]New value: +[
      +  "total_price_asc",
      +  "total_price_desc",
      +  "from_price_asc",
      +  "sleeps_desc"
      +]
  28. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only safety and idempotency. The description adds valuable behavioral context: availability confirmation with dates, handling of unpriced homes (unknown not unavailable), pet policy unknowns, completeness partial state, and distance semantics. It omits explicit permission requirements or rate limits, which are less critical for a read-only search.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

At roughly 250 words, the description is dense but front-loads the core purpose. It efficiently conveys many behavioral details, though some sentences could be trimmed (e.g., the landmark search example is repeated). Overall, it earns its space given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's 22 parameters, output schema, and rich annotations, the description covers all essential behavioral nuances: availability, pricing, unit interchangeability, unpriced homes, pet policy, completeness, and distance semantics. An agent has sufficient context to invoke correctly and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents all parameters. The description adds some high-level context about filters (accommodation type, bedrooms, amenities, budget) and paging, but does not provide syntax or format details beyond the schema. Baseline 3 is appropriate when schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Searches') and resource ('directly bookable vacation rentals') scoped by destination, dates, group size, bedrooms and amenities. It distinguishes itself from siblings like get_live_quote and compare_properties by emphasizing directly bookable inventory and search filtering.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly signals when to use this tool (searching for homes) vs alternatives, e.g., 'each of which can be priced individually with a live quote' hints at get_live_quote for unpriced items. However, it does not explicitly state when to use compare_properties or list_markets instead, leaving some guidance implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources