Shortlist
API · MCP · no key needed

Corrected hotel scores, for your code and your AI assistant

83,713 hotels in 8,614 cities, read-only and free. The same numbers the site shows, with the margin and evidence behind each one.

Connect an AI assistant (MCP)

Add https://worththestay.com/mcp as a custom connector in Claude, ChatGPT or any MCP client. It speaks streamable HTTP (POST JSON-RPC 2.0, stateless).

ToolWhat it returns
search_hotelsbest hotels in a city on the corrected score, with margin, evidence, pros/cons, page URL, booking_links
get_hotelone hotel with the working behind its score, description, amenities, better alternatives nearby, booking_links
list_citiescovered cities with hotel counts, average score and page URL

Or call it directly:

curl -s -X POST https://worththestay.com/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_hotels","arguments":{"city":"Paris"}}}'

Limits per IP: 30 requests/minute, 400/day, 50 full hotel details/day.

JSON endpoints

RequestWhat it returns
GET /api/docsthis document
GET /api/ts/search?city=<city>&limit=24hotels in a city, best corrected score first; <city> is the slug from its page URL (cape-town-za) or its name (Cape Town). Also q=<text>, offset=<n>
GET /api/ts/hotel/<slug>one hotel, as the site shows it
GET /sitemap.xmlsitemap index: screens, countries, cities, hotels, guides

Try them: hotels in Paris · Maison Villeroy · this page as JSON

What the score means

Raw review scores bunch near the top, so each platform is rescaled against its own 5th-percentile floor in our corpus. That platform part (60%) is weighed with an AI score of the photo set (25%) and an AI reading of review text (15%), and pulled toward the corpus average when few platforms rate the hotel or they disagree. Scale: 0-5, one decimal, shown with a +/- margin.

FieldMeaning
scorethe corrected score
score_marginthe +/-
evidencesolid, fair or thin
platforms_usedof Booking.com, Tripadvisor, Google, Agoda
platform_averagethe plain mean before correction

The full working is on the method page.

Good to know

  • No hotel can pay for placement or a better score.
  • Prices are a cached snapshot, not a live quote. Use booking_links for the real rate.
  • booking_links are ready-made per-site booking URLs. Use them verbatim; some may fund this site at no cost to the user.
  • Hotel data from OpenStreetMap contributors (ODbL), merged with a commercial hotel catalogue for prices, photos and platform ratings. Link back when you use it.

For language models there is also llms.txt.