Flight Price Tracker: Fare Drop Alerts (Memory)
Pricing
from $4.25 / 1,000 route checks
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Security
Limited permissionsShare
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
- Add your routes as airport codes (
BRU-LIS), a departure date (2026-12-10, or+45dfor a rolling watch) and, if you want, a target price. - 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.
- 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
statusisalert. ThealertTextfield 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):
| Route | Departure | Return | Status | Cheapest | Airline | Stops | Google verdict | Typical range |
|---|---|---|---|---|---|---|---|---|
| CDG-JFK | 2026-12-15 | 2026-12-22 | baseline | 676 EUR | Air France, Delta | 1 | typical | 445 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):
| Route | Departure | Status | Cheapest | Airline | Stops | Alerts | Alert text |
|---|---|---|---|---|---|---|---|
| BRU-LIS | 2026-11-30 | alert | 100 EUR | KLM | 1 | BELOW_TARGET | BRU-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:
| Event | Price | When |
|---|---|---|
| Route check | 0.005 USD | One route and date read and verified |
| Alert | 0.02 USD | A 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 scraper | Flight price tracker with memory | |
|---|---|---|
| Memory between runs | You build it (sheet, database, n8n) | Built in, one memory per watch name |
| Output | Hundreds of rows per search | One decision per route and date |
| Alert sentence | You write it | Ready to send |
| Bad or partial page | Often charged | Marked unverified, never charged, never compared |
| "Cheapest" check | Trust the first list | Our 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.
Is it legal to use?
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
| Field | What it does | Default |
|---|---|---|
routes | Routes to watch as airport codes, up to 20 (BRU-LIS) | BRU-LIS in the prefill |
departure | Fixed date 2026-12-10 or rolling +45d | +45d |
windowDays | Also check the next days, 1 to 14 | 1 |
returnAfterNights | 0 for one way, N for a round trip back N nights later | 0 |
targetPrice | Optional: alert at or under this price, in your currency | none |
dropPercent | Minimum drop since the last check for a DROP alert | 5 |
alertOn | Which alert types you want | all four |
adults, cabin, nonstopOnly | Search options | 1, economy, off |
currency, country, language | Price currency, market and page language | EUR, US, en-US |
watchName | Name of the memory; same name = same history | default |
resetMemory | Forget the history for this watch name | off |
maxChecks | Cost guard per run (max 100) | 30 (3 in the prefill) |
proxyConfiguration | Apify datacenter proxy, the default, works well | on |
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.