Flight Price Tracker: Fare Drop Alerts (Memory) avatar

Flight Price Tracker: Fare Drop Alerts (Memory)

Pricing

from $4.25 / 1,000 route checks

Go to Apify Store
Flight Price Tracker: Fare Drop Alerts (Memory)

Flight Price Tracker: Fare Drop Alerts (Memory)

Flight price tracker with memory for any route by airport code. It alerts you at once when a fare is under your target, then on drops and new lows from the second run. One row per route and date, with a ready-to-send alert line. 0.005 USD per check.

Pricing

from $4.25 / 1,000 route checks

Rating

0.0

(0)

Developer

Sillage Data

Sillage Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Security

Limited permissions

Share

Flight price tracker with memory: watch any route by airport code and get a fare drop alert the moment the price falls, hits a new low or goes under your target. It remembers the last price of every route, checks again on your schedule and gives you one clear decision per route and date, plus a ready-to-send alert line for Slack, Telegram or email. You pay 0.005 USD per route check and 0.02 USD per alert, with no subscription.

Try it in one click: the default input watches Brussels to Lisbon, 45 days from today. Run it daily with a schedule. If the price is already under your target on the first run, you get the alert right away; drops and new lows need a second run to compare.

What can you use it for?

  • Catch a fare drop before you book. Watch BRU-LIS, JFK-LAX or LHR-BCN and get an alert when the price falls 5% or more.
  • Buy under your budget. Set a target price (for example 90 EUR) and get an alert when the cheapest fare reaches it.
  • Find the cheapest day to fly. Check a window of up to 14 days and see which date is lowest.
  • Plan weekend city breaks. Track round trips (return after 2 nights) from several airports to one city.
  • Feed an assistant or a workflow. Send the alert line to Slack, Telegram, Make, n8n or an AI agent through the Apify API.

How to use the flight price tracker

  1. Add your routes as airport codes (BRU-LIS), a departure date (2026-12-10, or +45d for a rolling watch) and, if you want, a target price.
  2. Click Start once: it records the first price (and alerts right away if it is already under your target), then add a daily schedule in Apify (Schedules). Keep the same watch name: it is the memory key.
  3. From the second run on, drops and new lows can fire too. Read the dataset or use a webhook on "Run succeeded" and filter items where status is alert. The alertText field is ready to send.

Important: if the price is already under your target on the first check of a route and date, you get the alert right away. Without a target, or above it, the first check only records a baseline. Drops and new lows need a second run to compare, because there is nothing to compare with before.

Example output (real rows from our runs)

First check of a Paris to New York round trip with no target (a baseline, so no alert):

RouteDepartureReturnStatusCheapestAirlineStopsGoogle verdictTypical range
CDG-JFK2026-12-152026-12-22baseline676 EURAir France, Delta1typical445 to 840 EUR
{
"watchName": "paris-new-york-price-tracker",
"route": "CDG-JFK",
"departureDate": "2026-12-15",
"returnDate": "2026-12-22",
"checkedAt": "2026-10-15T11:20:59+00:00",
"currency": "EUR",
"status": "baseline",
"cheapestPrice": 676,
"cheapestAirlines": ["Air France", "Delta"],
"cheapestStops": 1,
"cheapestDurationMinutes": 720,
"googleVerdict": "typical",
"typicalPriceRange": [445, 840],
"previousPrice": null,
"changePercent": null,
"lowestSeenPrice": 676,
"alerts": [],
"alertText": null,
"quality": {"itinerariesSeen": 13, "verdictParsed": true, "trusted": true}
}

First check of a Brussels to Lisbon fare with a target of 500 EUR, already under it (real row from our runs, so the alert fires right away):

RouteDepartureStatusCheapestAirlineStopsAlertsAlert text
BRU-LIS2026-11-30alert100 EURKLM1BELOW_TARGETBRU-LIS on 30 Nov 2026: 100 EUR (first check, under your target of 500 EUR)
{
"watchName": "test-first-alert-1610",
"route": "BRU-LIS",
"departureDate": "2026-11-30",
"returnDate": null,
"checkedAt": "2026-10-16T12:07:47+00:00",
"currency": "EUR",
"status": "alert",
"cheapestPrice": 100,
"cheapestAirlines": ["KLM"],
"cheapestStops": 1,
"googleVerdict": "typical",
"typicalPriceRange": [75, 145],
"previousPrice": null,
"changePercent": null,
"lowestSeenPrice": 100,
"alerts": ["BELOW_TARGET"],
"alertText": "BRU-LIS on 30 Nov 2026: 100 EUR (first check, under your target of 500 EUR)"
}

A later check of another date, same route: status is unchanged, cheapestPrice 717, previousPrice 717, changePercent 0, googleVerdict typical.

When a check produces an alert, alerts lists the reasons (BELOW_TARGET, DROP, NEW_LOW, VERDICT_LOW) and alertText holds a sentence like this (format from our logic test):

BRU-LIS on 10 Dec 2026: 88 EUR (-12% vs last check (100 EUR), lowest price seen so far, under your target of 90 EUR, Google rates prices as low)

status is one of baseline (first check without an alert), unchanged, changed, alert, or unverified (the page could not be trusted: not charged, memory untouched).

How much does it cost to track flight prices?

Pay per event, no subscription:

EventPriceWhen
Route check0.005 USDOne route and date read and verified
Alert0.02 USDA check that produced at least one alert

Unverified pages cost nothing. Two examples:

  • One route, every day for a month: 30 checks = 0.15 USD, plus 0.02 USD for each alert.
  • 10 routes, every day for a month: 300 checks = 1.50 USD. With 5 alerts that month, 1.60 USD.

On a free Apify plan, the 5 USD of free monthly credit covers about 1,000 route checks. A window of 7 days counts as 7 checks per route. Set "Max checks per run" to cap each run, and use the maximum cost per run setting of Apify: the Actor stops cleanly when the cap is reached.

Why not another flight scraper?

Typical flight scraperFlight price tracker with memory
Memory between runsYou build it (sheet, database, n8n)Built in, one memory per watch name
OutputHundreds of rows per searchOne decision per route and date
Alert sentenceYou write itReady to send
Bad or partial pageOften chargedMarked unverified, never charged, never compared
"Cheapest" checkTrust the first listOur cheapest must equal the "from" price the page shows itself

Frequently asked questions

What is the best way to get a Google Flights price alert automatically?

Run this flight price tracker on a daily Apify schedule with your routes and a target price. It stores the last price and the lowest price seen, and returns an alert line only when the fare drops, hits a new low, goes under your target, or Google rates prices as low.

Why did I get a baseline and no alert?

A baseline means the first check of that route and date had no target, or the price was above your target, so there was nothing to alert on yet. If the price is already under your target on the first run, we alert right away. Drops and new lows need a second run, because the Actor compares with the memory kept for your watch name. Schedule it daily.

How does the memory work?

The memory is saved in your own Apify account, per watch name, route, date and search settings (adults, cabin, nonstop, currency). Same watch name and same settings means the same history. Change the currency or the cabin and that route starts a new baseline. With a rolling date like +45d, each run compares the date 45 days away from today with the previous run. Use "Reset memory" to start again.

Is there a Google Flights API for price tracking?

Google does not offer a public Google Flights API. This Actor reads the public search page for each route and date and returns structured JSON, with memory between runs, through the Apify API.

How does it know the price is the real cheapest?

Every page lists the cheapest fare it shows (the "from" price). The Actor only trusts a check when its cheapest itinerary equals that number. Otherwise the check is unverified, not charged, and not stored, so it cannot create a false drop alert.

What does the Google price verdict mean?

Google compares the current cheapest fare with a typical range for the route. Below the range is low, inside is typical, above is high. The range is in typicalPriceRange.

Can I track a round trip or several days?

Yes. Set "Return after N nights" (7 for a one-week trip) and "Days to check from the departure date" (up to 14). Each route and day is one check.

It reads public price pages, without login and without account cookies, one request at a time and 3 seconds apart. It does not solve captchas or bypass blocks: if a page is blocked, the checks stop and nothing is charged for it. Google's terms restrict automated access to its services, and Google's robots.txt disallows the flight search path. You are responsible for how you use the data; this is not legal advice. Data comes from Google Flights public pages; we are not affiliated with Google.

Limits and safeguards

  • It returns the cheapest fare and a few top itineraries from the page, not every flight. It does not book, does not return booking links and does not cover multi-city trips.
  • Up to 20 routes and 100 checks per run, one request at a time.
  • Public price data only: no personal data, no accounts, no reviews, no booking.
  • No captcha solving, no fake tokens, no fingerprint spoofing.
  • A blocked page stops the remaining checks; unverified pages are free and never update the memory.
  • If no page can be verified in a run, the run fails and nothing is charged.

Input settings

FieldWhat it doesDefault
routesRoutes to watch as airport codes, up to 20 (BRU-LIS)BRU-LIS in the prefill
departureFixed date 2026-12-10 or rolling +45d+45d
windowDaysAlso check the next days, 1 to 141
returnAfterNights0 for one way, N for a round trip back N nights later0
targetPriceOptional: alert at or under this price, in your currencynone
dropPercentMinimum drop since the last check for a DROP alert5
alertOnWhich alert types you wantall four
adults, cabin, nonstopOnlySearch options1, economy, off
currency, country, languagePrice currency, market and page languageEUR, US, en-US
watchNameName of the memory; same name = same historydefault
resetMemoryForget the history for this watch nameoff
maxChecksCost guard per run (max 100)30 (3 in the prefill)
proxyConfigurationApify datacenter proxy, the default, works wellon

Integrations

Use Apify Schedules for daily runs, webhooks for alerts, and the Apify integrations for Make, n8n, Zapier, Slack and Google Sheets. Call it from code with the Apify API clients for JavaScript and Python, or from an AI agent through the Apify MCP server.

More tools from our team

Support

Found a problem or need a field? Open an issue in the Issues tab. We answer every question within 6 hours.

Found this useful? Leave a quick review on the Reviews tab: it takes 10 seconds and helps us keep improving it.