Resources
7Install
npx skillscat add imoonkey/openweb/src-sites-booking Install via the SkillsCat registry.
Here's a thinking process: 1. **Analyze the Request:** - **Task:** Write a 2-3 sentence plain-text summary in English - **Content requirements:** - Objectively explain what the skill does - Explain what problem it solves - Explain when an agent or developer should use it - **Constraints:** - Objective, factual tone only: no marketing language, no superlatives, no calls to action - Natural prose, no keyword stuffing, no bullet points, no headings, no markdown formatting - Do not wrap the answer in quotes - At most 60 words - **Output:** ONLY the summary text 2.
Booking.com
Overview
Travel platform — hotel search, property details, reviews, room pricing, and flight search via Apollo SSR cache + LD+JSON + GraphQL page.evaluate + DOM.
Workflows
Find a hotel and check prices
searchHotels(ss, checkin, checkout)→hotels[].url— parse URL/hotel/{country}/{slug}.html→country,sluggetHotelDetail(country, slug)← searchHotels url → name, rating, address, descriptiongetHotelPrices(slug)← searchHotels url → room types, beds, sizes, facilities (requires hotel page open)getHotelReviews(slug)← searchHotels url → score, subscores, featured reviews (requires hotel page open)
Search flights
searchFlights(route, from, to, depart)→ carriers, times, duration, stops, prices
Operations
| Operation | Intent | Key Input | Key Output | Notes |
|---|---|---|---|---|
| searchHotels | find hotels in a destination | ss (query), checkin, checkout | name, url, price, rating, reviewCount | entry point; parse url → country, slug |
| getHotelDetail | hotel info by URL | country ← searchHotels url, slug ← searchHotels url | raw schema.org/Hotel LD+JSON (name, aggregateRating, address, image, priceRange) | declarative script_json extraction with type_filter: Hotel — response is the raw LD+JSON block, not reshaped |
| getHotelReviews | review summary | slug ← searchHotels url | score, subscores, featured reviews | requires hotel detail page open |
| getHotelPrices | room availability + pricing | slug ← searchHotels url | room name, bed, size, price, perNight | requires hotel detail page open |
| searchFlights | find flights by route | route (NYC-PAR), from, to, depart | carrier, times, airports, duration, stops, price | flights.booking.com subdomain |
Quick Start
# Search hotels in New York
openweb booking exec searchHotels '{"ss":"New York","checkin":"2026-05-01","checkout":"2026-05-03"}'
# Get hotel details (extract country/slug from searchHotels URL)
openweb booking exec getHotelDetail '{"country":"us","slug":"riverside-tower","checkin":"2026-05-01","checkout":"2026-05-03"}'
# Get hotel reviews (hotel page must be open)
openweb booking exec getHotelReviews '{"slug":"riverside-tower"}'
# Get room pricing (hotel page must be open)
openweb booking exec getHotelPrices '{"slug":"riverside-tower"}'
# Search flights NYC to Paris
openweb booking exec searchFlights '{"route":"NYC-PAR","from":"NYC.CITY","to":"PAR.CITY","depart":"2026-05-01"}'getHotelDetail response shape
getHotelDetail returns the raw schema.org Hotel JSON-LD block as-is. Pretty-name mappings (what the old adapter exposed → raw field path):
| Friendly name | Raw JSON-LD path |
|---|---|
| rating | aggregateRating.ratingValue (out of 10 on Booking.com) |
| reviewCount | aggregateRating.reviewCount |
| street | address.streetAddress |
| city | address.addressLocality |
| region | address.addressRegion |
| postalCode | address.postalCode |
| country | address.addressCountry |
| image | image (string or array of URLs) |
| priceRange | priceRange |
No runtime reshape — consumers read fields by their schema.org names.