How to Scrape Google Flights & Airbnb (No-Code Tutorial)
Compare flight deals and accommodation prices across destinations, automatically.
Quick Answer
To scrape Google Flights, run a Google Flights Actor with your departure and arrival airports, dates, and trip type to pull airline, price, stops, and duration. To scrape Airbnb, run an Airbnb Actor with a location and stay window to pull nightly price, ratings, room type, and amenities. Both run as pre-built Actors in the cloud, export CSV, Excel, or JSON, and can schedule repeat runs for price monitoring.
Planning a trip or building a travel deal tracker? This guide covers two practical paths: Google Flights for routes and fares, and Airbnb for stays (prices, ratings, amenities). Pricing models on Apify evolve, so confirm rental vs. pay-per-result and Compute Unit rules on each Actor page before you scale.
Use cases
- Trip planning: Compare multiple dates, airports, and neighborhoods in one dataset instead of dozens of manual tabs.
- Price monitoring: Schedule the same search weekly to spot fare drops or nightly rate changes ahead of peak season.
- Market research: Aggregate supply (listing counts, price bands) and demand proxies (ratings, review volume) for a city or corridor.
- Travel intelligence: Feed JSON into a dashboard, spreadsheet, or LLM workflow for summaries and alerts.
The same pattern powers ecommerce price monitoring and the general scrape ecommerce prices walkthrough. New to the platform? Start with the how-to-use-apify index or browse the best Apify Actors.
Google Flights scraper
The Google Flights Actor supports one-way and round-trip searches. You can supply multiple arrival airports from one departure to compare routes. It relies on browser automation, so keep concurrency sensible and enable the proxies/retries the Actor page recommends.
Step-by-step (no code)
- Open the Actor: Google Flights Scraper (or browse the Apify Store).
- Configure the search: Departure and arrival airports (IATA codes work well), dates, passengers, cabin class if offered.
- Start the run: Watch the log. Transient blocks happen on travel sites, so retry off-peak if needed.
- Download results: Export from Dataset/Output as CSV, Excel, or JSON.
Typical fields include airline, price, stops, times, and duration. The exact schema depends on the Actor version.
| You set (input) | You get back (output) |
|---|---|
| Departure airport (IATA) | Airline and flight number |
| One or more arrival airports | Total fare in your chosen currency |
| Exact dates or a date range | Departure and arrival times |
| One-way or round-trip | Stops and flight duration |
| Max stops, currency | Trip dates (outbound and return) |
The canadesk/google-flights Actor lists a rental price of $12/month plus Apify platform usage at the time of writing. Pricing models change, so always read the current Pricing tab before subscribing.
Use case (travel price monitoring): Schedule the same route weekly, store each run's timestamp with the rows, and chart the fare trend to time your booking around dips before peak season.
| Field | Description | Example |
|---|---|---|
| airline | Operating airline | Delta Air Lines |
| price | Total fare price | $342 |
| departureAirport | Departure airport code | JFK |
| arrivalAirport | Arrival airport code | SEA |
| departureTime | Departure time | 08:15 AM |
| arrivalTime | Arrival time | 11:42 AM |
| duration | Total flight duration | 5h 27m |
| stops | Number of stops | Nonstop |
| cabin | Cabin class | Economy |
Simplified example; exact fields depend on the Actor output.
{
"airline": "Delta Air Lines",
"price": "$342",
"departureAirport": "JFK",
"arrivalAirport": "SEA",
"departureTime": "08:15 AM",
"arrivalTime": "11:42 AM",
"duration": "5h 27m",
"stops": "Nonstop",
"cabin": "Economy",
"bookingUrl": "https://www.google.com/travel/flights/..."
}
Scrape Google Flights with code (optional)
For a Python-first walkthrough, see Apify’s article: How to scrape Google Flights with Python.
Airbnb scraper
The Airbnb Scraper extracts listings (prices, ratings, amenities, host signals, and URLs) for a location and stay window you define.
Step-by-step (no code)
- Open the Actor: Airbnb Scraper. Check the live rating on the Store page.
- Configure the search: Location (e.g.
Barcelona, Spain), check-in/check-out dates, guests, and the filters the form exposes. - Start the run: Airbnb has aggressive bot defense. Actor authors handle much of that, but occasional failures still happen.
- Download results: Export from Output/Storage as CSV, JSON, or Excel.
Typical output includes nightly and total price, review stats, room type, location text, amenities, and a direct listing URL.
| You set (input) | You get back (output) |
|---|---|
| Location query (city/area) | Listing title and direct URL |
| Check-in/check-out dates | Nightly rate and fee breakdown |
| Guest count | Ratings and review counts |
| Price range | Room type, beds, bathrooms |
| Min bedrooms/bathrooms | Superhost status and amenities |
The tri_angle/airbnb-scraper Actor uses pay-per-result pricing of $1.25 per 1,000 results and returns up to ~240 results per search query at the time of writing. Confirm the live figure on the Pricing tab before scaling.
Use case (rental investment research): Pull every listing in a target neighborhood, then group by room type and price band to estimate occupancy potential, nightly-rate ceilings, and how many Superhosts you would compete with.
| Field | Description | Example |
|---|---|---|
| name | Listing title | Sunny Apartment in Gothic Quarter |
| price.rate | Nightly price | $89 |
| price.total | Total price for stay | $534 |
| rating | Guest rating (out of 5) | 4.92 |
| reviewsCount | Number of reviews | 247 |
| roomType | Listing type | Entire rental unit |
| beds | Number of beds | 2 |
| location | Neighborhood/area | Gothic Quarter, Barcelona |
| superhost | Whether host is a Superhost | true |
| url | Direct Airbnb listing URL | https://www.airbnb.com/rooms/12345678 |
Each Airbnb listing in your dataset will look similar to this JSON object.
{
"name": "Sunny Apartment in Gothic Quarter",
"url": "https://www.airbnb.com/rooms/12345678",
"price": {
"rate": "$89",
"total": "$534",
"currency": "USD"
},
"rating": 4.92,
"reviewsCount": 247,
"roomType": "Entire rental unit",
"beds": 2,
"bathrooms": 1,
"location": "Gothic Quarter, Barcelona",
"superhost": true,
"amenities": ["WiFi", "Kitchen", "Air conditioning", "Washer"],
"thumbnailUrl": "https://a0.muscache.com/im/pictures/..."
}
Reliability, ethics, and product tips
- Prices move fast: A scrape is a snapshot. Pair it with schedules if you need trends.
- Locale matters: Currency and availability change with market. Document the inputs you used.
- Terms and law: Read each platform's terms. Scraping public UI data for internal research is common, but commercial reuse may be restricted. See Is web scraping legal? for general context.
Explore travel and booking Actors · Open Apify Console
Legality depends on jurisdiction, use case, and each platform’s terms. Focus on publicly visible data, review applicable laws and terms, and see our scraping legality guide for general orientation (not legal advice).
Yes. Schedule either Actor with Apify tasks and schedules so the same inputs rerun on a cadence. Store run timestamps with each dataset row for clean time-series charts.
Each Actor lists its own model (pay-per-event, pay-per-result, or legacy rental where still shown). You also pay Apify platform usage (Compute Units). Check both the Actor Pricing tab and Apify pricing; the free tier includes starter credits.
Actors read what the site shows at run time. Fares and nightly rates can change within minutes; treat outputs as snapshots unless you automate frequent reruns.
Yes. Run both Actors on a schedule, join outputs on destination and date windows in your warehouse or spreadsheet, and drive alerts when combined trip cost crosses a threshold.
Open a Google Flights Actor such as canadesk/google-flights, enter one departure airport (IATA code), one or more arrival airports, your dates or date range, and trip type, then run it and export the dataset as CSV, Excel, or JSON.
Yes. The Google Flights Actor accepts one departure airport with multiple arrival airports and supports exact dates or a flexible date range, so you can compare routes and travel windows in a single run. Add proxies and request delays to avoid blocks.
Open an Airbnb Actor like tri_angle/airbnb-scraper, set a location query, check-in/check-out dates, guest count, and optional price or bedroom filters, then run it. It returns up to about 240 listings per query with prices, ratings, room type, and amenities.
The tri_angle Airbnb Scraper returns up to roughly 240 results per search query, billed at $1.25 per 1,000 results. To cover a whole city, split it into several neighborhood queries and merge the datasets afterward.





