Booking Flights Scraper

Booking Flights Scraper

by lexis-solutions

Scrape flight listings from Booking.com—including routes, airlines, prices, dates, availability, and booking links. Ideal for travel platforms, price ...

69 runs
4 users
Try This Actor

Opens on Apify.com

About Booking Flights Scraper

Scrape flight listings from Booking.com—including routes, airlines, prices, dates, availability, and booking links. Ideal for travel platforms, price comparison, and market analysis. Fast, structured, and customizable extraction from Booking.com’s flights section.

What does this actor do?

Booking Flights Scraper is a web scraping and automation tool available on the Apify platform. It's designed to help you extract data and automate tasks efficiently in the cloud.

Key Features

  • Cloud-based execution - no local setup required
  • Scalable infrastructure for large-scale operations
  • API access for integration with your applications
  • Built-in proxy rotation and anti-blocking measures
  • Scheduled runs and webhooks for automation

How to Use

  1. Click "Try This Actor" to open it on Apify
  2. Create a free Apify account if you don't have one
  3. Configure the input parameters as needed
  4. Run the actor and download your results

Documentation

Booking Flights Scraper Booking Flights Scraper The Booking Flights Scraper is an Apify actor that searches Booking.com Flights and extracts flight offers based on trip type, routes, dates, passenger counts, cabin class, sorting, and direct-flight preference. --- ## ✨ Key Features - Flexible trip types: One-way or round-trip searches. - Route resolution: Query departure and arrival locations using plain text terms. - Passenger and cabin controls: Set adults count, optional children ages, and cabin class. - Smart filtering: Sort by best/cheapest/fastest and optionally restrict to direct flights. - Structured output: Returns normalized flight itineraries with pricing and timing breakdowns. --- ## 💡 Why It's Important Booking aggregates flight options from multiple carriers and partners. With this actor, you can: - Compare prices and itineraries quickly across different routes and dates. - Analyze schedule characteristics such as total flight time and number of legs. - Automate monitoring of pricing and availability for business intelligence and alerts. --- ## 👤 Who Is It For? - Travel agencies and OTAs optimizing content and pricing. - Analysts and researchers tracking route competitiveness and seasonality. - Developers and data teams building dashboards and travel products. --- ## 🚀 Business Use Cases - Price monitoring across dates, routes, and cabin classes. - Route analysis for total times, stops, and carrier combinations. - Customer experience: Surface best/cheapest/fastest options or direct-only alternatives. --- ## 🛠 Input Schema The actor accepts the following input: json { "tripType": "ONEWAY", // ["ONEWAY", "ROUNDTRIP"] "fromLocationQuery": "Amsterdam", "toLocationQuery": "London", "departureDate": "YYYY-MM-DD", "returnDate": "YYYY-MM-DD", // required if tripType is roundTrip "numberOfAdults": 1, "childrenAges": "2,5", // children ages (comma separated), e.x: 2,5 (represents two children ages 2 and 5), leave empty for no children "cabinClass": "ECONOMY", // ["ECONOMY", "PREMIUM_ECONOMY", "BUSINESS", "FIRST"] "sortType": "BEST", // ["BEST", "CHEAPEST", "FASTEST"] "isDirectFlight": false, // if true -> no stopovers "maxItems": 10, "proxyConfiguration": { "useApifyProxy": false } } Notes: - Required fields: tripType, fromLocationQuery, toLocationQuery. - Trip type: ONEWAY or ROUNDTRIP. - If you choose ROUNDTRIP, provide a valid returnDate (YYYY-MM-DD). - Dates: departureDate and returnDate must match YYYY-MM-DD as per the schema pattern. - Adults: numberOfAdults is an integer between 1 and 9 (inclusive). - Children: childrenAges is a comma-separated string of ages, e.g. "2,5" for two children aged 2 and 5. Leave empty for no children. - Cabin class: one of ECONOMY, PREMIUM_ECONOMY, BUSINESS, FIRST. - Sort type: one of BEST, CHEAPEST, FASTEST. - Direct flights: Set isDirectFlight to true to allow only itineraries with no stopovers. - Limit: maxItems caps how many offers to return. - Proxies: Results vary by request origin. Use country-specific proxies via proxyConfiguration (e.g., US proxies for US results, FR proxies for France) because Booking may return different availability and prices per country. --- ## 📦 Output Schema Each dataset item resembles the following structure: json { "id": "d6a1f_H4sIAAAAAAAA_y2QW2...", "price": 180, "departureDate": "2025-10-10T15:35:00", "arrivalDate": "2025-10-17T18:30:00", "tripType": "ROUNDTRIP", "pointOfSale": "us", "cabinClass": "ECONOMY", "totalFlightTime": 8700, "segments": [ { "departureAirport": { "type": "AIRPORT", "code": "CDG", "name": "Paris - Charles de Gaulle Airport", "city": "PAR", "cityName": "Paris", "country": "FR", "countryName": "France", "province": "Île de France" }, "arrivalAirport": { "type": "AIRPORT", "code": "SEN", "name": "London Southend Airport", "city": "LON", "cityName": "London", "country": "GB", "countryName": "United Kingdom", "province": "Greater London" }, "departureTime": "2025-10-10T15:35:00", "arrivalTime": "2025-10-10T15:45:00", "legs": [ { "departureTime": "2025-10-10T15:35:00", "arrivalTime": "2025-10-10T15:45:00", "departureAirport": { "type": "AIRPORT", "code": "CDG", "name": "Paris - Charles de Gaulle Airport", "city": "PAR", "cityName": "Paris", "country": "FR", "countryName": "France", "province": "Île de France" }, "arrivalAirport": { "type": "AIRPORT", "code": "SEN", "name": "London Southend Airport", "city": "LON", "cityName": "London", "country": "GB", "countryName": "United Kingdom", "province": "Greater London" }, "cabinClass": "ECONOMY", "flightInfo": { "facilities": [], "flightNumber": 4661, "planeType": "", "carrierInfo": { "operatingCarrier": "U2", "marketingCarrier": "U2", "operatingCarrierDisclosureText": "" } }, "carriers": ["U2", "U2"], "carriersData": [ { "name": "Easyjet", "code": "U2", "logo": "https://r-xx.bstatic.com/data/airlines_logo/U2.png" }, { "name": "Easyjet", "code": "U2", "logo": "https://r-xx.bstatic.com/data/airlines_logo/U2.png" } ], "totalTime": 4200, "flightStops": [], "amenities": [] } ], "totalTime": 4200, "travellerCheckedLuggage": [], "travellerCabinLuggage": [ { "travellerReference": "1", "luggageAllowance": { "luggageType": "HAND", "maxPiece": 0 }, "personalItem": true }, { "travellerReference": "2", "luggageAllowance": { "luggageType": "HAND", "maxPiece": 0 }, "personalItem": true } ], "isAtolProtected": false, "showWarningDestinationAirport": false, "showWarningOriginAirport": false }, { "departureAirport": { "type": "AIRPORT", "code": "SEN", "name": "London Southend Airport", "city": "LON", "cityName": "London", "country": "GB", "countryName": "United Kingdom", "province": "Greater London" }, "arrivalAirport": { "type": "AIRPORT", "code": "CDG", "name": "Paris - Charles de Gaulle Airport", "city": "PAR", "cityName": "Paris", "country": "FR", "countryName": "France", "province": "Île de France" }, "departureTime": "2025-10-17T16:15:00", "arrivalTime": "2025-10-17T18:30:00", "legs": [ { "departureTime": "2025-10-17T16:15:00", "arrivalTime": "2025-10-17T18:30:00", "departureAirport": { "type": "AIRPORT", "code": "SEN", "name": "London Southend Airport", "city": "LON", "cityName": "London", "country": "GB", "countryName": "United Kingdom", "province": "Greater London" }, "arrivalAirport": { "type": "AIRPORT", "code": "CDG", "name": "Paris - Charles de Gaulle Airport", "city": "PAR", "cityName": "Paris", "country": "FR", "countryName": "France", "province": "Île de France" }, "cabinClass": "ECONOMY", "flightInfo": { "facilities": [], "flightNumber": 4662, "planeType": "", "carrierInfo": { "operatingCarrier": "U2", "marketingCarrier": "U2", "operatingCarrierDisclosureText": "" } }, "carriers": ["U2", "U2"], "carriersData": [ { "name": "Easyjet", "code": "U2", "logo": "https://r-xx.bstatic.com/data/airlines_logo/U2.png" }, { "name": "Easyjet", "code": "U2", "logo": "https://r-xx.bstatic.com/data/airlines_logo/U2.png" } ], "totalTime": 4500, "flightStops": [], "amenities": [] } ], "totalTime": 4500, "travellerCheckedLuggage": [], "travellerCabinLuggage": [ { "travellerReference": "1", "luggageAllowance": { "luggageType": "HAND", "maxPiece": 0 }, "personalItem": true }, { "travellerReference": "2", "luggageAllowance": { "luggageType": "HAND", "maxPiece": 0 }, "personalItem": true } ], "isAtolProtected": false, "showWarningDestinationAirport": false, "showWarningOriginAirport": false } ], "priceBreakdown": { "total": { "currencyCode": "USD", "units": 180, "nanos": 760000000 }, "baseFare": { "currencyCode": "USD", "units": 85, "nanos": 600000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 95, "nanos": 160000000 }, "totalRounded": { "currencyCode": "USD", "nanos": 0, "units": 181 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 180, "nanos": 760000000 }, "totalWithoutDiscountRounded": { "currencyCode": "USD", "nanos": 0, "units": 181 }, "carrierTaxBreakdown": [ { "carrier": { "name": "Easyjet", "code": "U2", "logo": "https://r-xx.bstatic.com/data/airlines_logo/U2.png" }, "avgPerAdult": { "currencyCode": "USD", "units": 47, "nanos": 580000000 } } ], "showPriceStrikethrough": false }, "travellerPrices": [ { "travellerPriceBreakdown": { "total": { "currencyCode": "USD", "units": 90, "nanos": 380000000 }, "baseFare": { "currencyCode": "USD", "units": 42, "nanos": 800000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 47, "nanos": 580000000 }, "totalRounded": { "currencyCode": "USD", "nanos": 0, "units": 91 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 90, "nanos": 380000000 }, "totalWithoutDiscountRounded": { "currencyCode": "USD", "nanos": 0, "units": 91 }, "showPriceStrikethrough": false }, "travellerReference": "1", "travellerType": "ADULT" }, { "travellerPriceBreakdown": { "total": { "currencyCode": "USD", "units": 90, "nanos": 380000000 }, "baseFare": { "currencyCode": "USD", "units": 42, "nanos": 800000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 47, "nanos": 580000000 }, "totalRounded": { "currencyCode": "USD", "nanos": 0, "units": 91 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 90, "nanos": 380000000 }, "totalWithoutDiscountRounded": { "currencyCode": "USD", "nanos": 0, "units": 91 }, "showPriceStrikethrough": false }, "travellerReference": "2", "travellerType": "ADULT" } ], "priceDisplayRequirements": [], "includedProducts": { "areAllSegmentsIdentical": true, "segments": [ [ { "luggageType": "PERSONAL_ITEM", "maxPiece": 2, "piecePerPax": 1 } ] ] }, "extraProducts": [ { "type": "flexibleTicket", "priceBreakdown": { "total": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "baseFare": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 12, "nanos": 660000000 } } }, { "type": "cabinBaggagePerTraveller", "priceBreakdown": { "total": { "currencyCode": "USD", "units": 19, "nanos": 990000000 }, "baseFare": { "currencyCode": "USD", "units": 19, "nanos": 990000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 19, "nanos": 990000000 } } }, { "type": "checkedInBaggage", "priceBreakdown": { "total": { "currencyCode": "USD", "units": 68, "nanos": 730000000 }, "baseFare": { "currencyCode": "USD", "units": 68, "nanos": 730000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 68, "nanos": 730000000 } } } ], "offerExtras": { "flexibleTicket": { "airProductReference": "n/a", "travellers": ["1", "2"], "recommendation": { "recommended": false, "confidence": "UNKNOWN_LEVEL" }, "priceBreakdown": { "total": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "baseFare": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalRounded": { "currencyCode": "USD", "nanos": 0, "units": 13 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "totalWithoutDiscountRounded": { "currencyCode": "USD", "nanos": 0, "units": 13 }, "showPriceStrikethrough": false }, "supplierInfo": { "name": "Gotogate, Inc.", "termsUrl": "https://flights-us.gotogate.com/rf/travel-conditions", "privacyPolicyUrl": "https://flights-us.gotogate.com/rf/privacy-policy" } } }, "ancillaries": { "cabinBaggagePerTraveller": { "luggageAllowance": { "luggageType": "HAND", "maxPiece": 1, "maxWeightPerPiece": 33, "massUnit": "LB", "sizeRestrictions": { "maxLength": 22, "maxWidth": 17, "maxHeight": 9, "sizeUnit": "INCH" } }, "priceBreakdown": { "total": { "currencyCode": "USD", "units": 19, "nanos": 990000000 }, "baseFare": { "currencyCode": "USD", "units": 19, "nanos": 990000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 19, "nanos": 990000000 } }, "travellers": ["1", "2"] }, "checkedInBaggage": { "airProductReference": "n/a", "options": [ { "luggageAllowance": { "luggageType": "CHECKED_IN", "ruleType": "PIECE_BASED", "maxPiece": 1, "maxWeightPerPiece": 33.1, "massUnit": "LB" }, "priceBreakdown": { "total": { "currencyCode": "USD", "units": 68, "nanos": 730000000 }, "baseFare": { "currencyCode": "USD", "units": 68, "nanos": 730000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 68, "nanos": 730000000 }, "showPriceStrikethrough": false }, "travellers": ["1", "2"], "preSelected": false } ] }, "flexibleTicket": { "airProductReference": "n/a", "travellers": ["1", "2"], "priceBreakdown": { "total": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "baseFare": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "fee": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "discount": { "currencyCode": "USD", "units": 0, "nanos": 0 }, "totalWithoutDiscount": { "currencyCode": "USD", "units": 12, "nanos": 660000000 }, "showPriceStrikethrough": false }, "preSelected": false, "recommendation": { "recommended": false, "confidence": "UNKNOWN_LEVEL" }, "supplierInfo": { "name": "Gotogate, Inc.", "termsUrl": "https://flights-us.gotogate.com/rf/travel-conditions", "privacyPolicyUrl": "https://flights-us.gotogate.com/rf/privacy-policy" } } }, "brandedFareInfo": { "fareName": "Standard", "cabinClass": "ECONOMY", "features": [ { "featureName": "PERSONAL_BAGGAGE", "category": "BAGGAGE", "code": "BK03", "label": "2 personal items", "availability": "INCLUDED", "priority": 0, "content": {} } ], "fareAttributes": [], "nonIncludedFeaturesRequired": false, "nonIncludedFeatures": [], "featuresList": [], "checkinBaggageExcluded": true, "cabinBaggageExcluded": true }, "fareRules": [ { "segmentIdentifiers": [ { "segmentIndex": 0, "legIndex": 0 } ], "availablePolicies": [ { "type": "CHANGE_BEFORE", "priceBreakdown": { "total": { "currencyCode": "", "units": 56, "nanos": 670000000 }, "baseFare": { "currencyCode": "", "units": 0, "nanos": 0 }, "fee": { "currencyCode": "", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "", "units": 0, "nanos": 0 } } } ], "unavailablePolicies": [ { "type": "CANCEL_BEFORE" } ] }, { "segmentIdentifiers": [ { "segmentIndex": 1, "legIndex": 0 } ], "availablePolicies": [ { "type": "CHANGE_BEFORE", "priceBreakdown": { "total": { "currencyCode": "", "units": 49, "nanos": 0 }, "baseFare": { "currencyCode": "", "units": 0, "nanos": 0 }, "fee": { "currencyCode": "", "units": 0, "nanos": 0 }, "tax": { "currencyCode": "", "units": 0, "nanos": 0 } } } ], "unavailablePolicies": [ { "type": "CANCEL_BEFORE" } ] } ], "appliedDiscounts": [], "extraProductDisplayRequirements": {}, "unifiedPriceBreakdown": { "id": "U24661.CDG2025-10-10T15:35:00.SEN2025-10-10T15:45:00.ECONOMY,U24662.SEN2025-10-17T16:15:00.CDG2025-10-17T18:30:00.ECONOMY_0_2ADULT_DIRECT_ETG", "price": { "currencyCode": "USD", "units": 180, "nanos": 760000000 }, "items": [ { "scope": "FLIGHT_ADULT", "id": "flight_adult", "title": "Adults (2)", "price": { "currencyCode": "USD", "units": 180, "nanos": 760000000 }, "items": [ { "id": "flight_adult-basefare", "title": "Flight fare", "price": { "currencyCode": "USD", "units": 85, "nanos": 600000000 }, "items": [] }, { "id": "flight_adult-tax", "title": "Taxes and airline fees", "price": { "currencyCode": "USD", "units": 95, "nanos": 160000000 }, "items": [] } ] } ], "addedItems": [] }, "perTravellerPriceDifferences": [] } --- 👀 p.s. Got feedback or need an extension? Lexis Solutions is a certified Apify Partner. We can help you with custom solutions or data extraction projects. Contact us over Email or LinkedIn ## Support Our Work 💝 If you're happy with our work and scrapers, you're welcome to leave us a company review here and leave a review for the scrapers you're subscribed to. It will take you less than a minute but it will mean a lot to us! Image Credit: https://www.booking.com/

Common Use Cases

Market Research

Gather competitive intelligence and market data

Lead Generation

Extract contact information for sales outreach

Price Monitoring

Track competitor pricing and product changes

Content Aggregation

Collect and organize content from multiple sources

Ready to Get Started?

Try Booking Flights Scraper now on Apify. Free tier available with no credit card required.

Start Free Trial

Actor Information

Developer
lexis-solutions
Pricing
Paid
Total Runs
69
Active Users
4
Apify Platform

Apify provides a cloud platform for web scraping, data extraction, and automation. Build and run web scrapers in the cloud.

Learn more about Apify

Need Professional Help?

Couldn't solve your problem? Hire a verified specialist on Fiverr to get it done quickly and professionally.

Find a Specialist

Trusted by millions | Money-back guarantee | 24/7 Support