The product is the data: Seats.aero keeps pulling award space from 24 loyalty programs, each with its own login rules, bot defences and quirks, and keeps the results searchable. A personal copy has no source to read, and scraping airlines yourself is the part that breaks first. What an agent can build is a watcher on top of Seats.aero's own Partner API, which Pro includes at 1,000 calls a day. That swaps the website and SMS for alerts you control, but it still needs the subscription.
Before you buildFree search and email alerts cover flights within about two months. If you only book last-minute, you may never need Pro, and a one-month subscription around a trip is an option.
Build me a personal award-seat watcher on top of the Seats.aero Partner API, to replace the alerts of Seats.aero Pro. Requirements: - Node.js 22 + TypeScript CLI named `watch`, run every 15 minutes by cron or launchd. Read the endpoints and parameters at https://developers.seats.aero before coding and use only the cached search endpoint. - SEATSAERO_API_KEY (the Partner API key from my Pro account) and NTFY_TOPIC in .env. The key must never appear in logs or error messages. - ./watches.yaml lists watches: origin airports, destination airports, date range, cabins, programs, maximum points and minimum seats. Validate it with `zod` and ship two example routes. - better-sqlite3 in ./data/watch.db stores every availability seen (program, route, date, cabin, points, seats, first and last seen), so a notification fires only for a result that is new, got cheaper or came back after disappearing. - Notify through ntfy with route, date, cabin, points, seats and the program name. - Respect the quota of 1,000 calls a day: count calls in SQLite, spread the watches over the day, stop at 900 and say so once in the log and once through ntfy. - `watch list` prints the best current result per watch; `watch history <name>` prints what was seen and when. - No accounts, no telemetry, local-first: the only outbound calls go to the Seats.aero API and ntfy. - Out of scope: scraping airline sites, booking, live search, hotels, a web interface. - README: a sample cron line, and a plain note that the API key needs an active Pro subscription, so this replaces the website and SMS alerts, not the data.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Seats.aero Pro.
Add a trip view to the award watcher in this folder. Requirements: - A trips section in watches.yaml with an outbound watch, a return watch and a minimum and maximum stay in days. - `watch trips` pairs stored outbound and return results that fit the stay window, sorts pairs by total points and prints the best 10 with dates, program and seats left. - Notify only when a new pair appears that is cheaper than the previous best for that trip. - Add tests for the pairing logic around month ends. - Update the README.
Add digest mode to the award watcher in this folder. Requirements: - Per watch, a `notify: digest` option; those watches stay silent during the day and are summed up in one ntfy message at DIGEST_TIME in .env. - The digest lists new and cheaper results since the last digest, grouped by route, at most 10 lines each, with a count of the rest. - Instant watches keep working as before. - Update the README.
Add a history chart to the award watcher in this folder. Requirements: - `watch report <name>` writes ./report/<name>.html with a chart of the lowest points price per departure date over time, built from the stored history; use `uplot` from a local file. - Show first and last seen for the cheapest result, and how long it stayed available. - No network access when the report opens. - Update the README.
Premium award seats can vanish within minutes, and the only way to catch them is a system polling every program all the time. Ten dollars buys a year-long search window and SMS alerts, and some people subscribe for a month or two around a trip and cancel.
Estimate · You still pay for Pro, because the API key comes with it. Push through ntfy is free and the watcher runs on a machine you already have, or about $5 for a small VPS. The build is token usage on your agent plan.
Checked 2026-10-19 against Seats.aero Pro's docs: 1, 2, 3, 4, 5, 6
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | Search, explore availability and create alerts for flights departing within about two months, no registration; alerts arrive by email. |
| Pro | $9.99 | $8.33 | Search up to a year out, live search, continuous alerts with advanced filters, SMS and push notifications, seat maps, United and Delta cardholder and elite pricing, route requests, and Partner API access for personal use. |
Free needs no account and covers searches, exploring and alerts for flights departing within the next two months.
Not really. Premium award seats can vanish within minutes, and the only way to catch them is a system polling every program all the time. Ten dollars buys a year-long search window and SMS alerts, and some people subscribe for a month or two around a trip and cancel. The prompt on this page builds the closest honest substitute.
About $9.99 a month on the Pro plan, $119.88 a year (checked 2026-10-19).
The search website that shows all 24 programs side by side; Live search that refreshes stale results; the cached endpoint can lag; Seat maps, the fare-class viewer and the United PlusPoints finder; Discord posts about large seat releases; Support from the Seats.aero team. If any of those matter to you, keep paying.
Not a finished one, but these are good starting points: seats.aero-mcp-server, seats-aero-viz, seats.