Flightpoints Award Flights Scraper: Miles, Taxes
Pricing
$0.01 / 1,000 award flights
Flightpoints Award Flights Scraper: Miles, Taxes
Search public award availability from Flightpoints for one main route on a date or bounded date window, with optional extra routes. Export structured itineraries with miles, taxes, seats, cabin details, loyalty programs, flight segments, and booking links when available.
Pricing
$0.01 / 1,000 award flights
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
1
Bookmarked
46
Total users
14
Monthly active users
4.9 days
Issues response
8 days ago
Last modified
Categories
Share
✈️ Find award seats on your route
For points and miles researchers, travel teams, and developers, Award Flights Scraper searches public Flightpoints award data for one main route and a departure date or date window, with optional extra routes. It returns structured itinerary rows with miles or points, taxes, seats, cabin availability, loyalty details, flight segments, and booking links, so you can review award options in a dataset.
- Use Award Tracker to schedule repeat checks for the same award route.
- Use Search Flights with Points to keep itineraries under a mileage ceiling.
- Use Flight Award Search Tool to compare award options for a route.
- Use Award Travel Search to review miles, taxes, cabins, and seats for a trip.
- Use Flightpoints Availability to export public award rows from Flightpoints.
📦 Award itinerary data
Each dataset item is one award flight itinerary from Flightpoints. A row keeps the source, search, route, date, loyalty program, cabin details, and flight segments together. Some values can be null or empty when the source does not provide them.
The Actor collects public award-search data. It does not book flights, use airline or loyalty-program accounts, redeem points, search cash fares, or guarantee that an award seat is still available later.
🚀 Run a route search
Enter one origin, destination, and departure date, then add any filters. The Actor saves matching itinerary rows as it finds them and stops when it reaches Maximum itineraries or Flightpoints has no more available results. Leave Maximum itineraries empty to return all available results until Flightpoints has no more results or the search ends early.
The Actor reads the award results Flightpoints has already saved. It does not ask Flightpoints for live availability, so a route can show no rows when Flightpoints has not saved a result for it.
If a search finds no available itineraries, the dataset can be empty. No placeholder award rows are added. An empty dataset can mean one of four things: Flightpoints had no saved rows for that route and date, your filters removed every row, every row lacked a cabin with miles, a tax amount, and at least one seat, or a search could not run. When a search could not run, the run log shows a warning. The warning says whether Flightpoints could not complete the search or the source was temporarily unavailable. An unknown loyalty program code gets its own warning that names the code. If Flightpoints lists more flights than its result pages send back, the run log warns that some flights may be missing from the run.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
origin | string | Sets the three-letter IATA code for the departure airport. |
destination | string | Sets the three-letter IATA code for the arrival airport. |
departureDate | date string | Sets the departure date for the main route. It is a one-day search when startDate and endDate are empty. |
startDate | date string | Sets the optional first date in a bounded search window. |
endDate | date string | Sets the optional last date in a bounded search window. |
additionalRoutes | object[] | Adds extra routes to search in the same run. Each route needs its own origin, destination, and departure date. Leave empty to search only the main route. |
additionalRoutes[].origin | string | Sets the three-letter IATA code for the departure airport of an extra route. |
additionalRoutes[].destination | string | Sets the three-letter IATA code for the arrival airport of an extra route. |
additionalRoutes[].departureDate | date string | Sets the departure date for an extra route. startDate and endDate do not apply to it. |
cabin | choice | Keeps itineraries with availability in economy, premium economy, business, or first. |
maxMiles | integer | Keeps itineraries whose matching cabin award price is at or below this number of miles. |
maxCashTaxes | number | Keeps itineraries whose cash taxes or surcharges are at or below this amount. |
minSeats | integer | Keeps itineraries with at least this many available award seats. |
nonstop | boolean | Keeps only itineraries with no connections. |
sortBy | choice | Prefers itineraries with availability in the selected cabin before saving rows. Each batch of results is sorted on its own, so matches in later batches do not move to the top. |
issuers | string[] | Keeps only these loyalty program codes, such as CX for Cathay Pacific Asia Miles. Enter codes, not program names. Leave empty to include all programs. Codes that Flightpoints does not list, or lists as inactive with no routes, are reported in a warning. If every code is unknown, no search runs. If the program list cannot be loaded, the run warns that the codes were not checked and still searches. |
operatingAirlines | string[] | Airline codes to include, such as CX for Cathay Pacific. This setting is not applied yet, so results include flights from any operating airline. |
maxResults | integer | Stops after this many itinerary rows. Leave empty to return all available results until Flightpoints has no more results or the search ends early. |
Use origin, destination, and departureDate for one route and one date. Add additionalRoutes to search more routes in the same run, each with its own departure date. Add startDate and endDate for a bounded date window. The end date can be at most 60 days after the start date; a later end date is cut to 60 days after the start. Each Flightpoints search covers up to 7 days either side of its search date, so the Actor splits a longer window into searches of up to 15 days. Very wide Flightpoints searches can lose or repeat rows, so the Actor keeps each search to 15 days or less. Each part of the window is its own Flightpoints search. If Flightpoints skips one part, the run log shows a warning and the other parts still run. The filters decide which public award itineraries can be saved.
Example input
{"origin": "JFK","destination": "LHR","departureDate": "2026-11-01","maxResults": 5}
This example searches one route and date and returns up to five itineraries. The empty optional filters use their normal defaults.
🧾 Output
The default dataset has one award itinerary shape. source names the public source that supplied the row. Optional values are null or empty when the source does not provide them.
Output fields
| Field | Type | What it does |
|---|---|---|
source | string | Names the public source that supplied the itinerary. |
searchId | string | Identifies the source search that produced the row. |
origin | string | Gives the three-letter IATA origin code. |
destination | string | Gives the three-letter IATA destination code. |
departureDate | string | Gives the itinerary departure date in YYYY-MM-DD form. |
originName | string or null | Gives the origin airport name when available. |
destinationName | string or null | Gives the destination airport name when available. |
coordinates | object | Holds origin and destination coordinates when available. |
coordinates.origin | object or null | Holds origin airport coordinates when available. |
coordinates.origin.latitude | number | Gives origin latitude in decimal degrees. |
coordinates.origin.longitude | number | Gives origin longitude in decimal degrees. |
coordinates.destination | object or null | Holds destination airport coordinates when available. |
coordinates.destination.latitude | number | Gives destination latitude in decimal degrees. |
coordinates.destination.longitude | number | Gives destination longitude in decimal degrees. |
program | string | Gives the loyalty program code. |
programName | string or null | Gives the loyalty program name when available. |
flightId | string | Gives the source itinerary identifier. |
bookingUrl | string or null | Links to a program or booking page when available. |
lastSeen | string or null | Gives the source time when the award was last seen, when supplied. |
airline | string or null | Gives the main airline name when available. |
alliance | string or null | Gives the airline alliance when available. |
departureTime | string or null | Gives the itinerary departure time when available. |
arrivalDate | string or null | Gives the arrival date when available. |
arrivalTime | string or null | Gives the arrival time when available. |
durationMinutes | integer or null | Gives total itinerary duration in minutes when available. |
stops | integer or null | Gives the number of itinerary stops when available. |
distance | integer or null | Gives route distance in miles when available. |
connections | string[] | Lists connection airport codes. |
connections[] | string | Gives one connection airport IATA code. |
airlines | object[] | Lists airlines associated with the itinerary. |
airlines[].code | string or null | Gives an airline code when available. |
airlines[].name | string or null | Gives an airline name when available. |
economy | object | Holds economy award details. Present only when the cabin is listed. |
premiumEconomy | object | Holds premium economy award details. Present only when the cabin is listed. |
business | object | Holds business award details. Present only when the cabin is listed. |
first | object | Holds first class award details. Present only when the cabin is listed. |
economy.miles, premiumEconomy.miles, business.miles, first.miles | integer | Gives award miles or points for each listed cabin. |
economy.tax, premiumEconomy.tax, business.tax, first.tax | number | Gives cash taxes or surcharges for each listed cabin. |
economy.seats, premiumEconomy.seats, business.seats, first.seats | integer | Gives the number of award seats for each listed cabin. A listed cabin has at least one seat. |
economy.stops, premiumEconomy.stops, business.stops, first.stops | integer or null | Gives cabin-specific stop counts when supplied. |
economy.airlineCodes, premiumEconomy.airlineCodes, business.airlineCodes, first.airlineCodes | string[] | Lists airline codes for each cabin option. |
economy.airlineCodes[], premiumEconomy.airlineCodes[], business.airlineCodes[], first.airlineCodes[] | string | Gives one airline code for a cabin option. |
economy.available, premiumEconomy.available, business.available, first.available | boolean | Is true for each cabin listed in the row. |
segments | object[] | Lists the flight legs in the itinerary. |
segments[].segmentNumber | integer | Gives the segment order. |
segments[].origin | string or null | Gives the segment departure airport code. |
segments[].destination | string or null | Gives the segment arrival airport code. |
segments[].flightNumber | string or null | Gives the flight number when available. |
segments[].airlineCode | string or null | Gives the operating airline code when available. |
segments[].airlineName | string or null | Gives the operating airline name when available. |
segments[].cabin | string or null | Gives the segment cabin when available. |
segments[].fareClass | string or null | Gives the fare class when available. |
segments[].aircraft | string or null | Gives the aircraft type when available. |
segments[].distance | integer or null | Gives the segment distance in miles when available. |
segments[].layoverMinutes | integer or null | Gives the layover before the next segment when available. |
segments[].travelTimeMinutes | integer or null | Gives segment travel time in minutes when available. |
Example award itinerary
This complete row is one of the five rows that the example input above returned in a run on 2026-10-12. Its values are unchanged from the saved row. Null and empty values are kept as the source returned them.
{"source": "flightpoints","searchId": "27862c0d6317164e94a99ba22b744e6fbbf1d1bbe557bd5cbd8d8970dc704608","origin": "JFK","destination": "LHR","departureDate": "2026-11-01","originName": "John F. Kennedy International Airport","destinationName": null,"coordinates": {"origin": {"latitude": 40.6397,"longitude": -73.7789},"destination": null},"program": "AA","programName": "AAdvantage","airline": "American Airlines","alliance": "oneworld","flightId": "AA_20261101_JFK_LHR_AA2848-AA90","bookingUrl": "https://www.aa.com/booking/search?locale=en_US&pax=1&adult=1&type=OneWay&searchType=Award&cabin=&carriers=ALL&travelType=personal&slices=%5B%7B%22orig%22%3A%22JFK%22%2C%22origNearby%22%3Afalse%2C%22dest%22%3A%22LHR%22%2C%22destNearby%22%3Afalse%2C%22date%22%3A%222026-11-01%22%7D%5D","lastSeen": "2026-10-04T01:34:08Z","departureTime": "10:45:00","arrivalDate": "2026-11-02","arrivalTime": "10:25:00","durationMinutes": 650,"stops": 1,"distance": 3451,"connections": ["ORD"],"airlines": [{"code": "AA","name": "American Airlines"}],"economy": {"miles": 60000,"tax": 5.6,"seats": 1,"stops": 0,"airlineCodes": ["AA"],"available": true},"premiumEconomy": {"miles": 188500,"tax": 5.6,"seats": 1,"stops": 1,"airlineCodes": ["AA"],"available": true},"business": {"miles": 450000,"tax": 5.6,"seats": 1,"stops": 0,"airlineCodes": ["AA"],"available": true},"segments": [{"segmentNumber": 1,"origin": "JFK","destination": "ORD","flightNumber": "AA2848","airlineCode": "AA","airlineName": "American Airlines","aircraft": "Airbus A319","distance": 740,"layoverMinutes": 470,"travelTimeMinutes": 175,"cabin": null,"fareClass": null},{"segmentNumber": 2,"origin": "ORD","destination": "LHR","flightNumber": "AA90","airlineCode": "AA","airlineName": "American Airlines","aircraft": "Boeing 787-9","distance": 3953,"layoverMinutes": 0,"travelTimeMinutes": 475,"cabin": null,"fareClass": null}]}
💳 Pricing
The Actor uses pay-per-event pricing. You pay $0.00001 for each saved award flight itinerary. The current pricing setup has no separate Actor-start event.
Use Maximum itineraries and the search filters to control which matching itineraries can be saved.
🔌 Integrations
- Export award flight rows as JSON, CSV, Excel, XML, RSS, or HTML.
- Read saved itineraries through the Apify API for points dashboards, internal travel tools, or route research.
- Schedule repeat runs to monitor the same routes and date windows.
- Send completed runs to webhooks or downstream tools when new datasets are ready.
❓ FAQ
What happens if no awards are available?
The run can finish with an empty dataset. The Actor does not add placeholder rows for an unavailable or empty source response. The run log shows a warning when a search could not run.
What if Flightpoints rejects the search?
If Flightpoints rejects a search with an error such as HTTP 400 or 422, the run stops with that error. Rows saved before the error stay in the dataset, but the run summary is not printed. Temporary errors while a search is set up or its results are read, such as timeouts and HTTP 500, 502, 503, or 504 responses, are retried. If they still fail, the run log shows a warning and the run keeps going.
What does Maximum itineraries do?
It stops the run after the requested number of itinerary rows. Leave it empty to return all available results until Flightpoints has no more results or the search ends early.
Can I search a date window?
Yes. Enter Start date and End date to search a bounded departure-date window. Flightpoints decides which dates and awards it can return.
Does the Actor search Roame?
No. This Actor searches Flightpoints only, because it removed the Roame search. A saved input that still asks for Roame (roame or both) gets a warning, and the run searches Flightpoints only.
Can I filter by cabin, miles, taxes, seats, or nonstop flights?
Yes. Use the cabin, maximum miles, maximum cash taxes, minimum award seats, and nonstop filters. You can also prioritize a cabin or keep selected loyalty programs.
Why are some cabins missing from a row?
A row lists only the cabins that have a miles amount, a tax amount, and at least one seat. A cabin that is missing from the row did not meet that test in the saved data. Other values, such as a cabin's stops or a segment's airlineCode, can still be null when the source does not provide them.
Are the miles and seats guaranteed?
No. The row is a saved Flightpoints observation. Award availability can change after the run, so check the returned link when one is available.
Does this book flights or use my airline login?
No. The Actor collects public award-search data and does not book flights, redeem points, or use airline or loyalty-program accounts.
Can I read the rows through an API?
Yes. Use the Apify API to read the saved dataset rows or export them for your own workflow.
📝 Changelog
v2.0 (12-10-2026)
- Removed the Roame search and the Search award flights with setting. Flightpoints is now the only source. A saved input that still asks for Roame gets a warning.
- Removed these output fields:
sourceSearchUrl,dateWindow,issuer,issuerName,retrievedAt,relatedOffers, and thedirectandairlinesfields inside each cabin. - Renamed the loyalty program filter to Redemption program codes. Enter codes such as
CX, not program names. - Added Additional routes. Search extra routes in the same run, so you don't need a separate run for each one. Each extra route has its own origin, destination, and departure date. Start date and End date apply only to the main route. All routes share one Maximum itineraries limit.
- Fixed a bug that skipped Flightpoints searches, so their saved results were never returned.
- Searches that use a program code such as
CXfor Cathay Pacific Asia Miles now return the rows Flightpoints has saved for them. - Long date windows now include their last days. Before, the final days of a window could be missing from the results.
- The run log warns when Flightpoints lists more flights than it sent back, so some flights may be missing. A search that stops at the Maximum itineraries limit gets no such warning.
- Cabins are listed only when miles, tax, and at least one seat are present. Results with no such cabin are left out.
- Unknown program codes get a warning.
- If every program code is unknown, no search runs.
- If the Flightpoints program list cannot be loaded, the run warns that the program codes were not checked and still searches.
v1.0 (02-09-2026)
- Search public award flights from Flightpoints, Roame, or both sources.
- Filter results by miles, cash taxes, seats, cabin, stops, and loyalty program.
- Keep saved rows and finish successfully with a clear source warning when a source cannot complete a search.
v0.2
- Added the Maximum miles filter so you can save only award flights at or below your mileage ceiling.
v0.1
- Added multi-route and date-window searches, from-anywhere and to-anywhere discovery, cabin and loyalty-program filters, richer airport and itinerary fields, and hosted pay-per-event pricing.
v0.0
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- Flight Scraper - Compare public cash-flight itineraries when you need prices rather than award miles.
- Flightpoints & Roame Award Flight Scraper - Compare award seats, miles, and taxes from Flightpoints and Roame for one route and date.
- Award Flight Scraper — Miles, Taxes & 25+ Programs - Search award flights across many loyalty programs, including from-anywhere and named-airport searches.
- Flightpoints Award Flights Scraper - Search Flightpoints award seats with miles, taxes, cabins, and booking links.
- Flight Award & Itinerary Scraper - Miles, Taxes & Cabins - Export award flights and detailed itineraries across multiple loyalty programs as JSON.
Made with ❤️ by Maxime Dupré