Hotel Details & Photos Scraper - Booking, Airbnb, Google
Pricing
from $5.00 / 1,000 property content requests
Hotel Details & Photos Scraper - Booking, Airbnb, Google
Scrape hotel and rental content, not prices: Booking.com details, photos, facilities and review summary, Airbnb listing details and photos, Google Hotels photos and nearby places, and Tripadvisor place details. Batch many properties per run. Made by ScraperCompany.
Pricing
from $5.00 / 1,000 property content requests
Rating
0.0
(0)
Developer
ScraperCompany
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Security
Limited permissionsShare
Hotel Details & Photos Scraper by ScraperCompany collects property content (not prices) from four sources in nine modes. Booking.com: property details (ids, address, coordinates, stars, description, check-in and check-out, review score, languages, meals, house rules), the full photo gallery, facilities grouped with charges and policies, and the review summary (category scores with the city average, scores per traveller type, pros and cons). Airbnb: listing details (capacity, amenities, sleeping arrangements, house rules, host, location, ratings, cancellation policy for a stay) and every photo by room. Google Hotels: the photo gallery by category or source, and nearby places with travel times and location scores. Tripadvisor: place details with rating breakdown, ranking and sub-ratings. Pricing is pay-per-event: $0.009 per Booking.com details or facilities request, $0.005 per other Booking.com, Airbnb or Google Hotels request and $0.003 per Tripadvisor place; failed requests and empty answers are not charged.
Nothing to set up: no code, no login and no keys. Start a run, then export JSON, CSV or Excel, or pull the results through the Apify API. You pay only for results; failed and empty requests are free.
What can this hotel details scraper do?
- Booking.com details: hotel id, address, coordinates, stars, property type, chain, description, check-in/out, review score, languages, meals, house rules; optional nearby list.
- Booking.com photos with captions, original size, tagged rooms and URLs in every size.
- Booking.com facilities by group with charges, most popular facilities and policies; review summary with category scores, traveller-type scores, pros and cons.
- Airbnb listing details (amenities, beds, rules, host, ratings, cancellation milestones for your dates) and photos by room.
- Google Hotels photos (paged, by category or owner/visitor) and nearby places with travel times and location scores.
- Tripadvisor details: address, coordinates, rating breakdown, ranking, sub-ratings, price range, contact, photos.
- Paste URLs or ids; batch many properties per run.
Modes
| Mode | What it returns | Price per request |
|---|---|---|
booking-details | Name, ids, address, coordinates, stars, description, check-in/out, review score, languages, meals, house rules | $0.009 |
booking-photos | Every gallery photo with caption, size, upload time, tagged rooms and URLs per size | $0.005 |
booking-facilities | Facilities by group with charges, most popular facilities, highlights, languages, policies | $0.009 |
booking-review-summary | Review score and count, category scores with the city average, scores per traveller type, pros and cons, topics | $0.005 |
airbnb-listing | Title, type, capacity, description, amenities, sleeping arrangements, house rules, host, location, ratings, cancellation policy | $0.005 |
airbnb-photos | Every listing photo with its room, size, original URL and resized versions | $0.005 |
google-photos | Photo gallery pages with caption, source (owner or visitor), size, upload date and URLs; category and source counts | $0.005 |
google-nearby | Top sights, transit, airports and restaurants with travel times, neighbourhood and location scores | $0.005 |
tripadvisor-details | Hotel, restaurant or attraction: address, coordinates, rating and breakdown, ranking, sub-ratings, price range, contact, photos | $0.003 |
What makes it different?
| Hotel Details & Photos Scraper | Many alternatives | |
|---|---|---|
| Setup | Nothing to configure: no login, no keys | Often your own accounts, cookies or network setup |
| You pay for | Successful results; failed and empty requests are free | Often run time, or every attempt |
| When a site pushes back | Retried and handled for you | Often an empty or failed run |
Who uses hotel details data?
- Travel sites and apps: Fill property pages with descriptions, amenities, photos and house rules.
- Hotel revenue and marketing teams: Audit how your property and competitors are presented: photos, facilities, review scores.
- Short-term rental managers: Compare amenities, ratings and cancellation policies of nearby Airbnb listings.
- Data teams: Match properties across Booking.com, Airbnb, Google Hotels and Tripadvisor with coordinates and ids.
What hotel details data can you extract?
| Field | Description |
|---|---|
name / hotel_id / address / gps_coordinates (Booking.com details) | Identity and location |
star_rating / review_score / review_count / house_rules | Stars, guest score and house rules |
photos[].caption / url_original / original_width / rooms | Photos (Booking.com, Airbnb, Google Hotels) |
groups[].group / facilities (Booking.com facilities) | Facilities by group, with charges |
category_scores[] / traveler_type_scores[] / summary (Booking.com review summary) | Score breakdown, pros and cons |
title / amenities / host / rating / cancellation (Airbnb listing) | Listing content, host, ratings and cancellation policy |
groups[].places[] / neighborhood / location_scores (Google nearby) | Nearby places with travel times, neighbourhood, location scores |
details.rating / rating_breakdown / ranking / sub_ratings (Tripadvisor) | Tripadvisor ratings and ranking |
Every dataset item also carries input (the options used for that request), request_id (quote it to support), billed and scraped_at.
How to scrape hotel details, photos and facilities
- Open Hotel Details & Photos Scraper in Apify Console and go to the Input tab.
- Pick What to scrape, then fill the list for that source: Booking.com URLs or slugs, Airbnb links or listing ids, Google Hotels property tokens, or Tripadvisor URLs, ids or names.
- Adjust the options if needed. Dates accept an exact date (
2026-12-01) or a relative one (30 daysfrom today), so saved tasks and schedules never go stale. - Click Start and wait for the run to finish.
- Download the results from the Output tab as JSON, CSV, Excel or HTML, or fetch them with the Apify API.
Input
| Input | Name | What it does |
|---|---|---|
mode | What to scrape | The source and the kind of content. Each source has its own list of properties below; only the list for the selected source is used. |
bookingHotels | Booking.com hotels | .....com URL country. |
bookingCountry | Booking.com URL country | ..html`). Applies to slugs; a full URL brings its own. |
includeNearby | Include Booking.com nearby places (details) | .com's own list of nearby landmarks, transit, airports, restaurants and beaches with walking and driving distances. |
airbnbListings | Airbnb listings | ..com/rooms/34397368) or the numeric listing id (34397368`). |
airbnb_domain | Airbnb site | Airbnb country site. It sets the language and the default currency of the record. |
currency | Airbnb currency (listing) | Listing details only: currency for any money text in the record. Leave empty for the site's default. |
check_in | Stay check-in (listing cancellation policy) | Listing details only: Airbnb states cancellation deadlines only for a given stay. |
check_out | Stay check-out (listing cancellation policy) | .g. 32 days). Give both dates or neither. |
googleProperties | Google Hotels property tokens | .g. ChUIoben2Mv6-CYaCi9tLzA3czVwbjQQAQ). Get tokens from the Google Hotels Search Scraper results. |
maxPages | Photo pages per property (Google photos) | Google Hotels photos only: how many gallery pages to fetch per property (1-20). |
photosPerPage | Photos per page (Google photos) | Google Hotels photos only: photos per page (1-100). The price per page is the same. |
photoCategory | Photo category (Google photos) | Google Hotels photos only: one photo tab. Leave empty for all photos. Use a category or a source, not both. |
photoSource | Photo source (Google photos) | Google Hotels photos only: only visitors' photos or only the owner's. Leave empty for both. |
gl | Google country | Two-letter Google country for the request. |
hl | Google language | .g. en, fr. |
tripadvisorPlaces | Tripadvisor places | .g. 208453), or a place name such as Moxy Boston Downtown (add a City to narrow names). |
tripadvisorCity | City (for place names) | With place names only: the city, used to pick the right place when several share the name. |
Input example
This is the default input; running the Actor without changes uses it.
{"mode": "booking-details","bookingHotels": ["newbury-guest-house"],"bookingCountry": "us","airbnbListings": ["34397368"],"airbnb_domain": "airbnb.com","googleProperties": ["ChUI6IWohK-tzZFIGgkvbS8wODZjXzUQAQ"],"maxPages": 1,"photosPerPage": 50,"gl": "us","hl": "en","tripadvisorPlaces": ["17768161"],"includeErrors": true,"maxConcurrency": 3,"maxRetries": 2}
Output example
One dataset item per request (trimmed here; real items contain all the fields):
{"mode": "booking-details","input": {"pagename": "newbury-guest-house","country": "us"},"accessibility": {"isGeneralAccessible": true,"isPrivateBathroomInAllRooms": true,"isWheelChairAccessible": false},"accommodation_type_id": 204,"address": {"city": "Boston","country_code": "US","formatted": "261 Newbury Street, Back Bay, Boston, MA 02116, United States","postal_code": "MA 02116","region": "Massachusetts","short": "261 Newbury Street, Back Bay, Boston, MA"},"breadcrumbs": [{"dest_id": "224","dest_type": "country","name": "United States","type": "country"},{"dest_id": "2442","dest_type": "region","name": "Massachusetts (MA)","type": "province"}],"check_in": {"from": "3:00 PM"},"check_out": {"until": "12:00 PM"},"country": "us","description": "This historic guest house is located in Boston's Back Bay district, only 2 minutes' walk from the Hynes Convention Center and various shops along Newbury Str...","gps_coordinates": {"latitude": 42.3495598618534,"longitude": -71.08322203159332},"hotel_currency": "USD","hotel_id": 236725,"house_rules": {"accepted_cards": ["American Express","Visa"],"cash_status": "PATP_PROPERTY_CASH_STATUS_UNKNOWN","check_in": {"from": "3:00 PM"},"check_in_requirements": "Guests are required to show a photo ID and credit card at check-in.","check_out": {"until": "12:00 PM"},"children": {"allowed": true,"cribs": false,"extra_beds": false,"min_age": 0,"rules": [{"age_from": 0,"age_to": 14,"price": "US$0","price_mode": "PER_NIGHT","price_type": "FREE","type": "EXISTING_BED"}]},"fine_print": ["Guests are required to show a photo ID and credit card upon check-in. Please note that all Special Requests are subject to availability and additional charge...","Quiet hours are between 23:00:00 and 07:00:00."],"group_limit_rooms": 3,"group_policy": "When booking more than 3 rooms, different policies and additional fees may apply.","min_check_in_age": 21,"pets": {"allowed": "NO","charge_mode": "NOT_APPLICABLE"},"quiet_hours": {"from": "11:00 PM","until": "7:00 AM"}},"is_newly_opened": false,"languages_spoken": ["en","es"],"meals": [{"hours": {"from": "07:30","until": "09:30"},"type": "BREAKFAST"}],"name": "Newbury Guest House","nearby": [{"best_commute": {"distance_m": 4566,"duration": "54 min","mode": "ByFoot"},"category": "beaches","driving": {"distance_m": 5129,"duration": "7 min"},"gps_coordinates": {"latitude": 42.32886704,"longitude": -71.04606142},"kind": "Beaches","name": "Carson Beach","straight_line_km": 3.803,"walking": {"distance_m": 4566,"duration": "54 min"}},{"best_commute": {"distance_m": 4941,"duration": "59 min","mode": "ByFoot"},"category": "beaches","driving": {"distance_m": 5693,"duration": "8 min"},"gps_coordinates": {"latitude": 42.32886559,"longitude": -71.03634792},"kind": "Beaches","name": "M Street Beach","straight_line_km": 4.28,"walking": {"distance_m": 4941,"duration": "59 min"}}],"observed_at": "2026-10-03T05:20:00.000Z","pagename": "newbury-guest-house","property_type": "HOTEL","review_count": 523,"review_scale": 10,"review_score": 9.1,"source": "booking","star_rating": 3,"star_rating_kind": "STARS","ufi": 20061717,"url": "https://www.booking.com/hotel/us/newbury-guest-house.html","request_id": "req_3f9c0d6e2b8a4c1f9e7d5b3a1c0e8f6d","billed": true,"scraped_at": "2026-10-01T14:03:27.512Z"}
A request that fails is saved with an error message instead (turn off Include failed requests to skip those). Failed requests are never charged.
How much does it cost to scrape hotel details, photos and facilities?
This Actor uses pay-per-event pricing: you pay for successful requests, not for compute time.
| Event | Charged when | Price | Per 1,000 |
|---|---|---|---|
property-content | One property's Booking.com photos or review summary, Airbnb listing or photos, or Google Hotels photos or nearby places (one page of Google photos). Answers with no photos, no places or no review score are free. | $0.005 | $5.00 |
booking-page | One Booking.com hotel's details or facilities. These take longer to collect than the other content requests, so they are priced apart. | $0.009 | $9.00 |
tripadvisor-details | One Tripadvisor hotel, restaurant or attraction: address, coordinates, rating breakdown, ranking, sub-ratings, contact and photos. | $0.003 | $3.00 |
What a real run costs:
- 100 requests: $0.90
- 1,000 requests: $9.00
- 10,000 requests: $90.00
Apify's $5 of free monthly usage covers about 555 booking-page events.
- Failed requests (errors, invalid input, a site refusing after retries) are free.
- Requests where the source returns nothing at all (no results, nothing priced) are saved but not charged.
- Set Maximum cost per run when you start a run and the Actor stops cleanly before going over it.
Run it on a schedule
Use Apify Schedules to repeat a run hourly, daily or weekly and compare results over time, and webhooks or the Integrations tab to push new results to Make, Zapier, n8n, Google Sheets, Slack or your own warehouse.
Use it with AI agents
Results are structured JSON, so they are easy to feed to a model. AI agents such as Claude can run this Actor and read its results through the Apify MCP server.
FAQ
Do I need an account on the site, or an API key?
No. The Actor is ready to run as is, and you only pay the per-event prices above.
Does this Actor return prices or availability?
No. It returns property content: details, photos, facilities, review scores and nearby places. For prices use the rate scrapers listed below.
How do I identify a property?
Each source uses its own id: a Booking.com URL or slug, an Airbnb listing link or id, a Google Hotels property token, or a Tripadvisor URL, location id or name. Only the list for the selected source is used.
Why does the Airbnb cancellation policy say needs_dates?
Airbnb states cancellation deadlines only for a given stay. Set the stay check-in and check-out to get the refund milestones.
How many Google Hotels photos do I get?
Up to 100 per page; set Photo pages per property to page through the gallery. Each page is charged separately.
Is there a review histogram for Booking.com?
Booking.com does not publish a 1-10 histogram; the review summary returns the overall score, category scores and scores per traveller type instead.
Is it legal to scrape hotel details, photos and facilities?
The Actor collects publicly available information that anyone can see without logging in. You are responsible for how you use the results: respect the source site's terms, copyright and privacy law (such as GDPR) and do not collect personal data without a lawful basis. If in doubt, ask a lawyer.
What happens when a request is blocked or rate-limited?
Temporary errors are retried automatically. If a request still fails it is saved with the error message and not charged, and the rest of the batch keeps going. A run only fails when every request failed.
Why did a request return an error?
Read the error field: it says what was wrong with the input, for example a malformed date or an unknown id. Fix it and run again; failed requests cost nothing.
How many requests can I run at once?
Any number per run. The Actor sends up to 3 requests in parallel by default (change it under Run options); larger batches simply take longer.
Use it from your code
Call the Actor from any language through the Apify API. With the JavaScript client (npm install apify-client):
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('scrapercompany/hotel-details-scraper').call({"mode": "booking-details","bookingHotels": ["newbury-guest-house"]});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
With Python (pip install apify-client):
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("scrapercompany/hotel-details-scraper").call(run_input={"mode": "booking-details","bookingHotels": ["newbury-guest-house"],})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Related scrapers
- Hotel Reviews Scraper: full guest reviews from Google, Booking.com, Expedia and Tripadvisor
- Booking.com Hotel Rates Scraper: room prices for a stay on Booking.com
- Airbnb Search Scraper: find Airbnb listings and their ids
- Google Hotels Search Scraper: find hotels and their Google property tokens
Support
Questions, a field you need, or a site that stopped working? Open an issue on the Issues tab. Include the request_id from the dataset item so we can trace the request.