Flightpoints & Roame Award Flights Scraper
Pricing
$0.01 / 1,000 award flights
Flightpoints & Roame Award Flights Scraper
Search public award availability from Flightpoints and Roame for one route and date or a bounded date window. 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
27
Total users
8
Monthly active users
10 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 and Roame award data for one route and departure date. 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 or Roame. A row keeps the source, search, route, date, loyalty program, cabin details, flight segments, and retrieval times 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 one route search
Enter one origin, destination, and departure date, then choose a source and any filters. The Actor saves matching itinerary rows as it finds them and stops when it reaches Maximum itineraries or the selected sources have no more available results. Leave Maximum itineraries empty to return all available results until the selected sources are exhausted.
If a search finds no available itineraries, the dataset can be empty. No placeholder award rows are added.
⚙️ Input
Input fields
| Field | Type | What it does |
|---|---|---|
source | choice | Searches Flightpoints, Roame, or both public sources. |
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 a one-day search. |
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. |
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. |
issuers | string[] | Keeps selected loyalty program names. Leave empty to include all programs. |
maxResults | integer | Stops after this many itinerary rows. Leave empty to return all available results until the selected sources are exhausted. |
Use origin, destination, and departureDate for one route and one date. Add startDate and endDate for a bounded date window. The source and filters decide which public award itineraries can be saved.
Example input
{"source": "both","origin": "JFK","destination": "LHR","departureDate": "2026-09-16","maxResults": 5}
This is the public input from a successful small route search. The empty optional filters use their normal defaults.
🧾 Output
The default dataset has one award itinerary shape. source tells you whether Flightpoints or Roame 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. |
sourceSearchUrl | string or null | Links to the source search page when available. |
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. |
dateWindow | object | Holds the date range used for the search. |
dateWindow.startDate | string | Gives the first date used in the search window. |
dateWindow.endDate | string | Gives the last date used in the search window. |
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. |
issuer | string | Gives the source issuer code. |
programName | string or null | Gives the loyalty program name when available. |
issuerName | string or null | Gives the issuer 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. |
retrievedAt | string | Gives the time when this source observation was retrieved. |
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. |
premiumEconomy | object | Holds premium economy award details. |
business | object | Holds business award details. |
first | object | Holds first class award details. |
economy.miles, premiumEconomy.miles, business.miles, first.miles | integer or null | Gives award miles or points for each cabin when available. |
economy.tax, premiumEconomy.tax, business.tax, first.tax | number or null | Gives cash taxes or surcharges for each cabin when available. |
economy.seats, premiumEconomy.seats, business.seats, first.seats | integer or null | Gives available award seats for each cabin when supplied. |
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 | Says whether award availability exists for each cabin. |
economy.direct, premiumEconomy.direct, business.direct, first.direct | boolean or null | Says whether each cabin option is nonstop when supplied. |
economy.airlines, premiumEconomy.airlines, business.airlines, first.airlines | object[] | Lists airlines for each cabin option. |
economy.airlines[].code, premiumEconomy.airlines[].code, business.airlines[].code, first.airlines[].code | string or null | Gives one cabin airline code when available. |
economy.airlines[].name, premiumEconomy.airlines[].name, business.airlines[].name, first.airlines[].name | string or null | Gives one cabin airline name when available. |
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. |
relatedOffers | object[] | Lists related loyalty-program offers when returned by the selected source. |
relatedOffers[].program | string or null | Gives the related offer's program code when available. |
relatedOffers[].programName | string or null | Gives the related program name when available. |
relatedOffers[].bookingUrl | string or null | Links to the related offer's booking page when available. |
relatedOffers[].economy, relatedOffers[].premiumEconomy, relatedOffers[].business, relatedOffers[].first | object | Holds the related offer's cabin details. |
relatedOffers[].economy.miles, relatedOffers[].premiumEconomy.miles, relatedOffers[].business.miles, relatedOffers[].first.miles | integer or null | Gives related award miles or points for each cabin. |
relatedOffers[].economy.tax, relatedOffers[].premiumEconomy.tax, relatedOffers[].business.tax, relatedOffers[].first.tax | number or null | Gives related cash taxes or surcharges for each cabin. |
relatedOffers[].economy.seats, relatedOffers[].premiumEconomy.seats, relatedOffers[].business.seats, relatedOffers[].first.seats | integer or null | Gives related available seats for each cabin when supplied. |
relatedOffers[].economy.stops, relatedOffers[].premiumEconomy.stops, relatedOffers[].business.stops, relatedOffers[].first.stops | integer or null | Gives related cabin-specific stop counts when supplied. |
relatedOffers[].economy.airlineCodes, relatedOffers[].premiumEconomy.airlineCodes, relatedOffers[].business.airlineCodes, relatedOffers[].first.airlineCodes | string[] | Lists airline codes for each related cabin option. |
relatedOffers[].economy.airlineCodes[], relatedOffers[].premiumEconomy.airlineCodes[], relatedOffers[].business.airlineCodes[], relatedOffers[].first.airlineCodes[] | string | Gives one airline code for a related cabin option. |
relatedOffers[].economy.available, relatedOffers[].premiumEconomy.available, relatedOffers[].business.available, relatedOffers[].first.available | boolean | Says whether each related cabin has award availability. |
relatedOffers[].economy.direct, relatedOffers[].premiumEconomy.direct, relatedOffers[].business.direct, relatedOffers[].first.direct | boolean or null | Says whether each related cabin option is nonstop when supplied. |
relatedOffers[].economy.airlines, relatedOffers[].premiumEconomy.airlines, relatedOffers[].business.airlines, relatedOffers[].first.airlines | object[] | Lists airlines for each related cabin option. |
relatedOffers[].economy.airlines[].code, relatedOffers[].premiumEconomy.airlines[].code, relatedOffers[].business.airlines[].code, relatedOffers[].first.airlines[].code | string or null | Gives one related cabin airline code when available. |
relatedOffers[].economy.airlines[].name, relatedOffers[].premiumEconomy.airlines[].name, relatedOffers[].business.airlines[].name, relatedOffers[].first.airlines[].name | string or null | Gives one related cabin airline name when available. |
Example award itinerary
This complete row is copied from a successful run of the current beta build. Null and empty values are kept as the source returned them.
{"source": "roame","sourceSearchUrl": "https://roame.travel/search?origin=JFK&destination=LHR&departureDate=2026-09-16&startDate=2026-09-16&endDate=2026-09-16","searchId": "4421c065-a019-4419-a143-e7716eab1bf9","origin": "JFK","destination": "LHR","departureDate": "2026-09-16","dateWindow": {"startDate": "2026-09-16","endDate": "2026-09-16"},"originName": null,"destinationName": null,"coordinates": {"origin": null,"destination": null},"program": "CLUB_PREMIER","issuer": "CLUB_PREMIER","programName": null,"issuerName": null,"airline": null,"alliance": null,"flightId": "1f4c67a7f889953e919dac44cdd6fdec","bookingUrl": null,"lastSeen": "2026-09-05T19:31:00.086520264Z","retrievedAt": "2026-09-05T19:31:14.110Z","departureTime": "16:00:00","arrivalDate": "2026-09-17","arrivalTime": "16:00:00","durationMinutes": 1140,"stops": 1,"distance": null,"connections": ["MEX"],"airlines": [{"code": "AM","name": null},{"code": "AM","name": null}],"economy": {"miles": 300800,"tax": 124.5,"seats": 9,"stops": 1,"airlineCodes": ["AM","AM"],"available": true,"direct": false,"airlines": [{"code": "AM","name": null},{"code": "AM","name": null}]},"premiumEconomy": {"miles": null,"tax": null,"seats": null,"stops": null,"airlineCodes": [],"available": false,"direct": null,"airlines": []},"business": {"miles": null,"tax": null,"seats": null,"stops": null,"airlineCodes": [],"available": false,"direct": null,"airlines": []},"first": {"miles": null,"tax": null,"seats": null,"stops": null,"airlineCodes": [],"available": false,"direct": null,"airlines": []},"segments": [{"segmentNumber": 1,"origin": "JFK","destination": "MEX","flightNumber": "409","airlineCode": "AM","airlineName": null,"aircraft": "789","distance": null,"layoverMinutes": null,"travelTimeMinutes": null,"cabin": "economy","fareClass": "ECON"},{"segmentNumber": 2,"origin": "MEX","destination": "LHR","flightNumber": "7","airlineCode": "AM","airlineName": null,"aircraft": "788","distance": null,"layoverMinutes": null,"travelTimeMinutes": null,"cabin": "economy","fareClass": "ECON"}],"relatedOffers": []}
💳 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.
What if a selected source rejects the search?
If a selected source rejects the search after the run starts, the Actor stops that source, keeps rows already saved, and prints a short warning. The run still finishes with its normal summary and dataset access.
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 the selected sources are exhausted.
Can I search a date window?
Yes. Enter Start date and End date to search a bounded departure-date window. The source decides which dates and awards it can return.
Can I choose Flightpoints or Roame?
Yes. Set source to Flightpoints, Roame, or both public sources.
Can I filter by cabin, miles, taxes, seats, or stops?
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 cabin fields empty?
A source may return availability for one cabin but not another. Empty or null values mean the source did not provide that value for the itinerary.
Are the miles and seats guaranteed?
No. The row is a source observation with retrieval times. 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.
Are related offers always present?
No. Related offers appear only when the selected source returns them.
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
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.
- Ryanair Scraper - Check Ryanair fares, schedules, airport details, and booking links for a route.
- EasyJet Scraper - Check EasyJet fares, flight times, airport details, and booking links for route research.
- Flightpoints.com & Roame.travel Award Flight Scraper - Compare award availability from Flightpoints and Roame in one search.
- Flightpoints Award Flights Scraper - Search Flightpoints award seats with miles, taxes, cabins, and booking links.
Made with ❤️ by Maxime Dupré