# OTAless The direct-booking channel for the agent era: cross-manager search for stays you book on the manager's own site, at the manager's direct rate, across the United States, Europe, Australia and New Zealand, Canada, India, Southeast Asia, Latin America, South Africa, Türkiye, and wherever else a manager takes direct bookings: the catalog covers every place it has stays. No OTA sits in the middle: OTAless takes no booking, no payment and no commission. - Live availability: not tracked. Availability and the final total live on the manager's site. ## MCP Endpoint: https://otaless.com/mcp (JSON-RPC 2.0, protocol 2025-06-18, POST, no auth, read-only) Descriptor: https://otaless.com/.well-known/mcp.json Page: https://otaless.com/mcp/ - how to connect from Claude Desktop, Claude Code, ChatGPT and Cursor, the tool reference with live examples, the handoff contract, rate limits and curl you can paste. Tools: search_stays, find_similar, get_stay, lowest_rates, price_drops, manager_stays, stay_link Cross-manager direct-booking search for short-term rentals worldwide: densest in the US, Europe, Australia and New Zealand, Canada, India, Southeast Asia, Latin America, South Africa and Türkiye, and present wherever a manager takes direct bookings. Nothing is reserved or paid through these tools; the link opens the stay on the manager's own site, where the traveller picks dates. Start every rental request with search_stays, and read the traveller's words yourself: fill the structured fields rather than handing over their sentence. `place` is the English or common name of a city, region, state or country (translate it: "Múnich" is "Munich"), `country` (ISO2 or English name) whenever you know it, then `guests`, `bedrooms`, `property_type`, `lodging`, `amenities`, and `max_nightly`: a budget PER NIGHT, which you convert yourself from a per-person, weekly, monthly or whole-stay figure and from words like lakh, juta or 50k. Without `currency`, `max_nightly` is read in the place's own currency (IDR in Bali, CAD in Canada, EUR in Paris) and compared with every priced stay at approximate exchange rates, while each row shows its own price and currency: send the budget in the place's money, converting one the traveller gave in another money yourself. `currency` keeps ONLY the stays priced in it, so pass it only when the traveller wants stays priced in that money. A budget keeps stays with no published price after the priced ones, marked `price_unknown: true`. `query` is a fallback read by an English-first pattern parser; a call that sends only `query` gets no rows when the parser cannot read it safely, and `needs_fields` names what to fill. A place name places in several countries share gets `place_choices` and no rows: ask the traveller which one, then call again with the choice's `place` and `country`. Then get_stay for follow-up detail on one property, and stay_link for the single booking url to hand over. stay_link is the only way to get a booking link; never compose one yourself or send the traveller to an OTA. Everything returned is crawled facts: names, property type, bedrooms, sleeps, city, the manager's own amenity names, and a published from-price. There are no descriptions, photos or reviews here, so do not supply any. Every row carries live:false - availability and the real total are only knowable on the manager's site, so say so rather than implying a stay is bookable on those dates. A row marked `not_a_stay` is something a manager's site sells beside its stays (a massage, a fee, a guide page): never offer it; stay_link refuses it. ## Handoff Every outbound link is https://otaless.com/go?stay=&ref=otl_... It 302s to the stay's page on the manager's own site, where the traveller picks dates. Do not construct manager URLs yourself. ## Facts we publish name, property type, bedrooms, bathrooms, sleeps, city/region/country, lat/lng, amenity names, lowest published nightly rate, the manager's listing URL. Never prose, never media, never contact details. ## Search (web) https://otaless.com/search?q= - the same engine search_stays runs. The sentence is parsed for place, guests, bedrooms, property type, amenities and a nightly budget: "cabins in Gatlinburg for 12 under $400". Structured params work too: place, guests, bedrooms, type, amenities (comma separated), max_nightly, checkin, checkout, page. A query that is exactly a page we publish 302s to that page; anything else renders results (noindex - cite the place, facet or state page instead). An empty result names the filters to drop, and a near-miss place name comes back as a suggestion. Results come a page at a time, with a next link while there are more. https://otaless.com/search?q=Florida - a US state name, code or abbreviation ("FL", "Fla.") scopes the whole state. https://otaless.com/search?q=Spain - a country name or ISO2 code scopes the whole country; an admin1 region name ("Andalusia", "Tuscany", "British Columbia", "Queensland", "Scotland") scopes that region. ## JSON twins (facts only, no markup) https://otaless.com/home.json - the home page's lists, with the rule behind each https://otaless.com/search.json?q= - the results page as JSON (has_more says whether there is a next page) https://otaless.com/us.json, https://otaless.com/eu.json, https://otaless.com/world.json - the state and country indexes https://otaless.com/us/.json - one state https://otaless.com/us//.json - one place (add / for a facet page) https://otaless.com/.json - one country outside the US https://otaless.com//.json - one admin1 region https://otaless.com///.json - one place (add / for a facet page) https://otaless.com/stay/.json, https://otaless.com/manager/.json - one stay, one manager Accept: application/json on the html url returns the same body. Every row carries live:false and a go link; nothing here is bookable and no price is a quote. ## Places - Orlando & Kissimmee, FL - https://otaless.com/us/fl/orlando-kissimmee-fl/ - Liverpool, United Kingdom - https://otaless.com/gb/england/liverpool-gb/ - Myrtle Beach, SC - https://otaless.com/us/sc/myrtle-beach-sc/ - Gulf Shores & Orange Beach, AL - https://otaless.com/us/al/gulf-shores-al/ - Panama City Beach, FL - https://otaless.com/us/fl/panama-city-beach-fl/ - Maui, HI - https://otaless.com/us/hi/maui-hi/ - Destin, FL - https://otaless.com/us/fl/destin-fl/ - Edinburgh, United Kingdom - https://otaless.com/gb/scotland/edinburgh-gb/ - 30A, FL - https://otaless.com/us/fl/30a-fl/ - Barcelona, Spain - https://otaless.com/es/catalonia/barcelona-es/ - Miami Beach, FL - https://otaless.com/us/fl/miami-beach-fl/ - San Diego, CA - https://otaless.com/us/ca/san-diego-ca/ - São Paulo, Brazil - https://otaless.com/br/sao-paulo/sao-paulo-br/ - Amras, Austria - https://otaless.com/at/tyrol/amras-at/ - French Alps, France - https://otaless.com/fr/auvergne-rhone-alpes/french-alps-fr/ - Fort Myers Beach & Sanibel, FL - https://otaless.com/us/fl/fort-myers-beach-sanibel-fl/ - Paris, France - https://otaless.com/fr/ile-de-france/paris-fr/ - Madrid, Spain - https://otaless.com/es/madrid/madrid-es/ - Berlin, Germany - https://otaless.com/de/state-of-berlin/berlin-de/ - London, United Kingdom - https://otaless.com/gb/england/london-gb/ ## States - Florida - https://otaless.com/us/fl/ - California - https://otaless.com/us/ca/ - South Carolina - https://otaless.com/us/sc/ - Texas - https://otaless.com/us/tx/ - North Carolina - https://otaless.com/us/nc/ - Hawaii - https://otaless.com/us/hi/ - Colorado - https://otaless.com/us/co/ - Tennessee - https://otaless.com/us/tn/ - Alabama - https://otaless.com/us/al/ - New York - https://otaless.com/us/ny/ - Georgia - https://otaless.com/us/ga/ - Arizona - https://otaless.com/us/az/ - Washington - https://otaless.com/us/wa/ - Oregon - https://otaless.com/us/or/ - Utah - https://otaless.com/us/ut/ - Michigan - https://otaless.com/us/mi/ - Missouri - https://otaless.com/us/mo/ - Oklahoma - https://otaless.com/us/ok/ - Maryland - https://otaless.com/us/md/ - Virginia - https://otaless.com/us/va/ ## Countries - United States - https://otaless.com/us/ - Spain - https://otaless.com/es/ - France - https://otaless.com/fr/ - United Kingdom - https://otaless.com/gb/ - Italy - https://otaless.com/it/ - Germany - https://otaless.com/de/ - Greece - https://otaless.com/gr/ - Netherlands - https://otaless.com/nl/ - Brazil - https://otaless.com/br/ - Australia - https://otaless.com/au/ - Poland - https://otaless.com/pl/ - Portugal - https://otaless.com/pt/ - Mexico - https://otaless.com/mx/ - Austria - https://otaless.com/at/ - Canada - https://otaless.com/ca/ - South Africa - https://otaless.com/za/ - Belgium - https://otaless.com/be/ - Switzerland - https://otaless.com/ch/ - Denmark - https://otaless.com/dk/ - Argentina - https://otaless.com/ar/ - Turkey - https://otaless.com/tr/ - India - https://otaless.com/in/ - Croatia - https://otaless.com/hr/ - Sweden - https://otaless.com/se/ - Romania - https://otaless.com/ro/ - Thailand - https://otaless.com/th/ - Indonesia - https://otaless.com/id/ - New Zealand - https://otaless.com/nz/ - Norway - https://otaless.com/no/ - Dominican Republic - https://otaless.com/do/ - Colombia - https://otaless.com/co/ - Cyprus - https://otaless.com/cy/ - Czechia - https://otaless.com/cz/ - Costa Rica - https://otaless.com/cr/ - Iceland - https://otaless.com/is/ - Finland - https://otaless.com/fi/ - Ireland - https://otaless.com/ie/ - Chile - https://otaless.com/cl/ - Hungary - https://otaless.com/hu/ - Philippines - https://otaless.com/ph/ - Malaysia - https://otaless.com/my/ - Uruguay - https://otaless.com/uy/ - Ecuador - https://otaless.com/ec/ - Panama - https://otaless.com/pa/ - Latvia - https://otaless.com/lv/ - Malta - https://otaless.com/mt/ - Singapore - https://otaless.com/sg/ - Slovakia - https://otaless.com/sk/ - Estonia - https://otaless.com/ee/ - Luxembourg - https://otaless.com/lu/ - Vietnam - https://otaless.com/vn/ - Cambodia - https://otaless.com/kh/ - Peru - https://otaless.com/pe/ - Bulgaria - https://otaless.com/bg/ - Belize - https://otaless.com/bz/ - Slovenia - https://otaless.com/si/ - Lithuania - https://otaless.com/lt/ - Guatemala - https://otaless.com/gt/ - Bolivia - https://otaless.com/bo/ - Paraguay - https://otaless.com/py/ - Laos - https://otaless.com/la/ ## Pages https://otaless.com/ - home https://otaless.com/search - search the catalog (noindex; the pages below are the citable units) https://otaless.com/world/ - every country with stays https://otaless.com/eu/ - European countries with stays https://otaless.com/us/ - states with stays https://otaless.com/us// - stays in one state, and the places in it https://otaless.com/us/// - stays in a place https://otaless.com/us//// - sleeps-N, property types, amenities, and a type for a group (/villas/sleeps-10/) https://otaless.com// - stays in one country (es, pt, it, fr, gb, de, gr, hr, au, nz, ca ...) https://otaless.com/// - stays in one admin1 region (/es/andalusia/, /gb/scotland/, /ca/british-columbia/) https://otaless.com//// - stays in a place, and // under it https://otaless.com/stay// - one stay (canonical: the manager's page) https://otaless.com/manager// - one manager https://otaless.com/sitemap.xml - the state, country, region, place, type, sleeps-N and type-for-a-group facet pages, by country; no stay or manager pages https://otaless.com/mcp/ - the MCP server: endpoint, client configs, tool reference, limits https://otaless.com/privacy - what we store https://otaless.com/about - what OTAless is and is not, how the catalog is built https://otaless.com/terms - terms of use, including acceptable use of the MCP endpoint https://otaless.com/contact - the one contact address, and what to write for which purpose