mrkeyoor.com_
Tue 10 Nov 00:36 UTC
Dataevaluationupdated 01 Nov 2026

flights review

Choose fast-flights for Python flight-search prototypes when you can validate results and maintain a scraper. fast-flights is a strongly typed Google Flights scraper implemented in Python. Our run on 2026-10-03 at commit 7c105db recorded successful install, build and test commands in our sandbox; it did not establish live fare completeness, booking readiness or deployment reliability.

+6stars / 7d
Verdict

Use fast-flights for prototypes and internal searches where you can validate itineraries and handle scraper maintenance. Our run on 2026-10-03 at commit 7c105db recorded successful local commands and a stored parser summary of 16 passed tests. It did not establish complete live results, bookable fares or production reliability. Compare representative routes with Google Flights before depending on the output.

We ran it

Lab card: what happened when we ran flightsScreenshot of flights (flights.aweird.me)
Install✓ · 31s39 packages · 65 MB
Build✓ · 9s
Tests✓ · 25s16 passed · 0 failed of 16 (pytest)
Known vulns0(pip-audit)
Repo50 files~5,214 lines of source · 1.4 MB · 2 CI workflows · tests dir

Answers from our run

Does flights build from source?

Dependencies installed in 31 seconds (39 packages), and the build succeeded in 9 seconds. We cloned commit 7c105db into a clean Debian container with 3 CPUs and no project-specific setup.

Do flights's tests pass?

Yes. The project's own test command finished in 25 seconds and reported 16 passed, 0 failed (pytest).

Does flights have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use flights?

Applications requiring this review to establish complete live itinerary coverage.

What are the alternatives to flights?

Google Flights Scraper, Amadeus Python SDK, SearchApi Google Flights API. Use fast-flights for prototypes and internal searches where you can validate itineraries and handle scraper maintenance.

Setup4/5Strong within the visible local-setup rubric: our dated sandbox recorded successful install, build and test commands, including a 31-second install. Live operation was not established.
Docs4/5Strong within the visible documentation rubric: query examples, filter units, the airline-filter restriction and integration guidance are documented. Live correctness was not verified.
Community4/5Strong within the narrow contribution-activity rubric: v3.1.0 lists new contributors and issue #92 contains maintainer discussion. Adoption and support response times remain unmeasured.
Maturity3/5Usable with important constraints under the visible maturity rubric: documented functionality and releases coexist with the maintainer's warning about keeping up with Google changes.

Discussed on

  1. hnFast, Robust Google Flights Scraper (API) for Python3 points

Who it’s for

Python developers building flight-search prototypes or internal fare checks.
Teams that can compare returned itineraries with Google Flights and investigate discrepancies.
Developers who need documented search filters and accept maintenance when Google's responses change.

Who it’s NOT for

Applications requiring this review to establish complete live itinerary coverage.
Teams treating a returned search price as confirmed bookable inventory.
Teams that cannot investigate scraper breakage or accommodate uncertain maintenance response times.

Setup reality

Our run on 2026-10-03 checked commit 7c105db in our sandbox. The stored harness records a 31-second install, a 9-second build step and a 25-second test step. Each returned exit code 0 without timing out. The dependency footprint was 39 packages and 65 MB.

The attached stored parser summary records 16 passed, 0 failed, 0 skipped and 0 errors. These are recorded parser summaries, not verified exhaustive unique test counts. The raw pytest footer also contains a separate subtest result and one warning; neither changes the stored aggregate. Its reported pytest duration is distinct from the harness's elapsed test-step time.

The build and test output contains a SyntaxWarning about an invalid escape sequence in tests/test_parser.py. Pip-audit recorded 0 advisories. Scan coverage is unknown because scannedPackages is absent; the recorded packages field does not establish coverage. This was not a security review, live-route comparison or deployment test.

Use fast-flights when you can validate the output

Choose fast-flights for prototypes and internal flight searches where you can check itineraries and handle scraper maintenance. Our sandbox established successful local command outcomes, not complete live search results. Before relying on it, compare representative routes with Google Flights and investigate empty or partial responses.

fast-flights is a strongly typed Google Flights scraper implemented in Python. Its README documents queries built from flight legs, passengers, cabin class and trip type. Version 3 uses JavaScript data, while its query encoding is based on Base64-encoded Protobuf. Those capabilities make it worth evaluating for Python search tools, but they do not establish that every returned fare remains available to book.

Our run recorded successful commands and 16 parser-summary passes

Our run on 2026-10-03 at commit 7c105db recorded exit code 0 for the install, build and test steps. The exact checkout was 7c105db4ed5f73fbadbf6b0e9f6bdfd71f352d97. Our sandbox recorded a 31-second install, a 9-second build step and a 25-second test step, with no recorded timeout. The installed dependencies occupied 65 MB across 39 packages.

Our harness records each command's success flag, exit code, elapsed time, timeout status and output tail. It stores parsed test counts separately. The attached stored parser summary records 16 passed, 0 failed, 0 skipped and 0 errors; it does not establish exhaustive unique coverage. The raw footer's separate subtest result is not added to that aggregate. Pytest's own duration also measures a different interval from the harness's test-step duration.

The build and test tails contain a SyntaxWarning about an invalid escape sequence in tests/test_parser.py. The warning did not cause a nonzero command exit. Pip-audit recorded 0 advisories, but scanned-package coverage is unknown because scannedPackages is absent. A zero advisory count is not proof of security.

The supplied record contains no route-by-route comparison with Google Flights, booking exercise or deployment check. No new execution was performed for this correction. The MrKeyoor testing methodology explains how command outcomes and parsed counts reach a review; its current description does not establish which methodology version this older run used.

Filters have units and a search-wide airline restriction

The README says Google applies the first leg's airline filter to the whole search. That matters for multi-leg queries: do not assume each leg's airline setting operates independently. Hours use local airport time, durations and layovers use minutes, and the maximum price uses the selected currency.

Documented per-leg filters include stops, airlines, departure and arrival hours, duration, connecting airports, layover limits and lower-emission results. Search-wide options include price, baggage, hiding separate and self-transfer itineraries, and excluding basic economy. The v3.1.0 release lists extended search parameters and a correction to declared tuple types for dates and times. These are documentation and release facts, not evidence that our sandbox validated every filter against live results.

Maintenance capacity limits the operating promise

The maintainer said they could not update the project every time Google changed something. That statement appears in issue #92 about project maintenance, opened on December 19, 2025. Budget time to reproduce and investigate broken searches rather than assume immediate repairs.

The v3.1.0 release lists contributions from two new contributors, so the maintenance warning does not establish abandonment. Those contributions also do not establish support response times or adoption. For your evaluation, retain the query context and check discrepancies before translating an empty response into a claim that no flights exist. These are recommended checks, not work completed by our sandbox.

Alternatives change the implementation or the data provider

Google Flights Scraper uses Playwright to scrape Google Flights. Its README also documents a CLI. Consider this alternative implementation when browser automation is a requirement. The supplied evidence does not establish better completeness or speed, and our fast-flights run did not test it.

The Amadeus Python SDK requires a developer account and application credentials. It provides access to Amadeus travel APIs, with documented flight-offer search, pricing and order endpoints. Consider it when your application needs that provider's API workflow. It is a different data source, not evidence of equivalent Google Flights inventory. Its default environment is test; production requires separate configuration.

SearchApi can complement fast-flights through its documented integration rather than replace the library's Python interface. The README presents it as a sponsored option and lists price insights and booking options in its result. That description does not establish booking completion or measured consistency. Bright Data and local Playwright are also documented options; our run did not compare these request paths.

Ratings assess a limited evidence scope

The five-point rubric is: 1 for substantial obstacles, 2 for material gaps, 3 for usable functionality with important constraints, 4 for strong evidence within the assessed scope, and 5 for comprehensive evidence with few material gaps. These are editorial judgments, not runtime benchmarks, adoption measurements or guarantees.

Setup ease is 4 because the recorded local commands succeeded, with live operation outside the assessment. Documentation is 4 for query examples, filter semantics and integration guidance. Community is 4 within the narrow scope of documented contribution activity and maintainer discussion; support speed and adoption remain unmeasured. Maturity is 3 because documented functionality and releases coexist with an explicit warning about keeping up with Google changes.

Alternatives

ProjectWhat it isPick it when
Google Flights ScraperA Python Google Flights scraper using Playwright, with a documented CLI.Choose this alternative implementation when browser automation is a requirement. Better completeness and speed were not established by the supplied evidence.
Amadeus Python SDKA Python client for Amadeus travel APIs that requires account credentials.Choose it when Amadeus flight-search, pricing and order workflows fit your application. Verify inventory and production requirements separately.
SearchApi Google Flights APIA sponsored fast-flights integration with documented price-insight and booking-option result fields.Consider it as a complement when those result fields matter. Our sandbox did not measure its consistency or complete a booking.

What people are saying

  1. [github-trending] AWeirdDev/flights

Sources

  1. fast-flights README
  2. fast-flights v3.1.0 release
  3. Issue 92: project maintenance
  4. Issue 97: missing self-transfer flights
  5. Issue 101: results not parsed
  6. Pull request 107: shopping XHR parsing

More data reviews

rerun · telegraf · rocksdb · redash · akshare · DB-GPT · the whole board →