Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

Skyscanner Proxies: 0 Words, 15 Fares in 34 s

Skyscanner measured on 28 September 2026 through residential proxies: 265,657 bytes and 0 words over plain HTTP from the United Kingdom, 408,075 bytes and 0 fare words rendered, 0 words from a United States exit, and 15 London Heathrow to New York JFK itineraries in 33.7 seconds from the google_flights collector
Skyscanner measured on 28 September 2026 through residential proxies: 265,657 bytes and 0 words over plain HTTP from the United Kingdom, 408,075 bytes and 0 fare words rendered, 0 words from a United States exit, and 15 London Heathrow to New York JFK itineraries in 33.7 seconds from the google_flights collector

Skyscanner is the metasearch site where no fetch mode returns a fare, because no fetch mode returns a word. On 28 September 2026 we fetched the home page through a United Kingdom residential exit: a plain HTTP client received a title, a description, a canonical and one WebSite JSON-LD block, and zero words of body text, for 265,657 bytes. A full browser render received zero fare words for 408,075 bytes. From a United States exit the same URL redirected to skyscanner.com and returned zero words again. The setting for Skyscanner proxies is therefore not a proxy fetch at all. It is the Google Flights collector, which returned 15 London Heathrow to New York JFK itineraries, priced in pounds, in 33.7 seconds the same afternoon.

The keyword wants an API, and Skyscanner sells one

"Skyscanner proxies" returns nothing in Google autocomplete for the United Kingdom, and neither does "proxies for skyscanner". The completions that exist are "skyscanner scraper" followed by github, python, api and data scraper, and the buyer phrasing: "skyscanner flights live prices api", "skyscanner api python", "skyscanner price data", "skyscanner price history". The demand is for fares as data.

The first page for "skyscanner scraper api" is four scraping-API vendors, a hosted actor, a no-code robot, a personal GitHub CLI marked for personal use, and, at position nine, Skyscanner's own partner page inviting you to apply for its Flights API. The best tutorial on the page is 4,711 words long and honest about the mechanics: the prices never arrive in the first HTML response, so it renders the search, waits for it to settle and captures the search XHR instead of parsing cards. Our measurement confirms the first half. Our answer to the second half is shorter.

Zero words with JavaScript, zero without, in two countries

We audited skyscanner.net/ from a United Kingdom residential exit as a pure HTTP client and fully rendered, then repeated both from the United States.

FetchExitBytesSecondsWordsTitleCanonicalJSON-LD
Plain HTTPUnited Kingdom265,6574.20Compare Cheap Flights & Book Airline Tickets to Everywhereskyscanner.net/WebSite
RenderedUnited Kingdom408,07531.50 fareschangednonenone
Plain HTTPUnited Statesn/an/a0same title, US descriptionskyscanner.com/WebSite
RenderedUnited Statesn/an/a0 fareschangednonenone

The plain HTTP row is the honest one. The head of the page is complete and well-formed: a title, a 152-character description about comparing cheap flight prices, a self-referencing canonical, a content-language: en header and a WebSite JSON-LD block. The body has no text a parser can count. Skyscanner's home page is a shell that its scripts fill in, and the 265,657 bytes are the scripts.

The rendered row costs 54% more bytes and 27 more seconds and returns no fare either: the title changes, the canonical disappears and the body holds no search results. The seo_audit diff reports an h1 that exists only in the render and no content in either view. That is the definition of a target where the browser does not earn its price: it did not add a fare, it removed the canonical.

The United States exit adds the geo fact. A request to skyscanner.net from a United States address is redirected to skyscanner.com with a session hand-off token in the URL, the description changes to the American wording, the canonical becomes skyscanner.com/, and the body is still zero words. Skyscanner runs one market per domain and routes by exit IP; that is how you would pin a market if there were a fetch worth pinning, and it is the reason the collector below takes a country and a currency explicitly.

What robots.txt and the terms say

skyscanner.net/robots.txt is 10,882 bytes and 394 lines, opening with one Sitemap line and then eleven user-agent blocks. Eight agents get a bare Disallow: /: Leikibot, ShopWiki, NPBot, psbot, HenryTheMiragoRobot, gigabot, appie and Meta-ExternalAgent. The wildcard shares a block with AhrefsBot and carries 324 disallow lines, almost all of them the localised path prefixes for transport pages in every language the site ships, from /doprava/* to /trasporti/*, plus /deeplink* and /transport_deeplink*. The flight search paths are not the subject of the file; the shell is.

The Terms of Service are the subject. They say you agree not to use any unauthorised automated computer program, software agent, bot, spider or other software to scan, copy, index, sort or otherwise exploit the services or the data on them, that Skyscanner offers access to travel data on a commercial API basis, that any breach is a material breach, and that the company reserves the right to take technical or legal action to detect and restrict unauthorised automated access. That is one paragraph and it is unambiguous: reading Skyscanner's fares with a script is something its terms prohibit. The permitted route is the one the SERP already showed at position nine.

The partner Travel API covers flights, hotels and car hire, mixes real-time and indicative pricing, and is described on the developer site as supporting 52 markets and 30 languages with access to over 1,300 supply partners. It is the same API that powers Skyscanner's own search, it requires an application, and it is where a travel business that wants Skyscanner's specific inventory should go.

The collector returns 15 fares in 33.7 seconds

For fare monitoring that does not depend on Skyscanner's markup or its terms, we ran the google_flights collector once on 28 September 2026: departure LHR, arrival JFK, outbound 20 October, currency GBP, exit country United Kingdom, up to 15 results. It finished in 33.7 seconds and delivered 15 itineraries, none partial.

FieldWhat the 15 rows contained
Price£520 to £1,015, as text and as a numeric price_value
Stops12 nonstop, 3 with one stop
Airlines8: TAP Air Portugal, JetBlue, Royal Air Maroc, Icelandair, British Airways, Virgin Atlantic, Delta, American
Duration7 h 45 min nonstop to 29 h 35 min with a stop
Timesdeparture and arrival for every row
Emissions254 kg to 565 kg CO2e as shown

Three things in that output are worth more than the row count. The cheapest fare in the set, £520, is a one-stop itinerary of 13 h 45 min; the cheapest nonstop is £584; six of the nonstops on one carrier are priced identically at £1,008. A tracker that stores only the minimum price is comparing a connection against a nonstop across days. Store stops with the price. Second, the currency is the pound because we asked for it with the country; ask for USD from a United States exit and the same route reprices in dollars, which is the cross-market comparison the terms forbid you to build by scraping the site. Third, the row carries the CO2 estimate as Google shows it, which is the field the best tutorial on the SERP does not capture.

What a gigabyte buys on Skyscanner

Every measurement above came through residential proxies on the Basic line at $0.80/GB. Counting a gigabyte as 10^9 bytes:

RequestBytesRequests per GBCost per requestFares
Home page, plain HTTP265,6573,764$0.000210
Home page, rendered408,0752,450$0.000330
google_flights, one itinerarybilled per rown/a$0.0031

A gigabyte buys 3,764 plain fetches or 2,450 rendered ones, and the fare count in both columns is zero. The collector is billed per delivered itinerary and failed rows are never charged, so the 15-row London run cost $0.045. Mobile exits at $2.30/GB would raise the first two rows by 2.9 times and leave the zeros where they are; nothing about the address was the barrier. If you are sizing a pool for the pages that do return content, how much proxy data you need does that arithmetic; for a target like this one, size the job in rows.

The setting that works on Skyscanner

Network: residential, Basic line at $0.80/GB, underneath the collector only. Fetch mode: neither engine: tls nor rendered, because both returned 0 words of body from the home page in both countries; the fetch that returns fares is the google_flights collector at $0.003 per itinerary. Country to pin: the market whose fares you want, passed as both the exit country and the currency, because Skyscanner runs one market per domain and redirected our United States exit from skyscanner.net to skyscanner.com; our run pinned gb and GBP and every price came back in pounds. When the proxy is not enough: on this target that is always, and the collector answered LHR to JFK with 15 itineraries in 33.7 seconds; for hotels on the same trip the Google Hotels collector prices a stay by dates, and for any page on the domain that does carry text the web scraping API with render is the fallback, and every account gets $2 of free API usage per month, which is 666 itineraries.

Among the flight metasearch sites we measured, Skyscanner is the closed end of the range. Kayak hands a plain client 2,451 words and a FAQPage in the source; Expedia hands it 72 words and fences off every dated search in robots.txt. Skyscanner hands it a head and nothing else, and says in its terms where the data is sold.

Sources & further reading

FAQ

Quick answers on skyscanner proxies.

Something else? Ask us →

Can you scrape Skyscanner with a residential proxy?

Not the site. On 28 September 2026 the home page returned a title, a description, a canonical and a WebSite JSON-LD block but 0 words of body text to a plain HTTP client through a United Kingdom residential exit, 0 fare words to a full browser, and 0 words from a United States exit after a redirect to skyscanner.com. Fares came from the google_flights collector: 15 itineraries in 33.7 seconds.

Does Skyscanner have an API for flight prices?

Yes, for approved partners. The Travel API covers flights, hotels and car hire, mixes real-time and indicative prices, and the developer documentation describes 52 markets, 30 languages and over 1,300 supply partners. It requires an application through the partner site, which ranked at position nine on the SERP for "skyscanner scraper api".

Is scraping Skyscanner allowed by its terms?

No. The Terms of Service say you agree not to use any unauthorised automated program, bot, spider or other software to scan, copy, index, sort or otherwise exploit the services or their data, that travel data is offered on a commercial API basis, and that a breach is a material breach. robots.txt is 10,882 bytes with 8 fully blocked agents and 324 disallow lines for the wildcard.

Why does the browser not help on Skyscanner?

Because it returns no fare and loses the canonical. The rendered home page cost 408,075 bytes and 31.5 seconds against 265,657 bytes and 4.2 seconds over plain HTTP, and the body still held 0 fare words; the seo_audit diff shows the title changed and the canonical missing in the render. On this target the browser is a more expensive way to receive nothing.

How much does flight price tracking cost per route?

$0.003 per delivered itinerary through the google_flights collector, so the 15-row London Heathrow to New York run cost $0.045, and failed rows are never billed. A gigabyte of Basic residential bandwidth at $0.80 would buy 3,764 plain fetches of the Skyscanner home page containing 0 fares, counting 1 GB as 10^9 bytes, and every account gets $2 of free API usage per month, which is 666 itineraries.

What did the London to New York run actually return?

Fifteen itineraries for 20 October 2026 priced from £520 to £1,015: 12 nonstop and 3 with one stop, across 8 airlines, each with departure and arrival times, duration from 7 h 45 min to 29 h 35 min, and a CO2 estimate from 254 kg to 565 kg. The cheapest fare was a 13 h 45 min connection; the cheapest nonstop was £584. Store stops with the price.

Ask for fares, not for pages

The google_flights collector returned 15 priced London to New York itineraries in 33.7 seconds where every fetch of Skyscanner returned zero words; run it for any route, date, country and currency. Every account gets $2 of free API usage each month, and failed rows are never billed.

Related reading

Use casesExpedia Proxies: 72 Words Without a Browser

Expedia measured on 28 September 2026 through residential exits in the United States and the United Kingdom. From the United States a plain HTTP client gets the home page: 72 words, the h1 "The one place you go to go places", a canonical and a description for 507,949 bytes in 4.1 seconds. The browser gets 14 words. From the United Kingdom the plain fetch gets 14 words too. Structure over plain HTTP from a US exit; prices from the hotels and google_flights collectors.

Read →
Use casesKayak Proxies: 2,451 Words With No Browser

Kayak measured on 28 September 2026 through residential exits in the United States and the United Kingdom. The home page hands a plain HTTP client 2,451 words, an h1, a canonical and three JSON-LD blocks including a four-question FAQPage, for 1,656,272 bytes. A full browser render returns 2,455 words for 2,415,047 bytes and 40.7 seconds. Every tutorial on the SERP opens Selenium first; the measurement says close it.

Read →
Use casesTripadvisor Proxies: 713 Words Over Plain HTTP

Tripadvisor measured on 28 September 2026 through residential exits in the United States and Italy. The home page hands a plain HTTP client 713 words, the h1 "Where to?", a canonical and three kinds of JSON-LD, including 19 LocalBusiness objects with URLs and countries, for 388,397 bytes in 3.6 seconds. From Italy the same URL returns the same English page with 757 words. The browser spends 46 seconds and returns 5,915 bytes. The setting is plain HTTP; the tripadvisor_search collector returned 30 Chicago restaurants in 8.1 seconds.

Read →