js_render, premium_proxy, proxy_country and wait_for; Extract (extract=auto); css_extractor; Adaptive Stealth Mode (mode=auto)
Ask your AI agent
With the Zenrows MCP server connected to Claude, Cursor or any MCP client, paste this prompt. Your agent picks the right Zenrows tools and settings on its own.Get hotel details from Booking.com
Booking.com is prepared for Extract, soextract=auto returns the property, location, review scores, room types and house rules as JSON. Include check-in and check-out dates in the URL so the page shows availability, and wait for the room table (.hprt-table) so the whole page is in place before Extract reads it.
Example output
extract_fields to get every group, including facilities, photos, fine_print, the coordinates in location and the per-category scores in review_summary (cleanliness, comfort, location, staff, value for money).
Compare room prices by traveler location
Hotel sites show prices in the travelerβs currency and can quote different rates by market. Request the same dates from different countries withproxy_country, and read the room names and prices with css_extractor:
Python (Requests)
prices lists every rate row in the room table, in page order, so a room with several rate plans has several prices. Add the selector for the rate conditions, or loop over prices to pick the lowest.
Collect reviews from Trustpilot
Review pages render each review in a card.css_extractor returns one list per field, so the star ratings, titles and texts line up review by review. The selectors below use Trustpilotβs data-* attributes, which are more stable than its class names:
Python (Requests)
response_type=markdown instead and send the text to your model, see Markdown for LLMs.
Customize it
Troubleshooting
no_data_extracted(422) on a hotel page: Extract read the page before the room table was in place. Usejs_render=trueandpremium_proxy=truewithwait_for=.hprt-table, as in the examples. See no_data_extracted.pricesis empty: the page has no availability for those dates, or the table hadnβt loaded. Check the dates in the URL and keepwait_for=.hprt-table.- Prices are in an unexpected currency: the currency follows the requestβs location. Set
proxy_countryto the market you want. - Review lists have different lengths: some reviews have no title or text. Read the cards in the order they appear and compare the list lengths before you pair them.
Related recipes
Get content as seen from any country
Geotarget any request with proxy_country.
Scrape JavaScript-rendered pages
Render JavaScript and wait for the elements you need.
Get structured JSON from any page
How extract=auto and prepared domains work.
Build a price monitor
Track rates on a schedule and store the history.