Flightpoints & Roame Award Flights Scraper avatar

Flightpoints & Roame Award Flights Scraper

Pricing

$0.01 / 1,000 award flights

Go to Apify Store
Flightpoints & Roame Award Flights Scraper

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é

Maxime Dupré

Maintained by Community

Actor stats

1

Bookmarked

27

Total users

8

Monthly active users

10 days ago

Last modified

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.

📦 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.

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

FieldTypeWhat it does
sourcechoiceSearches Flightpoints, Roame, or both public sources.
originstringSets the three-letter IATA code for the departure airport.
destinationstringSets the three-letter IATA code for the arrival airport.
departureDatedate stringSets the departure date for a one-day search.
startDatedate stringSets the optional first date in a bounded search window.
endDatedate stringSets the optional last date in a bounded search window.
cabinchoiceKeeps itineraries with availability in economy, premium economy, business, or first.
maxMilesintegerKeeps itineraries whose matching cabin award price is at or below this number of miles.
maxCashTaxesnumberKeeps itineraries whose cash taxes or surcharges are at or below this amount.
minSeatsintegerKeeps itineraries with at least this many available award seats.
nonstopbooleanKeeps only itineraries with no connections.
sortBychoicePrefers itineraries with availability in the selected cabin before saving rows.
issuersstring[]Keeps selected loyalty program names. Leave empty to include all programs.
maxResultsintegerStops 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

FieldTypeWhat it does
sourcestringNames the public source that supplied the itinerary.
sourceSearchUrlstring or nullLinks to the source search page when available.
searchIdstringIdentifies the source search that produced the row.
originstringGives the three-letter IATA origin code.
destinationstringGives the three-letter IATA destination code.
departureDatestringGives the itinerary departure date in YYYY-MM-DD form.
dateWindowobjectHolds the date range used for the search.
dateWindow.startDatestringGives the first date used in the search window.
dateWindow.endDatestringGives the last date used in the search window.
originNamestring or nullGives the origin airport name when available.
destinationNamestring or nullGives the destination airport name when available.
coordinatesobjectHolds origin and destination coordinates when available.
coordinates.originobject or nullHolds origin airport coordinates when available.
coordinates.origin.latitudenumberGives origin latitude in decimal degrees.
coordinates.origin.longitudenumberGives origin longitude in decimal degrees.
coordinates.destinationobject or nullHolds destination airport coordinates when available.
coordinates.destination.latitudenumberGives destination latitude in decimal degrees.
coordinates.destination.longitudenumberGives destination longitude in decimal degrees.
programstringGives the loyalty program code.
issuerstringGives the source issuer code.
programNamestring or nullGives the loyalty program name when available.
issuerNamestring or nullGives the issuer name when available.
flightIdstringGives the source itinerary identifier.
bookingUrlstring or nullLinks to a program or booking page when available.
lastSeenstring or nullGives the source time when the award was last seen, when supplied.
retrievedAtstringGives the time when this source observation was retrieved.
airlinestring or nullGives the main airline name when available.
alliancestring or nullGives the airline alliance when available.
departureTimestring or nullGives the itinerary departure time when available.
arrivalDatestring or nullGives the arrival date when available.
arrivalTimestring or nullGives the arrival time when available.
durationMinutesinteger or nullGives total itinerary duration in minutes when available.
stopsinteger or nullGives the number of itinerary stops when available.
distanceinteger or nullGives route distance in miles when available.
connectionsstring[]Lists connection airport codes.
connections[]stringGives one connection airport IATA code.
airlinesobject[]Lists airlines associated with the itinerary.
airlines[].codestring or nullGives an airline code when available.
airlines[].namestring or nullGives an airline name when available.
economyobjectHolds economy award details.
premiumEconomyobjectHolds premium economy award details.
businessobjectHolds business award details.
firstobjectHolds first class award details.
economy.miles, premiumEconomy.miles, business.miles, first.milesinteger or nullGives award miles or points for each cabin when available.
economy.tax, premiumEconomy.tax, business.tax, first.taxnumber or nullGives cash taxes or surcharges for each cabin when available.
economy.seats, premiumEconomy.seats, business.seats, first.seatsinteger or nullGives available award seats for each cabin when supplied.
economy.stops, premiumEconomy.stops, business.stops, first.stopsinteger or nullGives cabin-specific stop counts when supplied.
economy.airlineCodes, premiumEconomy.airlineCodes, business.airlineCodes, first.airlineCodesstring[]Lists airline codes for each cabin option.
economy.airlineCodes[], premiumEconomy.airlineCodes[], business.airlineCodes[], first.airlineCodes[]stringGives one airline code for a cabin option.
economy.available, premiumEconomy.available, business.available, first.availablebooleanSays whether award availability exists for each cabin.
economy.direct, premiumEconomy.direct, business.direct, first.directboolean or nullSays whether each cabin option is nonstop when supplied.
economy.airlines, premiumEconomy.airlines, business.airlines, first.airlinesobject[]Lists airlines for each cabin option.
economy.airlines[].code, premiumEconomy.airlines[].code, business.airlines[].code, first.airlines[].codestring or nullGives one cabin airline code when available.
economy.airlines[].name, premiumEconomy.airlines[].name, business.airlines[].name, first.airlines[].namestring or nullGives one cabin airline name when available.
segmentsobject[]Lists the flight legs in the itinerary.
segments[].segmentNumberintegerGives the segment order.
segments[].originstring or nullGives the segment departure airport code.
segments[].destinationstring or nullGives the segment arrival airport code.
segments[].flightNumberstring or nullGives the flight number when available.
segments[].airlineCodestring or nullGives the operating airline code when available.
segments[].airlineNamestring or nullGives the operating airline name when available.
segments[].cabinstring or nullGives the segment cabin when available.
segments[].fareClassstring or nullGives the fare class when available.
segments[].aircraftstring or nullGives the aircraft type when available.
segments[].distanceinteger or nullGives the segment distance in miles when available.
segments[].layoverMinutesinteger or nullGives the layover before the next segment when available.
segments[].travelTimeMinutesinteger or nullGives segment travel time in minutes when available.
relatedOffersobject[]Lists related loyalty-program offers when returned by the selected source.
relatedOffers[].programstring or nullGives the related offer's program code when available.
relatedOffers[].programNamestring or nullGives the related program name when available.
relatedOffers[].bookingUrlstring or nullLinks to the related offer's booking page when available.
relatedOffers[].economy, relatedOffers[].premiumEconomy, relatedOffers[].business, relatedOffers[].firstobjectHolds the related offer's cabin details.
relatedOffers[].economy.miles, relatedOffers[].premiumEconomy.miles, relatedOffers[].business.miles, relatedOffers[].first.milesinteger or nullGives related award miles or points for each cabin.
relatedOffers[].economy.tax, relatedOffers[].premiumEconomy.tax, relatedOffers[].business.tax, relatedOffers[].first.taxnumber or nullGives related cash taxes or surcharges for each cabin.
relatedOffers[].economy.seats, relatedOffers[].premiumEconomy.seats, relatedOffers[].business.seats, relatedOffers[].first.seatsinteger or nullGives related available seats for each cabin when supplied.
relatedOffers[].economy.stops, relatedOffers[].premiumEconomy.stops, relatedOffers[].business.stops, relatedOffers[].first.stopsinteger or nullGives related cabin-specific stop counts when supplied.
relatedOffers[].economy.airlineCodes, relatedOffers[].premiumEconomy.airlineCodes, relatedOffers[].business.airlineCodes, relatedOffers[].first.airlineCodesstring[]Lists airline codes for each related cabin option.
relatedOffers[].economy.airlineCodes[], relatedOffers[].premiumEconomy.airlineCodes[], relatedOffers[].business.airlineCodes[], relatedOffers[].first.airlineCodes[]stringGives one airline code for a related cabin option.
relatedOffers[].economy.available, relatedOffers[].premiumEconomy.available, relatedOffers[].business.available, relatedOffers[].first.availablebooleanSays whether each related cabin has award availability.
relatedOffers[].economy.direct, relatedOffers[].premiumEconomy.direct, relatedOffers[].business.direct, relatedOffers[].first.directboolean or nullSays whether each related cabin option is nonstop when supplied.
relatedOffers[].economy.airlines, relatedOffers[].premiumEconomy.airlines, relatedOffers[].business.airlines, relatedOffers[].first.airlinesobject[]Lists airlines for each related cabin option.
relatedOffers[].economy.airlines[].code, relatedOffers[].premiumEconomy.airlines[].code, relatedOffers[].business.airlines[].code, relatedOffers[].first.airlines[].codestring or nullGives one related cabin airline code when available.
relatedOffers[].economy.airlines[].name, relatedOffers[].premiumEconomy.airlines[].name, relatedOffers[].business.airlines[].name, relatedOffers[].first.airlines[].namestring or nullGives 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.

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.

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 🫡

Made with ❤️ by Maxime Dupré