Skip to main content
Glama

EscapeStays by Luxury Lodging

Server Details

Book vacation rentals direct: search homes, check live availability, get a real total.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 21 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4/5.0

Scored across 7 tools

Disambiguation3/5

Several tools overlap: get_live_quote and get_booking_link both validate dates, re-price the stay and return a booking_url, differing mainly in whether the total is returned. get_availability also overlaps with dated search_properties, and compare_properties duplicates pricing already offered by get_live_quote/search_properties. The descriptions are detailed enough to resolve most cases, but an agent could easily misselect among the pricing/link tools.

Naming Consistency5/5

All seven tools use a consistent snake_case verb_noun pattern (compare_properties, get_availability, get_booking_link, get_live_quote, get_property_details, list_markets, search_properties). No mixed conventions or vague standalone verbs.

Tool Count5/5

Seven tools is well-scoped for a vacation-rental discovery and booking-link server. Each tool maps to a distinct step (market discovery, search, detail, availability, pricing, comparison, booking handoff) and none feels redundant or trivial.

Completeness4/5

The surface covers the full discovery-to-booking-redirect flow: markets, search, property detail, availability, quotes, comparison and a signed booking link. Actual reservation/payment, reviews lookup, and any booking-management operations are absent, but these appear intentionally delegated to the Luxury Lodging site.

Available Tools

7 tools
compare_propertiesCompare homes side by sideA
Read-onlyIdempotent
Inspect

Compares 2 to 5 homes in one call: size, the amenities guests choose by, review counts, each home's own check-in time, deposit and pet policy, and with dates, availability and the stay total for each, for a guest deciding between specific homes. Each home carries accommodation_type and bathroom_sharing: a private room or shared room is not an entire home. Without dates no price is returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
petsNoHow many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. Totals include the pet fee for that many pets.
guestsNoEveryone staying, including children and infants.
check_inNoCheck-in date, YYYY-MM-DD. Totals are returned only when both dates are given.
check_outNoCheck-out date, YYYY-MM-DD.
property_idsYesProperty ids or slugs from search results or booking links.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
homesYes
comparedYes
dates_checkedYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds non-obvious behavioral facts: the 2–5 home bound, the date-gated price behavior, and the caveat that a private/shared room is not an entire home. These are genuine additions beyond the annotations.

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?

Front-loaded with the core action and scope, then qualifications. Dense but nearly every clause carries information (the type caveat and the date/price rule both matter). Slightly clause-heavy in the middle enumeration, but no filler sentences.

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?

For a read-only comparison tool with an output schema, an agent has everything needed: scope limits, required vs optional dates, what gets priced, and the property-type caveat. Return-value detail is rightly left to the output schema.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description goes beyond the schema by surfacing a cross-parameter dependency (check_in + check_out required for any price) and by explaining the accommodation_type/bathroom_sharing implications, which the schema does not capture.

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?

States a specific verb (compares) and resource (2 to 5 homes) and enumerates exactly what is compared — size, amenities, review counts, check-in time, deposit, pet policy, and, with dates, availability and stay total. This clearly separates it from siblings like get_property_details (single home) and search_properties (find homes).

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?

Gives an explicit audience/context — 'for a guest deciding between specific homes' — and a conditional rule ('without dates no price is returned') that tells the agent when price data appears. It does not explicitly name get_live_quote as the alternative for pricing, so the when-not guidance is incomplete.

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

get_availabilityGet availability calendarA
Read-onlyIdempotent
Inspect

Open and blocked nights for one property over a date range of up to 93 days, with its minimum stay. It shows which alternative dates are open; it does not price or confirm a stay.

ParametersJSON Schema
NameRequiredDescriptionDefault
end_dateYesLast date to check, YYYY-MM-DD. At most 93 days after start_date.
start_dateYesFirst date to check, YYYY-MM-DD.
property_idYesProperty id or slug.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
end_dateYes
open_datesYesYYYY-MM-DD nights that are open. They still have to satisfy minimum stay and arrival rules.
start_dateYes
nights_openYes
property_idYes
blocked_datesYes
minimum_nightsNo
nights_blockedYes

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description need not repeat safety. It adds context that it returns open and blocked nights plus minimum stay, and explicitly says it does not price or confirm, which is useful behavioral context beyond annotations. However, it doesn't mention any rate limits, pagination, or edge cases (e.g., behavior when start_date is after end_date). The bar is lower due to annotations, but it still could disclose more about output granularity.

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

Conciseness5/5

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

Two sentences, front-loaded with the core function and scope, then a clarifying exclusion. No wasted words; every sentence earns its place. The exclusion of pricing/confirmation is particularly valuable for disambiguation.

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

Completeness4/5

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

The tool has an output schema (stated in context signals) which likely describes the return structure, so the description need not detail return fields. The description covers the main functional aspects, the date range limit, and what it does not do. It could mention pagination or the exact representation of 'blocked nights', but given the output schema and annotations, this is reasonably complete for an agent to invoke correctly.

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 all three parameters are fully described in the schema with types and constraints (e.g., date format, 93-day limit). The description adds the concept of 'open and blocked nights' and 'minimum stay' but does not elaborate on parameter semantics beyond what the schema already provides. Baseline 3 is appropriate since the schema carries 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 ('Open and blocked nights for one property'), a clear resource ('availability calendar over a date range'), and scope ('up to 93 days, with minimum stay'). It distinguishes itself from siblings by explicitly noting it does not price or confirm a stay, differentiating it from get_live_quote. This is specific and unambiguous.

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 implies when to use it: checking availability for a property over a date range. It explicitly says what it does not do ('does not price or confirm a stay'), which helps avoid confusion with get_live_quote, but it does not name the sibling tool explicitly. Still, the boundary is clear enough for an agent to choose it over pricing/booking tools.

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

get_live_quoteGet a live total priceA
Read-onlyIdempotent
Inspect

Live price for one property and one stay. stay_total includes cleaning, fees and taxes; nightly rates exclude them. Also returns the refundable deposit hold, which is separate from the total, the payment schedule, and that home's own cancellation and check-in terms. The top-level totals and cancellation are the non-refundable rate; rate_options lists every rate on offer with its own terms, total and booking_url, including a refundable rate with its free-cancellation deadline when check-in is more than 30 days away (a cancellation by then refunds everything paid except the 3.5% card processing fee). Returns a booking_url the guest opens to complete the booking and accept the rental terms on Luxury Lodging's own site; this tool does not book or take payment. An optional coupon_code is applied to the rent before the rates are priced, as on the website, so when the code applies every total includes it; when it does not, the totals are the price without it and the coupon field says why. The booking_url carries the code only when it applied, and the code is checked again at booking. Amounts ending in _minor are integer cents in currency.

ParametersJSON Schema
NameRequiredDescriptionDefault
petsNoHow many pets the guest is bringing, 0 to 4; 0 or leave out for none. true means one pet and false none. This changes the price: some homes charge per pet or per pet per night.
guestsNoEveryone staying, including children and infants.
check_inYesCheck-in date, YYYY-MM-DD.
check_outYesCheck-out date, YYYY-MM-DD.
coupon_codeNoA coupon code the guest was given. Optional. When it applies, the totals and every rate's total include it, and the discount appears in price_breakdown and as a negative row in quote.charges. A code that does not apply, or that nobody issued, leaves the price unchanged and is reported in coupon with its reason. A code tied to one guest's email is reported as not found. A quote does not reserve a use of a code, and the code is checked again when the guest books, so it may no longer apply then.
property_idYesProperty id or slug.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
noteNo
petsNoHow many pets this quote is for. pet_fee in price_breakdown is the fee for that many.
quoteNoThe authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown.
couponNoWhat happened to the coupon_code that was sent. Only returned when one was sent. The stay's totals already include the coupon when applied is true and are the price without it when applied is false.
guestsNo
nightsNo
reasonNoWhy the stay cannot be booked. Only present when available is false.
check_inNo
currencyNo
availableYes
check_outNo
quoted_atNo
stay_totalNoThe price of the stay, including cleaning, fees and taxes, and the coupon when one applied. Nightly rates exclude them.
booking_urlYesWhere the guest completes the booking on Luxury Lodging's own site, for the non-refundable rate. It names the coupon only when the coupon applied.
property_idYes
cancellationNoThis home's own cancellation terms for the non-refundable rate, which stay_total prices. Each entry in rate_options carries its own terms, and those are the only refund terms that apply to that rate.
check_out_byNo
rate_optionsNoEvery rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable until free_cancel_until; on a cancellation by then the 3.5% card processing fee is non-refundable and everything else paid is refunded in full. Each rate has its own booking_url.
check_in_fromNo
total_displayNostay_total, formatted.
total_due_nowNoWhat the guest pays at booking: the whole stay_total, or 50% of it when check-in is more than 60 days away; payment_schedule says which.
maximum_nightsNo
minimum_nightsNo
price_breakdownNo
payment_scheduleNoWhen the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking.
quote_expires_atNoWhen this quote lapses. After it, the price of the stay can differ from stay_total until it is quoted again.
security_deposit_holdNoA refundable hold, not part of stay_total.

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent annotations: it discloses that stay_total bundles cleaning/fees/taxes while nightly rates don't, that the refundable deposit hold is separate from the total, that coupon codes are repriced and re-validated at booking and may stop applying, and that amounts ending in _minor are integer cents. This is exactly the kind of behavioral context annotations can't carry.

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?

Long but dense and largely front-loaded: pricing composition first, then rate_options and booking_url, then the coupon caveat. The coupon paragraph partially duplicates the schema, which is the only real slack.

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?

For a 6-param priced-quote tool with an output schema, the description covers totals composition, rate variants, coupon lifecycle, deposit holds, and the fact that no booking occurs. An agent has everything needed to call and interpret it.

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 description coverage is 100%, so the schema already documents coupon_code, pets, guests and dates in detail. The description restates much of the coupon behavior (applied to rent before pricing, re-checked at booking) rather than adding new semantics, so the baseline 3 applies.

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?

Opens with a specific verb+resource+scope: 'Live price for one property and one stay.' It immediately distinguishes itself from pricing-adjacent siblings like compare_properties and get_booking_link by describing the pricing computation and the booking_url handoff.

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

Usage Guidelines3/5

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

It clearly states what the tool does NOT do ('does not book or take payment') and points to booking_url as the completion path, which is implied routing. But it never explicitly says when to prefer it over compare_properties or get_booking_link, leaving the sibling choice to inference.

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

get_property_detailsGet property detailsA
Read-onlyIdempotent
Inspect

Full detail for one property: bedrooms, capacity, amenities recorded by the property manager, photos, house rules and the real check-in, check-out, deposit and pet policies for that specific home. Location is given at neighbourhood level; the exact address is shared after booking. Guest reviews are a selection of 4- and 5-star reviews, each with its source; no average rating exists. accommodation_type and bathroom_sharing say whether the guest rents an entire home or a room: a private room or shared room is not an entire home.

ParametersJSON Schema
NameRequiredDescriptionDefault
property_idYesProperty id or the slug from a booking link.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bedsNo
nameYes
aliasNo
photosYes
sleepsNo
bedroomsNo
locationYes
policiesYesThis home's own policies, not portfolio defaults, when policies_source is "provider".
amenitiesYes
bathroomsNo
booking_urlYes
descriptionNo
house_rulesYes
property_idYes
guest_reviewsYesA selection of 4- and 5-star reviews, not a summary of every review. No overall or average rating is implied or available.
property_typeNo
support_emailYes
amenities_sourceYes
bathroom_sharingNoWhether the guest has a private bathroom or shares one. unknown means it is not recorded for this home.
common_questionsNo
accommodation_typeNoWhat 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.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds genuinely non-obvious behavior: location is only neighbourhood-level with the exact address shared after booking, and reviews are a curated 4-/5-star selection with no average rating. These caveats go beyond anything in the structured fields.

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?

The lead sentence front-loads what is returned, and the remaining sentences each carry distinct semantic content (location granularity, review selection, room-vs-entire-home distinction). It is dense but not padded, though some return-field enumeration is redundant against the existing output schema.

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

Completeness4/5

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

With an output schema present, the return values needn't be enumerated, yet the description supplies the interpretive caveats an agent needs (no average rating, address withheld until booking, what accommodation_type means). Nothing critical for correct invocation appears missing.

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 description coverage is 100% for the single property_id parameter, and the description adds no format, slug-parsing, or lookup-failure guidance beyond the schema's "Property id or the slug from a booking link." Baseline 3 is correct when the schema already carries the parameter meaning.

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

Purpose4/5

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

The description opens with a specific verb+resource ("Full detail for one property") and enumerates the fields returned, so an agent can tell this apart from search_properties or get_availability without opening a schema. It never names a sibling explicitly, so the differentiation is implied rather than stated.

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

Usage Guidelines3/5

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

Usage is only implied: an agent infers it should call this when it already holds a property_id and needs the full record rather than a search/quote. There is no explicit when-to-use, when-not-to-use, or named alternative (compare_properties, get_live_quote) to route between.

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

list_marketsList destinationsA
Read-onlyIdempotent
Inspect

Every city where Luxury Lodging has directly bookable homes, with the state or region, the country, how many homes and the largest group each can sleep. Counts are given for the city alone and for the wider area a search covers, split into whole homes and rooms. It shows whether a destination is covered, including when a guest has not named a place.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteYes
marketsYes
homes_countYes
markets_countYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and non-destructive, so the safety profile is covered. The description adds context beyond that by explaining what the returned data means - coverage status and counts split between the city alone and the wider search area, and between whole homes and rooms - which is genuinely useful interpretive context.

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?

Three sentences, reasonably front-loaded, each carrying content: what is listed, what the counts mean, and what coverage indicates. Slightly dense and partly restates what the output schema likely already carries, but there is no filler.

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?

With no parameters, an output schema present, and read-only/idempotent annotations, the description supplies everything needed to invoke the tool correctly. Nothing an agent must know to call it is missing.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The absence of parameters is itself consistent with the description's framing as an unfiltered enumeration of destinations.

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

Purpose4/5

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

The description names a specific resource (every city with directly bookable Luxury Lodging homes) and enumerates the attributes returned: state/region, country, home counts, and max group size. It is far more specific than a tautology, but it never contrasts itself with siblings like search_properties or get_property_details, so an agent must infer the distinction.

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

Usage Guidelines3/5

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

Usage is only implied: 'It shows whether a destination is covered, including when a guest has not named a place' hints at a discovery/coverage-check scenario, but there is no explicit when-to-use, no exclusion, and no mention of the sibling tools that would handle property-level searches. Adequate but with a clear gap.

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

search_propertiesSearch Luxury Lodging homesA
Read-onlyIdempotent
Inspect

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.

ParametersJSON 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

ParametersJSON Schema
NameRequiredDescription
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.

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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedget_booking_link3 fields changed
      • addedInput schema / properties / coupon_code
        Added value: +{
        +  "description": "A coupon code the guest was given. Optional. When it applies, the link's signed total includes it and the link carries the code, so the website prices the stay the same way. A code that does not apply, or that nobody issued, leaves the price unchanged and is reported in coupon with its reason. A code tied to one guest's email is reported as not found. A quote does not reserve a use of a code, and the code is checked again when the guest books, so it may no longer apply then.",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • changedOutput schema / properties / booking_url / description
        Previous value: -"Where the guest completes the booking on Luxury Lodging's own site. The link a live quote returns for this stay and rate: the same home, dates, party, rate and attribution, with a freshly signed quote token (so its quote_ref differs from the quote's)."New value: +"Where the guest completes the booking on Luxury Lodging's own site. The link a live quote returns for this stay and rate: the same home, dates, party, rate, coupon and attribution, with a freshly signed quote token (so its quote_ref differs from the quote's). It names the coupon only when the coupon applied."
      • addedOutput schema / properties / coupon
        Added value: +{
        +  "description": "What happened to the coupon_code that was sent. Only returned when one was sent. The stay's totals already include the coupon when applied is true and are the price without it when applied is false.",
        +  "properties": {
        +    "amount_off": {
        +      "description": "Dollars taken off the stay's rent. Only when applied is true; it is already inside the totals.",
        +      "type": "number"
        +    },
        +    "applied": {
        +      "description": "True when the code took money off this stay.",
        +      "type": "boolean"
        +    },
        +    "code": {
        +      "description": "The code as sent, in upper case.",
        +      "type": "string"
        +    },
        +    "label": {
        +      "description": "What the discount is called. Only when applied is true.",
        +      "type": "string"
        +    },
        +    "message": {
        +      "description": "A sentence the guest can read about the code.",
        +      "type": "string"
        +    },
        +    "reason": {
        +      "description": "Why the code did not apply. Only when applied is false. unknown: no such code. unavailable: the code could not be checked just now.",
        +      "enum": [
        +        "unknown",
        +        "inactive",
        +        "expired",
        +        "not_started",
        +        "wrong_market",
        +        "wrong_home",
        +        "requires_attribution",
        +        "no_discountable_amount",
        +        "outside_offer_window",
        +        "blacked_out",
        +        "minimum_nights",
        +        "already_used",
        +        "unavailable"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "applied",
        +    "message"
        +  ],
        +  "type": "object"
        +}
    • Changedget_live_quote5 fields changed
      • addedInput schema / properties / coupon_code
        Added value: +{
        +  "description": "A coupon code the guest was given. Optional. When it applies, the totals and every rate's total include it, and the discount appears in price_breakdown and as a negative row in quote.charges. A code that does not apply, or that nobody issued, leaves the price unchanged and is reported in coupon with its reason. A code tied to one guest's email is reported as not found. A quote does not reserve a use of a code, and the code is checked again when the guest books, so it may no longer apply then.",
        +  "maxLength": 40,
        +  "type": "string"
        +}
      • addedOutput schema / properties / booking_url / description
        Added value: +"Where the guest completes the booking on Luxury Lodging's own site, for the non-refundable rate. It names the coupon only when the coupon applied."
      • addedOutput schema / properties / coupon
        Added value: +{
        +  "description": "What happened to the coupon_code that was sent. Only returned when one was sent. The stay's totals already include the coupon when applied is true and are the price without it when applied is false.",
        +  "properties": {
        +    "amount_off": {
        +      "description": "Dollars taken off the stay's rent. Only when applied is true; it is already inside the totals.",
        +      "type": "number"
        +    },
        +    "applied": {
        +      "description": "True when the code took money off this stay.",
        +      "type": "boolean"
        +    },
        +    "code": {
        +      "description": "The code as sent, in upper case.",
        +      "type": "string"
        +    },
        +    "label": {
        +      "description": "What the discount is called. Only when applied is true.",
        +      "type": "string"
        +    },
        +    "message": {
        +      "description": "A sentence the guest can read about the code.",
        +      "type": "string"
        +    },
        +    "reason": {
        +      "description": "Why the code did not apply. Only when applied is false. unknown: no such code. unavailable: the code could not be checked just now.",
        +      "enum": [
        +        "unknown",
        +        "inactive",
        +        "expired",
        +        "not_started",
        +        "wrong_market",
        +        "wrong_home",
        +        "requires_attribution",
        +        "no_discountable_amount",
        +        "outside_offer_window",
        +        "blacked_out",
        +        "minimum_nights",
        +        "already_used",
        +        "unavailable"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "applied",
        +    "message"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / price_breakdown / properties / discount / description
        Added value: +"Dollars the coupon took off the rent; 0 when none applied."
      • changedOutput schema / properties / stay_total / description
        Previous value: -"The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them."New value: +"The price of the stay, including cleaning, fees and taxes, and the coupon when one applied. Nightly rates exclude them."
  2. 1 tool update
    • Changedget_live_quote3 fields changed
      • changedOutput schema / properties / quote / properties / card_fee_minor / description
        Previous value: -"The 3.5% card processing fee, added at checkout and included in the total."New value: +"The 3.5% card processing fee, added at checkout and included in the total. It is non-refundable when a refundable-rate stay is cancelled."
      • changedOutput schema / properties / rate_options / description
        Previous value: -"Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable for a full refund of everything paid until free_cancel_until. Each rate has its own booking_url."New value: +"Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable until free_cancel_until; on a cancellation by then the 3.5% card processing fee is non-refundable and everything else paid is refunded in full. Each rate has its own booking_url."
      • changedOutput schema / properties / rate_options / items / properties / free_cancel_until / description
        Previous value: -"Refundable rate only. The last instant, in UTC, the stay can be cancelled for a full refund."New value: +"Refundable rate only. The last instant, in UTC, the stay can be cancelled for a refund of everything paid except the 3.5% card processing fee."
  3. 6 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Number of guests."New value: +"Everyone staying, including children and infants."
      • changedInput schema / properties / pets / description
        Previous value: -"Whether the guest is bringing a pet."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. Totals include the pet fee for that many 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"
        +]
      • addedOutput schema / properties / homes / 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 / homes / 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 / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. 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; 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."
      • changedOutput schema / properties / homes / items / properties / pet_fee / description
        Previous value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per night",
        +  "per pet",
        +  "per pet per night"
        +]
    • Addedget_booking_link
    • Changedget_live_quote13 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Number of guests."New value: +"Everyone staying, including children and infants."
      • changedInput schema / properties / pets / description
        Previous value: -"Whether the guest is bringing a pet; this changes the price."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. This changes the price: some homes charge per pet or per pet per night."
      • 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"
        +]
      • changedOutput schema / description
        Previous value: -"A live total for one stay. When available is false only property_id, available, reason and booking_url are present."New value: +"A live total for one stay. When available is false only property_id, available, reason, booking_url and a short quote block are present."
      • addedOutput schema / properties / pets / description
        Added value: +"How many pets this quote is for. pet_fee in price_breakdown is the fee for that many."
      • addedOutput schema / properties / pets / maximum
        Added value: +4
      • addedOutput schema / properties / pets / minimum
        Added value: +0
      • changedOutput schema / properties / pets / type
        Previous value: -"boolean"New value: +"integer"
      • addedOutput schema / properties / quote
        Added value: +{
        +  "description": "The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown.",
        +  "properties": {
        +    "availability_status": {
        +      "enum": [
        +        "available",
        +        "unavailable"
        +      ],
        +      "type": "string"
        +    },
        +    "cancellation_policy_id": {
        +      "description": "The rate this quote prices; rate_options lists both.",
        +      "enum": [
        +        "non_refundable",
        +        "refundable"
        +      ],
        +      "type": "string"
        +    },
        +    "cancellation_summary": {
        +      "type": "string"
        +    },
        +    "canonical_url": {
        +      "description": "The home's property page, not the booking link.",
        +      "type": "string"
        +    },
        +    "card_fee_minor": {
        +      "description": "The 3.5% card processing fee, added at checkout and included in the total.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "charges": {
        +      "description": "Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative.",
        +      "items": {
        +        "properties": {
        +          "amount_minor": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "paid_at": {
        +            "description": "checkout: part of the total. outside_checkout: not part of it (the security hold).",
        +            "enum": [
        +              "checkout",
        +              "outside_checkout"
        +            ],
        +            "type": "string"
        +          },
        +          "type": {
        +            "enum": [
        +              "nightly",
        +              "fee",
        +              "tax",
        +              "discount",
        +              "card_fee",
        +              "security_hold",
        +              "adjustment"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "name",
        +          "amount_minor",
        +          "paid_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "checked_at": {
        +      "description": "When this quote was fetched, ISO 8601.",
        +      "type": "string"
        +    },
        +    "currency": {
        +      "description": "ISO 4217 code, e.g. USD.",
        +      "type": "string"
        +    },
        +    "discounts_minor": {
        +      "description": "A positive amount subtracted from the total; 0 when there is none.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "due_later_minor": {
        +      "description": "The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "due_now_minor": {
        +      "description": "Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "expires_at": {
        +      "description": "When the quote lapses, ISO 8601; the same instant as quote_expires_at.",
        +      "type": "string"
        +    },
        +    "incomplete": {
        +      "description": "True when a required input or tax could not be determined; missing says which.",
        +      "type": "boolean"
        +    },
        +    "inventory_held": {
        +      "description": "False: a quote does not hold the home.",
        +      "type": "boolean"
        +    },
        +    "mandatory_fees_minor": {
        +      "description": "Cleaning and every other required fee.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "missing": {
        +      "description": "rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "nightly_subtotal_minor": {
        +      "description": "Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "nights": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "optional_fees_minor": {
        +      "description": "Fees the guest chose, the pet fee for the pets in this quote.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "quote_id": {
        +      "description": "Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation.",
        +      "type": "string"
        +    },
        +    "refundable": {
        +      "description": "True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate.",
        +      "type": "boolean"
        +    },
        +    "refundable_security_hold_minor": {
        +      "description": "A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "tax_source": {
        +      "description": "Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total.",
        +      "enum": [
        +        "provider",
        +        "jurisdiction_table"
        +      ],
        +      "type": "string"
        +    },
        +    "taxes_included": {
        +      "description": "True: the total includes lodging tax, which is collected on every stay.",
        +      "type": "boolean"
        +    },
        +    "taxes_minor": {
        +      "description": "Lodging tax.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "timezone": {
        +      "description": "IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timezone_source": {
        +      "enum": [
        +        "listing",
        +        "market",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "total_stay_price_minor": {
        +      "description": "The whole price of the stay, equal to stay_total in cents.",
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "availability_status",
        +    "inventory_held",
        +    "checked_at",
        +    "canonical_url",
        +    "incomplete",
        +    "missing"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / rate_options / items / properties / refundable
        Added value: +{
        +  "description": "True when this rate can be cancelled for a refund until free_cancel_until; false when a confirmed reservation cannot be cancelled for a refund.",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / rate_options / items / required
        Previous value: -[
        -  "plan",
        -  "stay_total",
        -  "total_due_now",
        -  "cancellation",
        -  "booking_url"
        -]New value: +[
        +  "plan",
        +  "refundable",
        +  "stay_total",
        +  "total_due_now",
        +  "cancellation",
        +  "booking_url"
        +]
    • Changedget_property_details5 fields changed
      • addedOutput schema / 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 / 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 / policies / properties / pet_fee / description
        Previous value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / description
        Previous value: -"How pet_fee applies. A per-pet-per-night fee multiplies by the nights."New value: +"How pet_fee applies. Per night multiplies by the nights; per pet by the number of pets; per pet per night by both."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per night",
        +  "per pet",
        +  "per pet per night"
        +]
    • Changedlist_markets4 fields changed
      • addedOutput schema / properties / markets / items / properties / area_name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / markets / items / properties / counts
        Added value: +{
        +  "description": "The same stays split into whole homes and rooms, for the city alone and for the area. homes includes unknown_type; a room is not a whole home.",
        +  "properties": {
        +    "area": {
        +      "properties": {
        +        "homes": {
        +          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        +          "type": "integer"
        +        },
        +        "private_rooms": {
        +          "type": "integer"
        +        },
        +        "shared_rooms": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "unknown_type": {
        +          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "homes",
        +        "private_rooms",
        +        "shared_rooms",
        +        "unknown_type"
        +      ],
        +      "type": "object"
        +    },
        +    "city": {
        +      "properties": {
        +        "homes": {
        +          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        +          "type": "integer"
        +        },
        +        "private_rooms": {
        +          "type": "integer"
        +        },
        +        "shared_rooms": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "unknown_type": {
        +          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "homes",
        +        "private_rooms",
        +        "shared_rooms",
        +        "unknown_type"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / markets / items / properties / homes_in_area
        Added value: +{
        +  "description": "Stays a search for this market returns before dates, including nearby cities (Chicago: 65 miles around the city). At least homes.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / markets / items / properties / summary
        Added value: +{
        +  "description": "The counts as a guest reads them, e.g. \"41 stays in Chicago · 47 in the Chicago area, including 13 private rooms\".",
        +  "type": "string"
        +}
    • Changedsearch_properties45 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. 6 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Everyone staying, including children and infants."New value: +"Number of guests."
      • 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. Totals include the pet fee for that many pets."New value: +"Whether the guest is bringing a pet."
      • 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"
      • removedOutput schema / properties / homes / 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 / homes / 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"
        -}
      • changedOutput schema / properties / homes / 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 / homes / 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. 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; from_price_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee / description
        Previous value: -"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per night",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per pet",
        +  "per pet per night"
        +]
    • Removedget_booking_link
    • Changedget_live_quote13 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Everyone staying, including children and infants."New value: +"Number of guests."
      • 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. This changes the price: some homes charge per pet or per pet per night."New value: +"Whether the guest is bringing a pet; this changes the price."
      • 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"
      • changedOutput schema / description
        Previous value: -"A live total for one stay. When available is false only property_id, available, reason, booking_url and a short quote block are present."New value: +"A live total for one stay. When available is false only property_id, available, reason and booking_url are present."
      • removedOutput schema / properties / pets / description
        Removed value: -"How many pets this quote is for. pet_fee in price_breakdown is the fee for that many."
      • removedOutput schema / properties / pets / maximum
        Removed value: -4
      • removedOutput schema / properties / pets / minimum
        Removed value: -0
      • changedOutput schema / properties / pets / type
        Previous value: -"integer"New value: +"boolean"
      • removedOutput schema / properties / quote
        Removed value: -{
        -  "description": "The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown.",
        -  "properties": {
        -    "availability_status": {
        -      "enum": [
        -        "available",
        -        "unavailable"
        -      ],
        -      "type": "string"
        -    },
        -    "cancellation_policy_id": {
        -      "description": "The rate this quote prices; rate_options lists both.",
        -      "enum": [
        -        "non_refundable",
        -        "refundable"
        -      ],
        -      "type": "string"
        -    },
        -    "cancellation_summary": {
        -      "type": "string"
        -    },
        -    "canonical_url": {
        -      "description": "The home's property page, not the booking link.",
        -      "type": "string"
        -    },
        -    "card_fee_minor": {
        -      "description": "The 3.5% card processing fee, added at checkout and included in the total.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "charges": {
        -      "description": "Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative.",
        -      "items": {
        -        "properties": {
        -          "amount_minor": {
        -            "type": "integer"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "paid_at": {
        -            "description": "checkout: part of the total. outside_checkout: not part of it (the security hold).",
        -            "enum": [
        -              "checkout",
        -              "outside_checkout"
        -            ],
        -            "type": "string"
        -          },
        -          "type": {
        -            "enum": [
        -              "nightly",
        -              "fee",
        -              "tax",
        -              "discount",
        -              "card_fee",
        -              "security_hold",
        -              "adjustment"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type",
        -          "name",
        -          "amount_minor",
        -          "paid_at"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "checked_at": {
        -      "description": "When this quote was fetched, ISO 8601.",
        -      "type": "string"
        -    },
        -    "currency": {
        -      "description": "ISO 4217 code, e.g. USD.",
        -      "type": "string"
        -    },
        -    "discounts_minor": {
        -      "description": "A positive amount subtracted from the total; 0 when there is none.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "due_later_minor": {
        -      "description": "The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now.",
        -      "minimum": 0,
        -      "type": "integer"
        -    },
        -    "due_now_minor": {
        -      "description": "Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it.",
        -      "minimum": 0,
        -      "type": "integer"
        -    },
        -    "expires_at": {
        -      "description": "When the quote lapses, ISO 8601; the same instant as quote_expires_at.",
        -      "type": "string"
        -    },
        -    "incomplete": {
        -      "description": "True when a required input or tax could not be determined; missing says which.",
        -      "type": "boolean"
        -    },
        -    "inventory_held": {
        -      "description": "False: a quote does not hold the home.",
        -      "type": "boolean"
        -    },
        -    "mandatory_fees_minor": {
        -      "description": "Cleaning and every other required fee.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "missing": {
        -      "description": "rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "nightly_subtotal_minor": {
        -      "description": "Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "nights": {
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "optional_fees_minor": {
        -      "description": "Fees the guest chose, the pet fee for the pets in this quote.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "quote_id": {
        -      "description": "Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation.",
        -      "type": "string"
        -    },
        -    "refundable": {
        -      "description": "True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate.",
        -      "type": "boolean"
        -    },
        -    "refundable_security_hold_minor": {
        -      "description": "A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none.",
        -      "minimum": 0,
        -      "type": "integer"
        -    },
        -    "tax_source": {
        -      "description": "Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total.",
        -      "enum": [
        -        "provider",
        -        "jurisdiction_table"
        -      ],
        -      "type": "string"
        -    },
        -    "taxes_included": {
        -      "description": "True: the total includes lodging tax, which is collected on every stay.",
        -      "type": "boolean"
        -    },
        -    "taxes_minor": {
        -      "description": "Lodging tax.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "timezone": {
        -      "description": "IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown.",
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "timezone_source": {
        -      "enum": [
        -        "listing",
        -        "market",
        -        "unknown"
        -      ],
        -      "type": "string"
        -    },
        -    "total_stay_price_minor": {
        -      "description": "The whole price of the stay, equal to stay_total in cents.",
        -      "minimum": 0,
        -      "type": "integer"
        -    }
        -  },
        -  "required": [
        -    "availability_status",
        -    "inventory_held",
        -    "checked_at",
        -    "canonical_url",
        -    "incomplete",
        -    "missing"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / rate_options / items / properties / refundable
        Removed value: -{
        -  "description": "True when this rate can be cancelled for a refund until free_cancel_until; false when a confirmed reservation cannot be cancelled for a refund.",
        -  "type": "boolean"
        -}
      • changedOutput schema / properties / rate_options / items / required
        Previous value: -[
        -  "plan",
        -  "refundable",
        -  "stay_total",
        -  "total_due_now",
        -  "cancellation",
        -  "booking_url"
        -]New value: +[
        +  "plan",
        +  "stay_total",
        +  "total_due_now",
        +  "cancellation",
        +  "booking_url"
        +]
    • Changedget_property_details5 fields changed
      • removedOutput schema / 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 / 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"
        -}
      • changedOutput schema / properties / policies / properties / pet_fee / description
        Previous value: -"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / description
        Previous value: -"How pet_fee applies. Per night multiplies by the nights; per pet by the number of pets; per pet per night by both."New value: +"How pet_fee applies. A per-pet-per-night fee multiplies by the nights."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per night",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per pet",
        +  "per pet per night"
        +]
    • Changedlist_markets4 fields changed
      • removedOutput schema / properties / markets / items / properties / area_name
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / markets / items / properties / counts
        Removed value: -{
        -  "description": "The same stays split into whole homes and rooms, for the city alone and for the area. homes includes unknown_type; a room is not a whole home.",
        -  "properties": {
        -    "area": {
        -      "properties": {
        -        "homes": {
        -          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        -          "type": "integer"
        -        },
        -        "private_rooms": {
        -          "type": "integer"
        -        },
        -        "shared_rooms": {
        -          "type": "integer"
        -        },
        -        "total": {
        -          "type": "integer"
        -        },
        -        "unknown_type": {
        -          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "total",
        -        "homes",
        -        "private_rooms",
        -        "shared_rooms",
        -        "unknown_type"
        -      ],
        -      "type": "object"
        -    },
        -    "city": {
        -      "properties": {
        -        "homes": {
        -          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        -          "type": "integer"
        -        },
        -        "private_rooms": {
        -          "type": "integer"
        -        },
        -        "shared_rooms": {
        -          "type": "integer"
        -        },
        -        "total": {
        -          "type": "integer"
        -        },
        -        "unknown_type": {
        -          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "total",
        -        "homes",
        -        "private_rooms",
        -        "shared_rooms",
        -        "unknown_type"
        -      ],
        -      "type": "object"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / properties / markets / items / properties / homes_in_area
        Removed value: -{
        -  "description": "Stays a search for this market returns before dates, including nearby cities (Chicago: 65 miles around the city). At least homes.",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / markets / items / properties / summary
        Removed value: -{
        -  "description": "The counts as a guest reads them, e.g. \"41 stays in Chicago · 47 in the Chicago area, including 13 private rooms\".",
        -  "type": "string"
        -}
    • Changedsearch_properties45 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. 6 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Number of guests."New value: +"Everyone staying, including children and infants."
      • changedInput schema / properties / pets / description
        Previous value: -"Whether the guest is bringing a pet."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. Totals include the pet fee for that many 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"
        +]
      • addedOutput schema / properties / homes / 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 / homes / 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 / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. 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; 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."
      • changedOutput schema / properties / homes / items / properties / pet_fee / description
        Previous value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per night",
        +  "per pet",
        +  "per pet per night"
        +]
    • Addedget_booking_link
    • Changedget_live_quote13 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Number of guests."New value: +"Everyone staying, including children and infants."
      • changedInput schema / properties / pets / description
        Previous value: -"Whether the guest is bringing a pet; this changes the price."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. This changes the price: some homes charge per pet or per pet per night."
      • 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"
        +]
      • changedOutput schema / description
        Previous value: -"A live total for one stay. When available is false only property_id, available, reason and booking_url are present."New value: +"A live total for one stay. When available is false only property_id, available, reason, booking_url and a short quote block are present."
      • addedOutput schema / properties / pets / description
        Added value: +"How many pets this quote is for. pet_fee in price_breakdown is the fee for that many."
      • addedOutput schema / properties / pets / maximum
        Added value: +4
      • addedOutput schema / properties / pets / minimum
        Added value: +0
      • changedOutput schema / properties / pets / type
        Previous value: -"boolean"New value: +"integer"
      • addedOutput schema / properties / quote
        Added value: +{
        +  "description": "The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown.",
        +  "properties": {
        +    "availability_status": {
        +      "enum": [
        +        "available",
        +        "unavailable"
        +      ],
        +      "type": "string"
        +    },
        +    "cancellation_policy_id": {
        +      "description": "The rate this quote prices; rate_options lists both.",
        +      "enum": [
        +        "non_refundable",
        +        "refundable"
        +      ],
        +      "type": "string"
        +    },
        +    "cancellation_summary": {
        +      "type": "string"
        +    },
        +    "canonical_url": {
        +      "description": "The home's property page, not the booking link.",
        +      "type": "string"
        +    },
        +    "card_fee_minor": {
        +      "description": "The 3.5% card processing fee, added at checkout and included in the total.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "charges": {
        +      "description": "Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative.",
        +      "items": {
        +        "properties": {
        +          "amount_minor": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "paid_at": {
        +            "description": "checkout: part of the total. outside_checkout: not part of it (the security hold).",
        +            "enum": [
        +              "checkout",
        +              "outside_checkout"
        +            ],
        +            "type": "string"
        +          },
        +          "type": {
        +            "enum": [
        +              "nightly",
        +              "fee",
        +              "tax",
        +              "discount",
        +              "card_fee",
        +              "security_hold",
        +              "adjustment"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "name",
        +          "amount_minor",
        +          "paid_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "checked_at": {
        +      "description": "When this quote was fetched, ISO 8601.",
        +      "type": "string"
        +    },
        +    "currency": {
        +      "description": "ISO 4217 code, e.g. USD.",
        +      "type": "string"
        +    },
        +    "discounts_minor": {
        +      "description": "A positive amount subtracted from the total; 0 when there is none.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "due_later_minor": {
        +      "description": "The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "due_now_minor": {
        +      "description": "Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "expires_at": {
        +      "description": "When the quote lapses, ISO 8601; the same instant as quote_expires_at.",
        +      "type": "string"
        +    },
        +    "incomplete": {
        +      "description": "True when a required input or tax could not be determined; missing says which.",
        +      "type": "boolean"
        +    },
        +    "inventory_held": {
        +      "description": "False: a quote does not hold the home.",
        +      "type": "boolean"
        +    },
        +    "mandatory_fees_minor": {
        +      "description": "Cleaning and every other required fee.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "missing": {
        +      "description": "rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "nightly_subtotal_minor": {
        +      "description": "Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "nights": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "optional_fees_minor": {
        +      "description": "Fees the guest chose, the pet fee for the pets in this quote.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "quote_id": {
        +      "description": "Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation.",
        +      "type": "string"
        +    },
        +    "refundable": {
        +      "description": "True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate.",
        +      "type": "boolean"
        +    },
        +    "refundable_security_hold_minor": {
        +      "description": "A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "tax_source": {
        +      "description": "Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total.",
        +      "enum": [
        +        "provider",
        +        "jurisdiction_table"
        +      ],
        +      "type": "string"
        +    },
        +    "taxes_included": {
        +      "description": "True: the total includes lodging tax, which is collected on every stay.",
        +      "type": "boolean"
        +    },
        +    "taxes_minor": {
        +      "description": "Lodging tax.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "timezone": {
        +      "description": "IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timezone_source": {
        +      "enum": [
        +        "listing",
        +        "market",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "total_stay_price_minor": {
        +      "description": "The whole price of the stay, equal to stay_total in cents.",
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "availability_status",
        +    "inventory_held",
        +    "checked_at",
        +    "canonical_url",
        +    "incomplete",
        +    "missing"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / rate_options / items / properties / refundable
        Added value: +{
        +  "description": "True when this rate can be cancelled for a refund until free_cancel_until; false when a confirmed reservation cannot be cancelled for a refund.",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / rate_options / items / required
        Previous value: -[
        -  "plan",
        -  "stay_total",
        -  "total_due_now",
        -  "cancellation",
        -  "booking_url"
        -]New value: +[
        +  "plan",
        +  "refundable",
        +  "stay_total",
        +  "total_due_now",
        +  "cancellation",
        +  "booking_url"
        +]
    • Changedget_property_details5 fields changed
      • addedOutput schema / 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 / 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 / policies / properties / pet_fee / description
        Previous value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / description
        Previous value: -"How pet_fee applies. A per-pet-per-night fee multiplies by the nights."New value: +"How pet_fee applies. Per night multiplies by the nights; per pet by the number of pets; per pet per night by both."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per night",
        +  "per pet",
        +  "per pet per night"
        +]
    • Changedlist_markets4 fields changed
      • addedOutput schema / properties / markets / items / properties / area_name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / markets / items / properties / counts
        Added value: +{
        +  "description": "The same stays split into whole homes and rooms, for the city alone and for the area. homes includes unknown_type; a room is not a whole home.",
        +  "properties": {
        +    "area": {
        +      "properties": {
        +        "homes": {
        +          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        +          "type": "integer"
        +        },
        +        "private_rooms": {
        +          "type": "integer"
        +        },
        +        "shared_rooms": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "unknown_type": {
        +          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "homes",
        +        "private_rooms",
        +        "shared_rooms",
        +        "unknown_type"
        +      ],
        +      "type": "object"
        +    },
        +    "city": {
        +      "properties": {
        +        "homes": {
        +          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        +          "type": "integer"
        +        },
        +        "private_rooms": {
        +          "type": "integer"
        +        },
        +        "shared_rooms": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "unknown_type": {
        +          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "homes",
        +        "private_rooms",
        +        "shared_rooms",
        +        "unknown_type"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / markets / items / properties / homes_in_area
        Added value: +{
        +  "description": "Stays a search for this market returns before dates, including nearby cities (Chicago: 65 miles around the city). At least homes.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / markets / items / properties / summary
        Added value: +{
        +  "description": "The counts as a guest reads them, e.g. \"41 stays in Chicago · 47 in the Chicago area, including 13 private rooms\".",
        +  "type": "string"
        +}
    • Changedsearch_properties45 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"
        +]
  6. 6 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Everyone staying, including children and infants."New value: +"Number of guests."
      • 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. Totals include the pet fee for that many pets."New value: +"Whether the guest is bringing a pet."
      • 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"
      • removedOutput schema / properties / homes / 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 / homes / 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"
        -}
      • changedOutput schema / properties / homes / 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 / homes / 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. 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; from_price_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee / description
        Previous value: -"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per night",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per pet",
        +  "per pet per night"
        +]
    • Removedget_booking_link
    • Changedget_live_quote13 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Everyone staying, including children and infants."New value: +"Number of guests."
      • 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. This changes the price: some homes charge per pet or per pet per night."New value: +"Whether the guest is bringing a pet; this changes the price."
      • 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"
      • changedOutput schema / description
        Previous value: -"A live total for one stay. When available is false only property_id, available, reason, booking_url and a short quote block are present."New value: +"A live total for one stay. When available is false only property_id, available, reason and booking_url are present."
      • removedOutput schema / properties / pets / description
        Removed value: -"How many pets this quote is for. pet_fee in price_breakdown is the fee for that many."
      • removedOutput schema / properties / pets / maximum
        Removed value: -4
      • removedOutput schema / properties / pets / minimum
        Removed value: -0
      • changedOutput schema / properties / pets / type
        Previous value: -"integer"New value: +"boolean"
      • removedOutput schema / properties / quote
        Removed value: -{
        -  "description": "The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown.",
        -  "properties": {
        -    "availability_status": {
        -      "enum": [
        -        "available",
        -        "unavailable"
        -      ],
        -      "type": "string"
        -    },
        -    "cancellation_policy_id": {
        -      "description": "The rate this quote prices; rate_options lists both.",
        -      "enum": [
        -        "non_refundable",
        -        "refundable"
        -      ],
        -      "type": "string"
        -    },
        -    "cancellation_summary": {
        -      "type": "string"
        -    },
        -    "canonical_url": {
        -      "description": "The home's property page, not the booking link.",
        -      "type": "string"
        -    },
        -    "card_fee_minor": {
        -      "description": "The 3.5% card processing fee, added at checkout and included in the total.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "charges": {
        -      "description": "Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative.",
        -      "items": {
        -        "properties": {
        -          "amount_minor": {
        -            "type": "integer"
        -          },
        -          "name": {
        -            "type": "string"
        -          },
        -          "paid_at": {
        -            "description": "checkout: part of the total. outside_checkout: not part of it (the security hold).",
        -            "enum": [
        -              "checkout",
        -              "outside_checkout"
        -            ],
        -            "type": "string"
        -          },
        -          "type": {
        -            "enum": [
        -              "nightly",
        -              "fee",
        -              "tax",
        -              "discount",
        -              "card_fee",
        -              "security_hold",
        -              "adjustment"
        -            ],
        -            "type": "string"
        -          }
        -        },
        -        "required": [
        -          "type",
        -          "name",
        -          "amount_minor",
        -          "paid_at"
        -        ],
        -        "type": "object"
        -      },
        -      "type": "array"
        -    },
        -    "checked_at": {
        -      "description": "When this quote was fetched, ISO 8601.",
        -      "type": "string"
        -    },
        -    "currency": {
        -      "description": "ISO 4217 code, e.g. USD.",
        -      "type": "string"
        -    },
        -    "discounts_minor": {
        -      "description": "A positive amount subtracted from the total; 0 when there is none.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "due_later_minor": {
        -      "description": "The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now.",
        -      "minimum": 0,
        -      "type": "integer"
        -    },
        -    "due_now_minor": {
        -      "description": "Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it.",
        -      "minimum": 0,
        -      "type": "integer"
        -    },
        -    "expires_at": {
        -      "description": "When the quote lapses, ISO 8601; the same instant as quote_expires_at.",
        -      "type": "string"
        -    },
        -    "incomplete": {
        -      "description": "True when a required input or tax could not be determined; missing says which.",
        -      "type": "boolean"
        -    },
        -    "inventory_held": {
        -      "description": "False: a quote does not hold the home.",
        -      "type": "boolean"
        -    },
        -    "mandatory_fees_minor": {
        -      "description": "Cleaning and every other required fee.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "missing": {
        -      "description": "rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total.",
        -      "items": {
        -        "type": "string"
        -      },
        -      "type": "array"
        -    },
        -    "nightly_subtotal_minor": {
        -      "description": "Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "nights": {
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "optional_fees_minor": {
        -      "description": "Fees the guest chose, the pet fee for the pets in this quote.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "quote_id": {
        -      "description": "Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation.",
        -      "type": "string"
        -    },
        -    "refundable": {
        -      "description": "True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate.",
        -      "type": "boolean"
        -    },
        -    "refundable_security_hold_minor": {
        -      "description": "A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none.",
        -      "minimum": 0,
        -      "type": "integer"
        -    },
        -    "tax_source": {
        -      "description": "Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total.",
        -      "enum": [
        -        "provider",
        -        "jurisdiction_table"
        -      ],
        -      "type": "string"
        -    },
        -    "taxes_included": {
        -      "description": "True: the total includes lodging tax, which is collected on every stay.",
        -      "type": "boolean"
        -    },
        -    "taxes_minor": {
        -      "description": "Lodging tax.",
        -      "minimum": 0,
        -      "type": [
        -        "integer",
        -        "null"
        -      ]
        -    },
        -    "timezone": {
        -      "description": "IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown.",
        -      "type": [
        -        "string",
        -        "null"
        -      ]
        -    },
        -    "timezone_source": {
        -      "enum": [
        -        "listing",
        -        "market",
        -        "unknown"
        -      ],
        -      "type": "string"
        -    },
        -    "total_stay_price_minor": {
        -      "description": "The whole price of the stay, equal to stay_total in cents.",
        -      "minimum": 0,
        -      "type": "integer"
        -    }
        -  },
        -  "required": [
        -    "availability_status",
        -    "inventory_held",
        -    "checked_at",
        -    "canonical_url",
        -    "incomplete",
        -    "missing"
        -  ],
        -  "type": "object"
        -}
      • removedOutput schema / properties / rate_options / items / properties / refundable
        Removed value: -{
        -  "description": "True when this rate can be cancelled for a refund until free_cancel_until; false when a confirmed reservation cannot be cancelled for a refund.",
        -  "type": "boolean"
        -}
      • changedOutput schema / properties / rate_options / items / required
        Previous value: -[
        -  "plan",
        -  "refundable",
        -  "stay_total",
        -  "total_due_now",
        -  "cancellation",
        -  "booking_url"
        -]New value: +[
        +  "plan",
        +  "stay_total",
        +  "total_due_now",
        +  "cancellation",
        +  "booking_url"
        +]
    • Changedget_property_details5 fields changed
      • removedOutput schema / 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 / 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"
        -}
      • changedOutput schema / properties / policies / properties / pet_fee / description
        Previous value: -"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / description
        Previous value: -"How pet_fee applies. Per night multiplies by the nights; per pet by the number of pets; per pet per night by both."New value: +"How pet_fee applies. A per-pet-per-night fee multiplies by the nights."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per night",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per pet",
        +  "per pet per night"
        +]
    • Changedlist_markets4 fields changed
      • removedOutput schema / properties / markets / items / properties / area_name
        Removed value: -{
        -  "type": "string"
        -}
      • removedOutput schema / properties / markets / items / properties / counts
        Removed value: -{
        -  "description": "The same stays split into whole homes and rooms, for the city alone and for the area. homes includes unknown_type; a room is not a whole home.",
        -  "properties": {
        -    "area": {
        -      "properties": {
        -        "homes": {
        -          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        -          "type": "integer"
        -        },
        -        "private_rooms": {
        -          "type": "integer"
        -        },
        -        "shared_rooms": {
        -          "type": "integer"
        -        },
        -        "total": {
        -          "type": "integer"
        -        },
        -        "unknown_type": {
        -          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "total",
        -        "homes",
        -        "private_rooms",
        -        "shared_rooms",
        -        "unknown_type"
        -      ],
        -      "type": "object"
        -    },
        -    "city": {
        -      "properties": {
        -        "homes": {
        -          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        -          "type": "integer"
        -        },
        -        "private_rooms": {
        -          "type": "integer"
        -        },
        -        "shared_rooms": {
        -          "type": "integer"
        -        },
        -        "total": {
        -          "type": "integer"
        -        },
        -        "unknown_type": {
        -          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        -          "type": "integer"
        -        }
        -      },
        -      "required": [
        -        "total",
        -        "homes",
        -        "private_rooms",
        -        "shared_rooms",
        -        "unknown_type"
        -      ],
        -      "type": "object"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / properties / markets / items / properties / homes_in_area
        Removed value: -{
        -  "description": "Stays a search for this market returns before dates, including nearby cities (Chicago: 65 miles around the city). At least homes.",
        -  "type": "integer"
        -}
      • removedOutput schema / properties / markets / items / properties / summary
        Removed value: -{
        -  "description": "The counts as a guest reads them, e.g. \"41 stays in Chicago · 47 in the Chicago area, including 13 private rooms\".",
        -  "type": "string"
        -}
    • Changedsearch_properties45 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"
        +]
  7. 1 tool update
    • Changedget_live_quote3 fields changed
      • addedOutput schema / properties / quote / properties / refundable
        Added value: +{
        +  "description": "True when the rate this quote prices can be cancelled for a refund until its free-cancellation deadline; false for the non-refundable rate.",
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / rate_options / items / properties / refundable
        Added value: +{
        +  "description": "True when this rate can be cancelled for a refund until free_cancel_until; false when a confirmed reservation cannot be cancelled for a refund.",
        +  "type": "boolean"
        +}
      • changedOutput schema / properties / rate_options / items / required
        Previous value: -[
        -  "plan",
        -  "stay_total",
        -  "total_due_now",
        -  "cancellation",
        -  "booking_url"
        -]New value: +[
        +  "plan",
        +  "refundable",
        +  "stay_total",
        +  "total_due_now",
        +  "cancellation",
        +  "booking_url"
        +]
  8. 1 tool update
    • Changedsearch_properties10 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"
        +]
  9. 2 tool updates
    • Addedget_booking_link
    • Changedsearch_properties28 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"
        +]
  10. 3 tool updates
    • Changedcompare_properties1 field changed
      • changedInput schema / properties / guests / description
        Previous value: -"Number of guests."New value: +"Everyone staying, including children and infants."
    • Changedget_live_quote3 fields changed
      • changedInput schema / properties / guests / description
        Previous value: -"Number of guests."New value: +"Everyone staying, including children and infants."
      • changedOutput schema / description
        Previous value: -"A live total for one stay. When available is false only property_id, available, reason and booking_url are present."New value: +"A live total for one stay. When available is false only property_id, available, reason, booking_url and a short quote block are present."
      • addedOutput schema / properties / quote
        Added value: +{
        +  "description": "The authoritative, machine-readable quote for this stay, for the rate stay_total prices (the non-refundable rate). Amounts ending in _minor are integer cents in `currency`. total_stay_price_minor is exactly what the guest is charged in total, including taxes and the card processing fee, and the amounts add up: total_stay_price_minor = nightly_subtotal_minor + mandatory_fees_minor + optional_fees_minor + taxes_minor + card_fee_minor - discounts_minor. When available is false only availability_status, inventory_held, checked_at, canonical_url, incomplete and missing are present. The itemised _minor amounts are null only when missing includes price_breakdown.",
        +  "properties": {
        +    "availability_status": {
        +      "enum": [
        +        "available",
        +        "unavailable"
        +      ],
        +      "type": "string"
        +    },
        +    "cancellation_policy_id": {
        +      "description": "The rate this quote prices; rate_options lists both.",
        +      "enum": [
        +        "non_refundable",
        +        "refundable"
        +      ],
        +      "type": "string"
        +    },
        +    "cancellation_summary": {
        +      "type": "string"
        +    },
        +    "canonical_url": {
        +      "description": "The home's property page, not the booking link.",
        +      "type": "string"
        +    },
        +    "card_fee_minor": {
        +      "description": "The 3.5% card processing fee, added at checkout and included in the total.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "charges": {
        +      "description": "Every charge, itemised. The amounts of the rows with paid_at checkout add up to total_stay_price_minor exactly; a discount row is negative.",
        +      "items": {
        +        "properties": {
        +          "amount_minor": {
        +            "type": "integer"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "paid_at": {
        +            "description": "checkout: part of the total. outside_checkout: not part of it (the security hold).",
        +            "enum": [
        +              "checkout",
        +              "outside_checkout"
        +            ],
        +            "type": "string"
        +          },
        +          "type": {
        +            "enum": [
        +              "nightly",
        +              "fee",
        +              "tax",
        +              "discount",
        +              "card_fee",
        +              "security_hold",
        +              "adjustment"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type",
        +          "name",
        +          "amount_minor",
        +          "paid_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "checked_at": {
        +      "description": "When this quote was fetched, ISO 8601.",
        +      "type": "string"
        +    },
        +    "currency": {
        +      "description": "ISO 4217 code, e.g. USD.",
        +      "type": "string"
        +    },
        +    "discounts_minor": {
        +      "description": "A positive amount subtracted from the total; 0 when there is none.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "due_later_minor": {
        +      "description": "The rest, charged automatically to the same card 60 days before check-in; 0 when everything is due now.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "due_now_minor": {
        +      "description": "Charged when the guest books: 50% of the total when check-in is more than 60 days away, otherwise all of it.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "expires_at": {
        +      "description": "When the quote lapses, ISO 8601; the same instant as quote_expires_at.",
        +      "type": "string"
        +    },
        +    "incomplete": {
        +      "description": "True when a required input or tax could not be determined; missing says which.",
        +      "type": "boolean"
        +    },
        +    "inventory_held": {
        +      "description": "False: a quote does not hold the home.",
        +      "type": "boolean"
        +    },
        +    "mandatory_fees_minor": {
        +      "description": "Cleaning and every other required fee.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "missing": {
        +      "description": "rent_tax_rate: the provider's fee table could not be read, so the refundable rate cannot be priced. price_breakdown: the provider sent only a total. line_items_mismatch: the itemised charges add up to more than the total.",
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "nightly_subtotal_minor": {
        +      "description": "Rent for the nights before any discount, plus the refundable-rate premium when that rate is quoted.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "nights": {
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "optional_fees_minor": {
        +      "description": "Fees the guest chose, the pet fee for the pets in this quote.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "quote_id": {
        +      "description": "Stable id for this priced stay: the same home, dates, guests, pets, rate and total give the same id; any change gives a new one. Not a hold or a reservation.",
        +      "type": "string"
        +    },
        +    "refundable_security_hold_minor": {
        +      "description": "A refundable hold on the card on file, separate from the total. The home's own amount, or the standard hold when it states none.",
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "tax_source": {
        +      "description": "Where the tax comes from: the provider's own quote, or our verified rate table for the home's jurisdiction when the provider's quote had none. Either way the tax is collected and in the total.",
        +      "enum": [
        +        "provider",
        +        "jurisdiction_table"
        +      ],
        +      "type": "string"
        +    },
        +    "taxes_included": {
        +      "description": "True: the total includes lodging tax, which is collected on every stay.",
        +      "type": "boolean"
        +    },
        +    "taxes_minor": {
        +      "description": "Lodging tax.",
        +      "minimum": 0,
        +      "type": [
        +        "integer",
        +        "null"
        +      ]
        +    },
        +    "timezone": {
        +      "description": "IANA zone of the home: the provider's own zone when it states one, otherwise the zone of the home's US state (timezone_source says which). Null when unknown.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "timezone_source": {
        +      "enum": [
        +        "listing",
        +        "market",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "total_stay_price_minor": {
        +      "description": "The whole price of the stay, equal to stay_total in cents.",
        +      "minimum": 0,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "availability_status",
        +    "inventory_held",
        +    "checked_at",
        +    "canonical_url",
        +    "incomplete",
        +    "missing"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_properties2 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"
        +}
  11. 4 tool updates
    • Changedcompare_properties6 fields changed
      • changedInput schema / properties / pets / description
        Previous value: -"Whether the guest is bringing a pet."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. Totals include the pet fee for that many 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"
        +]
      • changedOutput schema / properties / homes / items / properties / pet_fee / description
        Previous value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / homes / items / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per night",
        +  "per pet",
        +  "per pet per night"
        +]
    • Changedget_live_quote8 fields changed
      • changedInput schema / properties / pets / description
        Previous value: -"Whether the guest is bringing a pet; this changes the price."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. This changes the price: some homes charge per pet or per pet per night."
      • 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"
        +]
      • addedOutput schema / properties / pets / description
        Added value: +"How many pets this quote is for. pet_fee in price_breakdown is the fee for that many."
      • addedOutput schema / properties / pets / maximum
        Added value: +4
      • addedOutput schema / properties / pets / minimum
        Added value: +0
      • changedOutput schema / properties / pets / type
        Previous value: -"boolean"New value: +"integer"
    • Changedget_property_details3 fields changed
      • changedOutput schema / properties / policies / properties / pet_fee / description
        Previous value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."New value: +"The fee for one pet, from the fee table the quote charges from; with several pets a live quote charges it as pet_fee_basis says (per pet, per pet per night) and states the total in price_breakdown.pet_fee. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / description
        Previous value: -"How pet_fee applies. A per-pet-per-night fee multiplies by the nights."New value: +"How pet_fee applies. Per night multiplies by the nights; per pet by the number of pets; per pet per night by both."
      • changedOutput schema / properties / policies / properties / pet_fee_basis / enum
        Previous value: -[
        -  "per stay",
        -  "per pet",
        -  "per pet per night"
        -]New value: +[
        +  "per stay",
        +  "per night",
        +  "per pet",
        +  "per pet per night"
        +]
    • Changedsearch_properties4 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"
        +]
  12. 1 tool update
    • Changedsearch_properties2 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"
        +]
  13. 4 tool updates
    • Changedcompare_properties4 fields changed
      • addedOutput schema / properties / homes / 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 / homes / 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 / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. 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; 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."
    • Changedget_property_details2 fields changed
      • addedOutput schema / 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 / 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"
        +}
    • Changedlist_markets4 fields changed
      • addedOutput schema / properties / markets / items / properties / area_name
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / markets / items / properties / counts
        Added value: +{
        +  "description": "The same stays split into whole homes and rooms, for the city alone and for the area. homes includes unknown_type; a room is not a whole home.",
        +  "properties": {
        +    "area": {
        +      "properties": {
        +        "homes": {
        +          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        +          "type": "integer"
        +        },
        +        "private_rooms": {
        +          "type": "integer"
        +        },
        +        "shared_rooms": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "unknown_type": {
        +          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "homes",
        +        "private_rooms",
        +        "shared_rooms",
        +        "unknown_type"
        +      ],
        +      "type": "object"
        +    },
        +    "city": {
        +      "properties": {
        +        "homes": {
        +          "description": "Entire homes, plus homes whose type is not recorded (unknown_type).",
        +          "type": "integer"
        +        },
        +        "private_rooms": {
        +          "type": "integer"
        +        },
        +        "shared_rooms": {
        +          "type": "integer"
        +        },
        +        "total": {
        +          "type": "integer"
        +        },
        +        "unknown_type": {
        +          "description": "Counted inside homes: nothing on record says whether these are whole homes.",
        +          "type": "integer"
        +        }
        +      },
        +      "required": [
        +        "total",
        +        "homes",
        +        "private_rooms",
        +        "shared_rooms",
        +        "unknown_type"
        +      ],
        +      "type": "object"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / markets / items / properties / homes_in_area
        Added value: +{
        +  "description": "Stays a search for this market returns before dates, including nearby cities (Chicago: 65 miles around the city). At least homes.",
        +  "type": "integer"
        +}
      • addedOutput schema / properties / markets / items / properties / summary
        Added value: +{
        +  "description": "The counts as a guest reads them, e.g. \"41 stays in Chicago · 47 in the Chicago area, including 13 private rooms\".",
        +  "type": "string"
        +}
    • Changedsearch_properties5 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."
  14. 5 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date, YYYY-MM-DD. Give both dates to get totals."New value: +"Check-in date, YYYY-MM-DD. Totals are returned only when both dates are given."
      • changedInput schema / properties / guests / maximum
        Previous value: -40New value: +50
      • addedOutput schema / properties / homes / items / properties / avg_per_night / description
        Added value: +"No longer returned; stay_total is the price of the stay."
      • changedOutput schema / properties / homes / items / properties / details_available / description
        Previous value: -"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all -- read detail_note, and call get_property_details for it again."New value: +"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all; detail_note says why."
      • changedOutput schema / properties / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. Null means no starting rate is published for this home, never that it is free -- read from_price_note."New value: +"Starting nightly rate. 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; from_price_note says why."
      • changedOutput schema / properties / homes / 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."
      • addedOutput schema / properties / homes / items / properties / pet_fee / description
        Added value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • addedOutput schema / properties / homes / items / properties / pet_fee_basis
        Added value: +{
        +  "enum": [
        +    "per stay",
        +    "per pet",
        +    "per pet per night"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / homes / items / properties / pet_fee_note
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / homes / 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."
    • Changedget_live_quote11 fields changed
      • changedInput schema / properties / guests / maximum
        Previous value: -40New value: +50
      • changedOutput schema / properties / cancellation / description
        Previous value: -"This home's terms. Never promise a refund beyond what this says."New value: +"This home's own cancellation terms for the non-refundable rate, which stay_total prices. Each entry in rate_options carries its own terms, and those are the only refund terms that apply to that rate."
      • addedOutput schema / properties / payment_schedule
        Added value: +{
        +  "description": "When the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking.",
        +  "properties": {
        +    "balance": {
        +      "type": "number"
        +    },
        +    "balance_charged_on": {
        +      "type": "string"
        +    },
        +    "due_at_booking": {
        +      "type": "number"
        +    },
        +    "plan": {
        +      "enum": [
        +        "full",
        +        "deposit"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / price_breakdown / properties / refundable_rate_premium
        Added value: +{
        +  "description": "The 8% of the nightly subtotal the refundable rate adds; 0 on the non-refundable rate.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / price_breakdown / properties / taxes / description
        Previous value: -"Lodging tax. Always collected and always included in the total."New value: +"Lodging tax. It is collected on every stay and included in the total."
      • changedOutput schema / properties / quote_expires_at / description
        Previous value: -"After this the total must be re-quoted before it is given to a guest."New value: +"When this quote lapses. After it, the price of the stay can differ from stay_total until it is quoted again."
      • addedOutput schema / properties / rate_options
        Added value: +{
        +  "description": "Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable for a full refund of everything paid until free_cancel_until. Each rate has its own booking_url.",
        +  "items": {
        +    "properties": {
        +      "booking_url": {
        +        "type": "string"
        +      },
        +      "cancellation": {
        +        "description": "This rate's terms.",
        +        "type": "string"
        +      },
        +      "free_cancel_until": {
        +        "description": "Refundable rate only. The last instant, in UTC, the stay can be cancelled for a full refund.",
        +        "type": "string"
        +      },
        +      "payment_schedule": {
        +        "type": "object"
        +      },
        +      "plan": {
        +        "enum": [
        +          "non_refundable",
        +          "refundable"
        +        ],
        +        "type": "string"
        +      },
        +      "price_breakdown": {
        +        "type": "object"
        +      },
        +      "stay_total": {
        +        "type": "number"
        +      },
        +      "total_due_now": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "plan",
        +      "stay_total",
        +      "total_due_now",
        +      "cancellation",
        +      "booking_url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / security_deposit_hold / description
        Previous value: -"A refundable hold, not part of total_due_now."New value: +"A refundable hold, not part of stay_total."
      • addedOutput schema / properties / stay_total
        Added value: +{
        +  "description": "The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / total_display / description
        Added value: +"stay_total, formatted."
      • changedOutput schema / properties / total_due_now / description
        Previous value: -"Everything the guest pays at booking, including cleaning, fees and taxes. State this, never the nightly rate alone."New value: +"What the guest pays at booking: the whole stay_total, or 50% of it when check-in is more than 60 days away; payment_schedule says which."
    • Changedget_property_details5 fields changed
      • changedOutput schema / properties / guest_reviews / properties / reviews / items / properties / source / description
        Previous value: -"The platform the review was left on. Always name it when quoting the review."New value: +"The platform the review was left on."
      • changedOutput schema / properties / location / properties / country / description
        Previous value: -"Null when the provider gave none; never assume one."New value: +"Null when the provider gave none; the country is then unknown."
      • addedOutput schema / properties / policies / properties / pet_fee / description
        Added value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • addedOutput schema / properties / policies / properties / pet_fee_basis
        Added value: +{
        +  "description": "How pet_fee applies. A per-pet-per-night fee multiplies by the nights.",
        +  "enum": [
        +    "per stay",
        +    "per pet",
        +    "per pet per night"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / policies / properties / pet_fee_note
        Added value: +{
        +  "type": "string"
        +}
    • Changedlist_markets1 field changed
      • changedOutput schema / properties / markets / items / properties / collection_url / description
        Previous value: -"The public page for this market, when it has enough homes to have one. Safe to cite; it lists the homes and their neighbourhoods."New value: +"The public page for this market, when it has enough homes to have one. It lists the homes and their neighbourhoods."
    • Changedsearch_properties13 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."
  15. 5 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date, YYYY-MM-DD. Totals are returned only when both dates are given."New value: +"Check-in date, YYYY-MM-DD. Give both dates to get totals."
      • changedInput schema / properties / guests / maximum
        Previous value: -50New value: +40
      • removedOutput schema / properties / homes / items / properties / avg_per_night / description
        Removed value: -"No longer returned; stay_total is the price of the stay."
      • changedOutput schema / properties / homes / items / properties / details_available / description
        Previous value: -"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all; detail_note says why."New value: +"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all -- read detail_note, and call get_property_details for it again."
      • changedOutput schema / properties / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. 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; from_price_note says why."New value: +"Starting nightly rate. Null means no starting rate is published for this home, never that it is free -- read from_price_note."
      • changedOutput schema / properties / homes / 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."
      • removedOutput schema / properties / homes / items / properties / pet_fee / description
        Removed value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • removedOutput schema / properties / homes / items / properties / pet_fee_basis
        Removed value: -{
        -  "enum": [
        -    "per stay",
        -    "per pet",
        -    "per pet per night"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / homes / items / properties / pet_fee_note
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / homes / 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."
    • Changedget_live_quote11 fields changed
      • changedInput schema / properties / guests / maximum
        Previous value: -50New value: +40
      • changedOutput schema / properties / cancellation / description
        Previous value: -"This home's own cancellation terms for the non-refundable rate, which stay_total prices. Each entry in rate_options carries its own terms, and those are the only refund terms that apply to that rate."New value: +"This home's terms. Never promise a refund beyond what this says."
      • removedOutput schema / properties / payment_schedule
        Removed value: -{
        -  "description": "When the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking.",
        -  "properties": {
        -    "balance": {
        -      "type": "number"
        -    },
        -    "balance_charged_on": {
        -      "type": "string"
        -    },
        -    "due_at_booking": {
        -      "type": "number"
        -    },
        -    "plan": {
        -      "enum": [
        -        "full",
        -        "deposit"
        -      ],
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / properties / price_breakdown / properties / refundable_rate_premium
        Removed value: -{
        -  "description": "The 8% of the nightly subtotal the refundable rate adds; 0 on the non-refundable rate.",
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • changedOutput schema / properties / price_breakdown / properties / taxes / description
        Previous value: -"Lodging tax. It is collected on every stay and included in the total."New value: +"Lodging tax. Always collected and always included in the total."
      • changedOutput schema / properties / quote_expires_at / description
        Previous value: -"When this quote lapses. After it, the price of the stay can differ from stay_total until it is quoted again."New value: +"After this the total must be re-quoted before it is given to a guest."
      • removedOutput schema / properties / rate_options
        Removed value: -{
        -  "description": "Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable for a full refund of everything paid until free_cancel_until. Each rate has its own booking_url.",
        -  "items": {
        -    "properties": {
        -      "booking_url": {
        -        "type": "string"
        -      },
        -      "cancellation": {
        -        "description": "This rate's terms.",
        -        "type": "string"
        -      },
        -      "free_cancel_until": {
        -        "description": "Refundable rate only. The last instant, in UTC, the stay can be cancelled for a full refund.",
        -        "type": "string"
        -      },
        -      "payment_schedule": {
        -        "type": "object"
        -      },
        -      "plan": {
        -        "enum": [
        -          "non_refundable",
        -          "refundable"
        -        ],
        -        "type": "string"
        -      },
        -      "price_breakdown": {
        -        "type": "object"
        -      },
        -      "stay_total": {
        -        "type": "number"
        -      },
        -      "total_due_now": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "plan",
        -      "stay_total",
        -      "total_due_now",
        -      "cancellation",
        -      "booking_url"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / security_deposit_hold / description
        Previous value: -"A refundable hold, not part of stay_total."New value: +"A refundable hold, not part of total_due_now."
      • removedOutput schema / properties / stay_total
        Removed value: -{
        -  "description": "The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them.",
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / total_display / description
        Removed value: -"stay_total, formatted."
      • changedOutput schema / properties / total_due_now / description
        Previous value: -"What the guest pays at booking: the whole stay_total, or 50% of it when check-in is more than 60 days away; payment_schedule says which."New value: +"Everything the guest pays at booking, including cleaning, fees and taxes. State this, never the nightly rate alone."
    • Changedget_property_details5 fields changed
      • changedOutput schema / properties / guest_reviews / properties / reviews / items / properties / source / description
        Previous value: -"The platform the review was left on."New value: +"The platform the review was left on. Always name it when quoting the review."
      • changedOutput schema / properties / location / properties / country / description
        Previous value: -"Null when the provider gave none; the country is then unknown."New value: +"Null when the provider gave none; never assume one."
      • removedOutput schema / properties / policies / properties / pet_fee / description
        Removed value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • removedOutput schema / properties / policies / properties / pet_fee_basis
        Removed value: -{
        -  "description": "How pet_fee applies. A per-pet-per-night fee multiplies by the nights.",
        -  "enum": [
        -    "per stay",
        -    "per pet",
        -    "per pet per night"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / policies / properties / pet_fee_note
        Removed value: -{
        -  "type": "string"
        -}
    • Changedlist_markets1 field changed
      • changedOutput schema / properties / markets / items / properties / collection_url / description
        Previous value: -"The public page for this market, when it has enough homes to have one. It lists the homes and their neighbourhoods."New value: +"The public page for this market, when it has enough homes to have one. Safe to cite; it lists the homes and their neighbourhoods."
    • Changedsearch_properties13 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."
  16. 5 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date, YYYY-MM-DD. Give both dates to get totals."New value: +"Check-in date, YYYY-MM-DD. Totals are returned only when both dates are given."
      • changedInput schema / properties / guests / maximum
        Previous value: -40New value: +50
      • addedOutput schema / properties / homes / items / properties / avg_per_night / description
        Added value: +"No longer returned; stay_total is the price of the stay."
      • changedOutput schema / properties / homes / items / properties / details_available / description
        Previous value: -"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all -- read detail_note, and call get_property_details for it again."New value: +"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all; detail_note says why."
      • changedOutput schema / properties / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. Null means no starting rate is published for this home, never that it is free -- read from_price_note."New value: +"Starting nightly rate. 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; from_price_note says why."
      • changedOutput schema / properties / homes / 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."
      • addedOutput schema / properties / homes / items / properties / pet_fee / description
        Added value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • addedOutput schema / properties / homes / items / properties / pet_fee_basis
        Added value: +{
        +  "enum": [
        +    "per stay",
        +    "per pet",
        +    "per pet per night"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / homes / items / properties / pet_fee_note
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / properties / homes / 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."
    • Changedget_live_quote11 fields changed
      • changedInput schema / properties / guests / maximum
        Previous value: -40New value: +50
      • changedOutput schema / properties / cancellation / description
        Previous value: -"This home's terms. Never promise a refund beyond what this says."New value: +"This home's own cancellation terms for the non-refundable rate, which stay_total prices. Each entry in rate_options carries its own terms, and those are the only refund terms that apply to that rate."
      • addedOutput schema / properties / payment_schedule
        Added value: +{
        +  "description": "When the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking.",
        +  "properties": {
        +    "balance": {
        +      "type": "number"
        +    },
        +    "balance_charged_on": {
        +      "type": "string"
        +    },
        +    "due_at_booking": {
        +      "type": "number"
        +    },
        +    "plan": {
        +      "enum": [
        +        "full",
        +        "deposit"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / price_breakdown / properties / refundable_rate_premium
        Added value: +{
        +  "description": "The 8% of the nightly subtotal the refundable rate adds; 0 on the non-refundable rate.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • changedOutput schema / properties / price_breakdown / properties / taxes / description
        Previous value: -"Lodging tax. Always collected and always included in the total."New value: +"Lodging tax. It is collected on every stay and included in the total."
      • changedOutput schema / properties / quote_expires_at / description
        Previous value: -"After this the total must be re-quoted before it is given to a guest."New value: +"When this quote lapses. After it, the price of the stay can differ from stay_total until it is quoted again."
      • addedOutput schema / properties / rate_options
        Added value: +{
        +  "description": "Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable for a full refund of everything paid until free_cancel_until. Each rate has its own booking_url.",
        +  "items": {
        +    "properties": {
        +      "booking_url": {
        +        "type": "string"
        +      },
        +      "cancellation": {
        +        "description": "This rate's terms.",
        +        "type": "string"
        +      },
        +      "free_cancel_until": {
        +        "description": "Refundable rate only. The last instant, in UTC, the stay can be cancelled for a full refund.",
        +        "type": "string"
        +      },
        +      "payment_schedule": {
        +        "type": "object"
        +      },
        +      "plan": {
        +        "enum": [
        +          "non_refundable",
        +          "refundable"
        +        ],
        +        "type": "string"
        +      },
        +      "price_breakdown": {
        +        "type": "object"
        +      },
        +      "stay_total": {
        +        "type": "number"
        +      },
        +      "total_due_now": {
        +        "type": "number"
        +      }
        +    },
        +    "required": [
        +      "plan",
        +      "stay_total",
        +      "total_due_now",
        +      "cancellation",
        +      "booking_url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / security_deposit_hold / description
        Previous value: -"A refundable hold, not part of total_due_now."New value: +"A refundable hold, not part of stay_total."
      • addedOutput schema / properties / stay_total
        Added value: +{
        +  "description": "The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them.",
        +  "type": [
        +    "number",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / total_display / description
        Added value: +"stay_total, formatted."
      • changedOutput schema / properties / total_due_now / description
        Previous value: -"Everything the guest pays at booking, including cleaning, fees and taxes. State this, never the nightly rate alone."New value: +"What the guest pays at booking: the whole stay_total, or 50% of it when check-in is more than 60 days away; payment_schedule says which."
    • Changedget_property_details5 fields changed
      • changedOutput schema / properties / guest_reviews / properties / reviews / items / properties / source / description
        Previous value: -"The platform the review was left on. Always name it when quoting the review."New value: +"The platform the review was left on."
      • changedOutput schema / properties / location / properties / country / description
        Previous value: -"Null when the provider gave none; never assume one."New value: +"Null when the provider gave none; the country is then unknown."
      • addedOutput schema / properties / policies / properties / pet_fee / description
        Added value: +"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • addedOutput schema / properties / policies / properties / pet_fee_basis
        Added value: +{
        +  "description": "How pet_fee applies. A per-pet-per-night fee multiplies by the nights.",
        +  "enum": [
        +    "per stay",
        +    "per pet",
        +    "per pet per night"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / policies / properties / pet_fee_note
        Added value: +{
        +  "type": "string"
        +}
    • Changedlist_markets1 field changed
      • changedOutput schema / properties / markets / items / properties / collection_url / description
        Previous value: -"The public page for this market, when it has enough homes to have one. Safe to cite; it lists the homes and their neighbourhoods."New value: +"The public page for this market, when it has enough homes to have one. It lists the homes and their neighbourhoods."
    • Changedsearch_properties13 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."
  17. 5 tool updates
    • Changedcompare_properties11 fields changed
      • changedInput schema / properties / check_in / description
        Previous value: -"Check-in date, YYYY-MM-DD. Totals are returned only when both dates are given."New value: +"Check-in date, YYYY-MM-DD. Give both dates to get totals."
      • changedInput schema / properties / guests / maximum
        Previous value: -50New value: +40
      • removedOutput schema / properties / homes / items / properties / avg_per_night / description
        Removed value: -"No longer returned; stay_total is the price of the stay."
      • changedOutput schema / properties / homes / items / properties / details_available / description
        Previous value: -"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all; detail_note says why."New value: +"Only present, and only false, when this home's record could not be loaded. Such a row carries no name, place, amenity or review fields at all -- read detail_note, and call get_property_details for it again."
      • changedOutput schema / properties / homes / 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 / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. 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; from_price_note says why."New value: +"Starting nightly rate. Null means no starting rate is published for this home, never that it is free -- read from_price_note."
      • changedOutput schema / properties / homes / 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."
      • removedOutput schema / properties / homes / items / properties / pet_fee / description
        Removed value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • removedOutput schema / properties / homes / items / properties / pet_fee_basis
        Removed value: -{
        -  "enum": [
        -    "per stay",
        -    "per pet",
        -    "per pet per night"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / homes / items / properties / pet_fee_note
        Removed value: -{
        -  "type": "string"
        -}
      • changedOutput schema / properties / homes / 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."
    • Changedget_live_quote11 fields changed
      • changedInput schema / properties / guests / maximum
        Previous value: -50New value: +40
      • changedOutput schema / properties / cancellation / description
        Previous value: -"This home's own cancellation terms for the non-refundable rate, which stay_total prices. Each entry in rate_options carries its own terms, and those are the only refund terms that apply to that rate."New value: +"This home's terms. Never promise a refund beyond what this says."
      • removedOutput schema / properties / payment_schedule
        Removed value: -{
        -  "description": "When the guest pays. plan 'deposit': due_at_booking now and the balance charged automatically to the same card on balance_charged_on (60 days before check-in). plan 'full': everything at booking.",
        -  "properties": {
        -    "balance": {
        -      "type": "number"
        -    },
        -    "balance_charged_on": {
        -      "type": "string"
        -    },
        -    "due_at_booking": {
        -      "type": "number"
        -    },
        -    "plan": {
        -      "enum": [
        -        "full",
        -        "deposit"
        -      ],
        -      "type": "string"
        -    }
        -  },
        -  "type": "object"
        -}
      • removedOutput schema / properties / price_breakdown / properties / refundable_rate_premium
        Removed value: -{
        -  "description": "The 8% of the nightly subtotal the refundable rate adds; 0 on the non-refundable rate.",
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • changedOutput schema / properties / price_breakdown / properties / taxes / description
        Previous value: -"Lodging tax. It is collected on every stay and included in the total."New value: +"Lodging tax. Always collected and always included in the total."
      • changedOutput schema / properties / quote_expires_at / description
        Previous value: -"When this quote lapses. After it, the price of the stay can differ from stay_total until it is quoted again."New value: +"After this the total must be re-quoted before it is given to a guest."
      • removedOutput schema / properties / rate_options
        Removed value: -{
        -  "description": "Every rate on offer for this stay. The first is the non-refundable rate (the same totals as the top level). When check-in is more than 30 days away a refundable rate follows: 8% more on the nightly subtotal, taxed as rent, cancellable for a full refund of everything paid until free_cancel_until. Each rate has its own booking_url.",
        -  "items": {
        -    "properties": {
        -      "booking_url": {
        -        "type": "string"
        -      },
        -      "cancellation": {
        -        "description": "This rate's terms.",
        -        "type": "string"
        -      },
        -      "free_cancel_until": {
        -        "description": "Refundable rate only. The last instant, in UTC, the stay can be cancelled for a full refund.",
        -        "type": "string"
        -      },
        -      "payment_schedule": {
        -        "type": "object"
        -      },
        -      "plan": {
        -        "enum": [
        -          "non_refundable",
        -          "refundable"
        -        ],
        -        "type": "string"
        -      },
        -      "price_breakdown": {
        -        "type": "object"
        -      },
        -      "stay_total": {
        -        "type": "number"
        -      },
        -      "total_due_now": {
        -        "type": "number"
        -      }
        -    },
        -    "required": [
        -      "plan",
        -      "stay_total",
        -      "total_due_now",
        -      "cancellation",
        -      "booking_url"
        -    ],
        -    "type": "object"
        -  },
        -  "type": "array"
        -}
      • changedOutput schema / properties / security_deposit_hold / description
        Previous value: -"A refundable hold, not part of stay_total."New value: +"A refundable hold, not part of total_due_now."
      • removedOutput schema / properties / stay_total
        Removed value: -{
        -  "description": "The price of the stay, including cleaning, fees and taxes. Nightly rates exclude them.",
        -  "type": [
        -    "number",
        -    "null"
        -  ]
        -}
      • removedOutput schema / properties / total_display / description
        Removed value: -"stay_total, formatted."
      • changedOutput schema / properties / total_due_now / description
        Previous value: -"What the guest pays at booking: the whole stay_total, or 50% of it when check-in is more than 60 days away; payment_schedule says which."New value: +"Everything the guest pays at booking, including cleaning, fees and taxes. State this, never the nightly rate alone."
    • Changedget_property_details5 fields changed
      • changedOutput schema / properties / guest_reviews / properties / reviews / items / properties / source / description
        Previous value: -"The platform the review was left on."New value: +"The platform the review was left on. Always name it when quoting the review."
      • changedOutput schema / properties / location / properties / country / description
        Previous value: -"Null when the provider gave none; the country is then unknown."New value: +"Null when the provider gave none; never assume one."
      • removedOutput schema / properties / policies / properties / pet_fee / description
        Removed value: -"For a stay with one pet, from the fee table the quote charges from. Null when the home charges none; omitted when it could not be verified, and pet_fee_note says why."
      • removedOutput schema / properties / policies / properties / pet_fee_basis
        Removed value: -{
        -  "description": "How pet_fee applies. A per-pet-per-night fee multiplies by the nights.",
        -  "enum": [
        -    "per stay",
        -    "per pet",
        -    "per pet per night"
        -  ],
        -  "type": "string"
        -}
      • removedOutput schema / properties / policies / properties / pet_fee_note
        Removed value: -{
        -  "type": "string"
        -}
    • Changedlist_markets1 field changed
      • changedOutput schema / properties / markets / items / properties / collection_url / description
        Previous value: -"The public page for this market, when it has enough homes to have one. It lists the homes and their neighbourhoods."New value: +"The public page for this market, when it has enough homes to have one. Safe to cite; it lists the homes and their neighbourhoods."
    • Changedsearch_properties13 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."
  18. 2 tool updates
    • Changedcompare_properties2 fields changed
      • addedOutput schema / properties / homes / items / properties / avg_per_night / description
        Added value: +"No longer returned; stay_total is the price of the stay."
      • changedOutput schema / properties / homes / items / properties / from_price_per_night / description
        Previous value: -"Starting nightly rate. Null means no starting rate is published for this home, not that it is free; from_price_note says why."New value: +"Starting nightly rate. 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; from_price_note says why."
    • Changedsearch_properties3 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."

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources