Use case

Find what guests like and dislike about a hotel from its reviews

Get Booking.com guest reviews as JSON, with score, likes, dislikes, traveler type and date, to find what to fix and what to promote at your property.

Prepaid, no subscriptionREST or MCPOne key for models, data and agents
Booking.comlovelyjsonitems[0]"score": 7.5"liked": "Great location, frien…"disliked": "Thin walls, slow brea…"traveler_type": "Couple""date": "2026-09-14"

A hotel's average score hides the reasons behind it. The reasons are in the text: the noise people mention, the breakfast they praise, the room they warn others about. Booking.com splits guest reviews into what they liked and disliked, but there are thousands of them and no way to count. Lovely Router fetches them for the hotels you choose. Send hotel links, get one JSON object per review, pay per review from a prepaid balance.

Hand it to your AI agent

Copy this prompt into Claude Code, Cursor, Codex or any coding agent. It tells the agent where the docs are and how to use your API key.

Find what guests like and dislike about a hotel from its reviews. Use the Lovely Router data tools: each returns JSON and is billed per result.

- Docs (read first): https://lovelyrouter.com/docs/tools/find.md and https://lovelyrouter.com/docs/tools/run.md
- Plan first: POST https://lovelyrouter.com/v1/tools/suggest with `{"task": "<my task in plain words>"}` (free). It returns the tools to run in order, each with an example `input`, the `input_required` fields, an estimated cost and a ready-made `run` request. Replace the example values with my task's; if a field is unclear, read the tool with GET https://lovelyrouter.com/v1/tools/<id>. To browse instead, POST https://lovelyrouter.com/v1/tools/discover searches the catalog.
- Show me the plan and its estimated cost (`total_est_cost_usd`) before running anything large.
- Run: POST https://lovelyrouter.com/v1/tools/<id>/run with `{"input": {...}, "max_results": N}`. A 200 has the finished run with `items`; a 202 means it is still running, so poll the `poll` path until `status` is `succeeded`, `failed`, `timed_out` or `stopped`.
- Only delivered results are billed. Keep max_results small on the first run, check the output, then scale up.
- If you support MCP, connect https://lovelyrouter.com/mcp instead (Streamable HTTP, same key; https://lovelyrouter.com/docs/tools/mcp.md) and use suggest_tools, get_tool and run_tool.
- Auth: read my API key from the LOVELY_API_KEY environment variable and send it as `Authorization: Bearer $LOVELY_API_KEY`. Never print or commit the key. If it is not set, ask me to create one at https://lovelyrouter.com/app/keys.
- Billing is prepaid: every call is charged to my balance, so test with a small request before running anything large.
- Every docs page is plain Markdown; the full index is https://lovelyrouter.com/llms.txt.

My task: <the inputs (links, keywords or accounts) and how many results you need>
01

How it works

010203
  1. Take the Booking.com page of your own hotel and of the three or four hotels you compete with.

  2. Run the tool with a cap

    Send the links to POST /v1/tools/booking-reviews/run. Set maxReviewsPerHotel in the input and max_results in the request body. The run holds its maximum cost from your balance and returns the reviews as JSON.

  3. Count the themes

    Ask a model to tag each liked and disliked text with themes such as noise, cleanliness, breakfast and staff, then count them by hotel, month and traveler type.

02

Get hotel reviews with one request

Booking.com hotel reviews takes hotel pages in startUrls. maxReviewsPerHotel caps the reviews per hotel, sortReviewsBy orders them and reviewScores filters by score:

curl https://lovelyrouter.com/v1/tools/booking-reviews/run \
  -H "Authorization: Bearer $LOVELY_API_KEY" \
  -H "content-type: application/json" \
  -d '{
    "input": {
      "startUrls": [
        {"url": "https://www.booking.com/hotel/cz/jeromehouse.en-gb.html"}
      ],
      "maxReviewsPerHotel": 3
    },
    "max_results": 3
  }'

A run still going after 60 seconds returns 202; Run a tool shows how to poll. sortReviewsBy accepts f_relevance, f_recent_desc, f_recent_asc, f_score_desc and f_score_asc. One run can return up to 500 reviews.

03

What each review holds

Field groupWhat you get
ScoreThe review score
FeedbackWhat the guest liked and what they disliked
GuestTraveler type
TimeDate of the review
04

Recipes

Fix the top complaint

Pull the lowest-scored reviews of your own hotel with sortReviewsBy set to f_score_asc, tag the dislikes, and send the three most common themes to operations.

Write better listing copy

Pull the highest-scored reviews, collect what guests liked, and use their words in your description and photo captions.

Compare by traveler type

Split reviews by traveler type. Families may care about space while couples care about noise, and your response differs.

Check a renovation

Pull recent reviews with f_recent_desc before and after the work, then compare how often the renovated area is mentioned and in what tone.

Benchmark against rivals

Run your hotel and four competitors, count how often each theme appears per hotel, and find the theme where you lag.

Prefer plain words? Connect the MCP server and tell Claude Code or Cursor: "Fetch the 100 lowest-scored reviews for this Booking.com hotel, group the dislikes into themes and show the counts. Set max_results to 100."

06

What you pay

You pay per review: starting a run holds its maximum cost, the per-call fee plus the per-review fee times max_results, and the run settles to what it returned. The rest of the hold goes back to your balance. A run that fails or times out pays only for the reviews it delivered, and a run refused at the start costs nothing.

There is no subscription and no monthly minimum: top up from $5, and one balance pays for tools and models. The card above shows today's price; pricing lists every tool.

07

Frequently asked questions

?
Can I get only bad reviews?+

Yes. Use reviewScores to filter by score as shown on Booking.com, or set sortReviewsBy to f_score_asc and cap the number of reviews.

Can I get the newest reviews first?+

Yes. Set sortReviewsBy to f_recent_desc.

Can I read reviews of several hotels in one run?+

Yes. startUrls is a list. maxReviewsPerHotel caps each hotel separately, so keep the total in mind when you set max_results.

How many reviews can one run return?+

Up to 500. Start with a small cap to see what a review looks like before you raise it.

Do I need a subscription?+

No. You add credit to a prepaid balance and each run draws it down. Failed runs pay only for the results they delivered, and nothing renews automatically.

Working on guest experience? See review monitoring, travel and real estate data, and the tool catalog.

One prepaid key for models, data and agents

No subscription. Top up, use what you need, see every charge in your logs.