Skip to content

How to Scrape Flight Prices in 2026: The APIs, the Rules and the Proxy Setup

How to scrape flight prices: Skyscanner, Duffel and Travelpayouts APIs first. 7 of 12 fare sites bar crawlers from flight search. Setup, traffic, proxy prices.

Billal AinaouiAugust 24, 2026Updated October 26, 202612 min read

How to Scrape Flight Prices in 2026: The APIs, the Rules and the Proxy Setup

Start with an official source. Skyscanner's Travel API serves approved partners, Duffel sells flight search by the order, and Travelpayouts gives affiliates cached fares through a token. Google's public fare API, QPX Express, ended on April 10, 2018. If you scrape public fare pages, read each site's rules first. On October 25, 2026, 7 of 12 fare sites' robots.txt files disallowed their flight search pages for all crawlers. Google Flights, Kayak, Skyscanner and Expedia were among them. Where scraping is allowed, use a residential exit in each market, a real browser and one session per search. At 1 TB, five residential sellers' own pages listed $0.24 to $2.10 per GB on October 26, 2026. The HProxy Lite pool costs $0.50/GB from one GB.

This guide covers the APIs, the rules, why fares differ by market and how a fare search loads. Then come the traffic, the proxies that fit and the setup. The sector overview is in travel fare aggregation, and the hotel companion is how to scrape hotel prices. The sites have their own pages, from Google Flights and Skyscanner to airlines such as Delta and Lufthansa.

Is there an API for flight prices?

Yes, several, and most need an agreement. Search demand shows where people start. In Google's Keyword Planner for October 2026, "amadeus api" draws about 5,400 searches a month and "skyscanner api" about 3,600. "Scrape flight prices" draws 30.

SourceWho can use itWhat it costs
Skyscanner Travel APIpartners, by applicationset in the partnership
Duffelanyone, self-serve$3.00 per order
Travelpayouts Data APIaffiliates with a tokenno fee printed
Amadeus Self-Servicereported closednone
Google QPX Expressended April 10, 2018none

Skyscanner. Keys come through "an application with our Partnerships team", and the team contacts you if it succeeds. Skyscanner says the APIs cover over 52 markets, 30 languages and over 1,300 supply partners. Every search names a market, a locale and a currency.

Duffel. Duffel charges $3.00 per confirmed order and allows 1,500 searches per order each month. Each search beyond that ratio costs $0.005, so a monitor that books nothing pays for every search.

Travelpayouts. The Aviasales Data API returns prices "found by Aviasales users in the last 48 hours". The data is stored for 7 days and tied to a market. The data suits trend pages and alerts, and it is a cache of past searches.

Amadeus and Google. Amadeus's Python library for its Self-Service APIs is archived on GitHub. Amadeus's developer site reports that the self-service portal shut down on July 17. Google's QPX Express FAQ said in 2017 that "The QPX Express API service ends on April 10, 2018". Our Kayak page covers Kayak's own partner API.

It depends on the country, the site's terms and the use, and this section is no legal advice. Read two things first: the robots.txt file and the terms. We read the robots files of 12 fare sites on October 25, 2026. For each, we checked the flight search page against the rules for all crawlers:

Robots rules for the flight search page at 12 fare sitesSites, by what their robots.txt says to all crawlers about flight search
  • Disallow
  • No matching rule
Five of the six search and travel sites tell all crawlers to stay out of flight search.
Source: HProxy, the robots.txt files of 12 fare sites, read October 25, 2026 · hproxy.comProxy.
SiteSearch path testedRule for all crawlers
Google Flights/travel/flights/searchDisallow.
Kayak/flights/... and its poll APIDisallow.
Momondo/flight-search/...Disallow.
Skyscanner/transport/flights/...Disallow.
Expedia/Flights-SearchDisallow.
Priceline/m/fly/search/...No rule.
Air France/search/offersDisallow.
Ryanair/gb/en/trip/flights/selectDisallow.
United/en/us/fsr/choose-flightsNo rule.
Delta/flight-search/searchNo rule.
American/booking/searchNo rule.
Southwest/air/booking/select-depart.htmlNo rule.

A missing rule grants nothing. The robots standard, RFC 9309, says its rules "are not a form of access authorization", and terms still apply. Kayak's terms of August 17, 2026 are explicit. Users may not "Scrape, harvest, deep-link to, train AI on, or otherwise use automated tools on our Site without our written permission".

Airlines have gone to court over fare scrapers. In 2004, a US court held in Southwest Airlines v. FareChase that a scraper gathering Southwest's flight information was unauthorized, because it interfered with Southwest's use of its site. In 2022 the Ninth Circuit found it likely that reading publicly available data falls outside the federal anti-hacking law, the CFAA. Our page on proxies for Ryanair covers that airline's own case against Booking.com.

Why do flight prices differ by country?

Because a fare can be limited to where it is sold. In the airline rule set, Category 15 restricts a fare by "countries/currencies of sale". It also names the "locales where the fare may or may not be sold". Skyscanner's API asks for the "Market where search is coming from" on every search. Taxes, currency and resident-only fares add their own gaps.

Controlled studies found such gaps rare at airlines. A 2014 test of 25 airlines from two countries found no systematic price differences by location. Our review of whether proxies or VPNs get cheaper flights covers the evidence. For a scraper, the rule is practical: store the market, the currency and the time with every fare, or two fares cannot be compared.

Which proxy do you need to scrape flight prices?

A residential proxy in the market you read, held for the whole search. Residential addresses belong to consumer internet providers, and a gateway lets you pick the country, and on some plans the city, of each session. A datacenter proxy is cheaper and may do for a site that accepts hosting addresses. An API needs no proxy at all.

Keep one market per series, and record the exit with every fare. Our guides to what a residential proxy is and rotating vs static residential proxies explain pools, gateways and sticky sessions.

How does a flight search load, and what does it mean for a scraper?

In two steps, at least on Skyscanner. Its own documentation says the website runs on the same /create and /poll calls as its API. The first call "returns an incomplete cached subset of results", and polling then fetches the complete list as supply partners answer. The session token "expires after around an hour".

Three rules follow for a scraper:

  • Wait for the search to finish. A fare stored from the first screen may come from the cached subset.
  • Keep one session for one search. The create and poll steps belong to one session, so hold one sticky address until the search ends.
  • Expect fares to vanish. In the 2014 study, KLM flights disappeared and reappeared between searches about a minute apart, and travel sites show cached prices.

Fare pages draw their results with scripts, so the work runs in a browser. Our guides for Playwright and Puppeteer show the proxy wiring. How Akamai's bot defense reads a browser is covered in how to scrape past Akamai.

How much traffic does a flight scraper use?

A lot, because a browser downloads the whole page. Take an example job of 300 routes, 60 dates and 3 markets, or 54,000 searches per refresh, each loaded once in a browser:

Traffic of one refresh of 54,000 fare searchesGB per refresh, one browser load per search, by page weight
Median page2,987 KB
165 GB
Heavy page75th percentile
333 GB
Heaviest tenth90th percentile
692 GB
A daily refresh multiplies each figure by about 30 a month.
Source: HTTP Archive page weight reports, desktop pages, crawl of October 1, 2026 · hproxy.comProxy.

At the market's median residential price of $3.50 per GB, one refresh costs about $578 at the median page. At the heaviest tenth it costs about $2,423. On our Residential Lite plan, the three refreshes cost $69.30, $129.87 and $242.20. HTTP Archive weighs home pages, and polling, retries and block pages add bytes of their own. Weigh a sample of real searches before you budget.

What are the best residential proxies for scraping flight prices?

Pools that target the market of each search, hold one address through it and cost little at volume. One refresh of the example job moves about 165 GB. We read each seller's own pricing page on October 26, 2026:

SellerPrice per GB, Oct 26Why it fits fare searches
HProxy Lite$0.50/GB from 1 GB, $0.23/GB at 10,000 GB+country, sticky while in use
Rainproxy$0.40 at 100 GB, $0.24 at 1 TBtraffic never expires
Evomi$0.49 on a monthly plancity, rotating and sticky
DataImpulse$1.00, then $0.80 at 1 TBcountry, rotating and sticky
Decodo$2.75 at 100 GB, $2.00 at 1 TBZIP and ASN, sticky
MarsProxies$2.99 at 100 GB, $2.10 at 1,000 GBcity, rotating and sticky
HProxy Premium$1.45/GB from 1 GB, $0.65/GB at 1,000 GB+city, 24-hour sessions

Decodo's 100 GB rate is a monthly subscription and its 1 TB rate an enterprise plan. Evomi's $49 monthly plan includes 100 GB, and each extra GB costs the same $0.49. A daily refresh of the example job moves about 5 TB a month. At that volume, the rates at 1 TB matter more than the entry price.

Bright Data's smallest monthly plan cost $499 for 141 GB, and its residential network is open only to verified companies. For ten sellers side by side, see our best residential proxies guide.

How do you set up a proxy to scrape flight prices?

  1. Check the source. Prefer a partner or flight API, and read robots.txt and the terms of any site you plan to load.
  2. Fix the market. Set the exit country, or city, in the proxy login, and match the site's currency and language to it.
  3. Hold the session. Keep one sticky address from the first request of a search to its last result.
  4. Record the context. Store the market, currency, exit and time with each fare.
  5. Slow down on a 429. Honor the Retry-After header and lower the rate for that site.

On our Premium gateway, the rotating port gives a new address on each request, and each sticky port holds one session. In Playwright for Python, the proxy goes in at launch. The host below is made up and shows the shape only; the real host, port and login come from the Copy button on your line in the dashboard:

# One fare search in a browser, held on one sticky address.
# The login is copied whole from the dashboard, where the market is chosen.
from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch(proxy={
        "server": "http://example.hproxy.com:8080",
        "username": "USER",
        "password": "PASS",
    })
    page = browser.new_page(locale="en-GB")
    page.goto(SEARCH_URL, wait_until="networkidle")  # a page your rules allow
    html = page.content()
    browser.close()

Test the line on the free proxy checker first. A free proxy list is fine for testing a parser on a saved page.

What do HProxy's residential proxies cost for flight scraping?

Two residential pools, both billed by the GB:

What you compareResidential LiteResidential Premium
One GB$0.50/GB$1.45/GB
At volume$0.23/GB at 10,000 GB+$0.65/GB at 1,000 GB+
Targetingcountrycountry, state, city, ISP
Sessionsrotating, or sticky while in userotating, or 3 minutes to 24 hours
Expirynonenone
Paymentcard, crypto, Alipay, QRIS, Pixthe same

The smallest order is one GB. A card payment starts at $10 and a crypto payment at $3. The residential proxies and residential pricing pages carry the full ladders. Our guide to how a rate limit becomes a ban covers the request habits sites tolerate.

What this page could not check

  • No scraping of our own. We loaded no fare page and measured no block rate, success rate or speed at any site or seller, ours included.
  • One path per site. We tested one search path per robots file, and a site can use other paths.
  • Unreadable sources. Kiwi.com and Lufthansa served no readable robots file. Amadeus's own closure notice was built by script, so only its archived library is verified.
  • Court records at second hand. Southwest v. FareChase is known here from the Ninth Circuit's summary.
  • Home pages. HTTP Archive weighs home pages, so fare pages and their polling change the totals.
  • Sellers' rates untested. The seller table repeats each pricing page as printed on October 26, 2026. We bought nothing to confirm a rate or a session term.
  • No legal advice. The court opinion and the terms are quoted for what they say.
  • Check by January 26, 2027. Robots files, API terms and prices change often, and every figure here needs a fresh read by then.

Sources

  • Google Developers, "QPX Express FAQ", Shutdown FAQs, archived November 1, 2017.
  • Skyscanner developer documentation, "Flights Live Prices API: Overview", "Authentication" and "Introduction", read October 25, 2026.
  • Duffel, pricing page and "Getting Started with Flights", read October 25, 2026.
  • Travelpayouts Help Center, "Aviasales Data API", read October 25, 2026.
  • Amadeus for Developers, amadeus-python repository record on GitHub (archived), read October 25, 2026.
  • KAYAK, Terms of Use, last updated August 17, 2026, read October 25, 2026.
  • HProxy, the robots.txt files of Google, Kayak, Momondo, Skyscanner, Expedia, Priceline, Air France, Ryanair, United, Delta, American and Southwest, read October 25, 2026.
  • IETF, RFC 9309, "Robots Exclusion Protocol", September 2022.
  • US Court of Appeals for the Ninth Circuit, hiQ Labs v. LinkedIn, April 18, 2022, including footnote 21 on Southwest Airlines v. FareChase (2004).
  • Travelport, Fares and Pricing help, "Cat15, Sales Restrictions", read October 25, 2026.
  • Thomas Vissers, Nick Nikiforakis, Nataliia Bielova and Wouter Joosen, "Crying Wolf? On the Price Discrimination of Online Airline Tickets", HotPETs, July 2014.
  • HTTP Archive, page weight reports, crawl of October 1, 2026.
  • Google Ads Keyword Planner, worldwide searches a month, read October 25, 2026.
  • HProxy price records: the residential price lists of 66 sellers, captured July 2 to October 22, 2026.
  • Rainproxy, Evomi, DataImpulse, Decodo, MarsProxies and Bright Data, residential pricing pages, read October 26, 2026.
  • Bright Data documentation, "Residential network access", modified September 1, 2026, read October 26, 2026.
  • HProxy, residential product pages and price list, read October 26, 2026.

Frequently asked questions

Is there a Google Flights API?

No public one. Google's fare search API, QPX Express, stopped taking new users in 2017 and ended on April 10, 2018. Google's robots.txt also disallows its flight search pages for all crawlers. For fare data, apply for a partner API such as Skyscanner's, or use a flight API such as Duffel.

Is it possible to scrape flight prices reliably?

On sites whose rules allow it, yes, with a residential exit in each market, a real browser and one session per search. Check the rules first: on October 25, 2026, 7 of 12 fare sites' robots.txt files disallowed their flight search pages for all crawlers, among them Google Flights, Kayak, Skyscanner and Expedia.

What kind of proxy do I need to scrape flight prices?

A residential proxy in the market whose fares you read, held for the whole search. Fares can be limited to the countries where they are sold, so the market of every request matters. A datacenter proxy may do for a site that accepts it, and an API needs no proxy at all.

Why do I need proxies at all to scrape flights?

To read the market you want. Skyscanner's own API asks for the market a search comes from, and fare rules can limit a fare to certain countries of sale. A program in one place sees one market. A proxy in each market lets it read what travelers there are shown.

Can I use a free proxy to scrape flight prices?

For testing a parser on a saved page, a free proxy can do. For a fare pipeline it is the wrong tool: free proxies are shared, short-lived and rarely in the market you need. Use a paid residential exit when the data has to come from the right market every time.

Is the Skyscanner API free?

Skyscanner gives API keys only to partners: you apply to its Partnerships team, and it contacts you if the application succeeds. Duffel is self-serve and charges $3.00 per confirmed order, with 1,500 free searches per order and $0.005 for each search beyond that.

What are the best residential proxies for scraping flight prices?

Pools with country targeting, sticky sessions and low rates at volume, since fare pages are heavy. On their own pages, read October 26, 2026, Rainproxy charged $0.40 per GB at 100 GB and $0.24 at 1 TB, Evomi $0.49 on its monthly plan and DataImpulse $1.00, falling to $0.80 at 1 TB. Our Lite pool costs $0.50 for one GB.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.23/GB is the 10,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed