
ReKrute Job Scraper
scrape.ly/store/openrole/rekrute-scraperJobsLead generation
2 monthly users

Search public Google Flights for one-way and round-trip itineraries, with prices, airlines, stops, times, and aircraft.
Search the public Google Flights results page for one-way and round-trip itineraries. One run gives you prices, airlines, departure and arrival times, stops, layovers, aircraft and carbon estimates for a route and date, as structured JSON.
A search is a single $0.019 result, no matter how many itineraries it returns, and it finished in under 10 seconds in our tests.
returnDate and prices become the round-trip fare for each outbound flight.CDG,ORY).| Field | Type | Description |
|---|---|---|
origin | string (required) | Departure airport or metro code. |
destination | string (required) | Arrival airport or metro code. |
outboundDate | string (required) | YYYY-MM-DD. |
returnDate | string | Optional; makes it a round trip. |
maxResults | integer | Itineraries to save. Default 20. |
adults, children, infants | integer | Passengers (infants are lap infants). Party of at most 9. |
travelClass | string | Cabin to search. Default economy. |
maxStops | integer | 0 keeps nonstop flights only. |
maxPrice | integer | Drop itineraries above this price. |
airlines | string | Comma-separated codes such as B6,DL. |
currency, language, country | string | Defaults USD, en, us. |
proxyConfiguration | object | Datacenter by default. |
{
"origin": "LAX",
"destination": "JFK",
"outboundDate": "2026-11-15",
"maxResults": 10,
"currency": "USD",
"language": "en",
"country": "us"
}
One dataset item is one search. It holds all_flights (every itinerary), best_flights, other_flights, price_insights and airports. The Flights view shows one row per itinerary.
| Field | Description |
|---|---|
route, departure_airport, arrival_airport | Route codes. |
airlines, flight_numbers | Carrier and flight numbers. |
price, currency | Fare for the search. |
departure_time, arrival_time | Local times. |
stops, stops_label, layover_airports | Connections. |
duration, duration_minutes | Total travel time. |
travel_class, overnight, often_delayed | Cabin and flags. |
carbon_emissions_g | Carbon estimate in grams. |
Example (trimmed):
{
"search_parameters": {
"trip_type_description": "One way",
"departure_id": "LAX",
"arrival_id": "JFK",
"outbound_date": "2026-11-15",
"currency": "USD"
},
"search_metadata": {
"total_flights_found": 30,
"best_flights_count": 4,
"other_flights_count": 26
},
"all_flights": [
{
"category": "best",
"price": 269,
"currency": "USD",
"airlines": "JetBlue",
"route": "LAX-JFK",
"departure_time": "2026-11-15 23:59",
"arrival_time": "2026-11-16 08:30",
"stops": 0,
"stops_label": "Nonstop",
"duration": "5h 31m",
"travel_class": "Economy",
"flight_numbers": "B6 1224",
"overnight": true,
"carbon_emissions_g": 381000
}
]
}
A search that returns itineraries costs one result event of $0.019. An unknown airport returns no rows and is not charged. Platform usage (compute at $0.30 per GB-hour and datacenter proxy at $1 per GB) is billed separately.
Worked example: a one-route search is a single result, so it costs $0.019 plus a small amount of compute. In our test a non-owner run totaled about $0.022.
Is it legal to scrape Google Flights? The actor reads the public results page only. You are responsible for using the data in line with applicable law and Google's terms.
Do I need a login or my own proxy? No. Proxies are included, and datacenter is enough for this page.
Why does a round trip show only outbound flights? Google's results page lists outbound choices first, with the round-trip price on each row. Choosing a return is a second page.
What if the airport code is wrong? The run finishes with no rows and no charge.
Can I schedule it or use the API? Yes. Schedule a daily run per route to build a price history.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
originstringRequireddefault "LAX"From
Departure airport or metro code. Separate several with commas, for example CDG,ORY.
destinationstringRequireddefault "JFK"To
Arrival airport or metro code. Separate several with commas, for example LHR,LGW.
outboundDatestringOptionalOutbound date
Departure date in YYYY-MM-DD format. Leave empty to search 30 days from today.
returnDatestringOptionalReturn date
Optional return date in YYYY-MM-DD format. When set, the search is a round trip and prices are round-trip fares.
maxResultsintegerOptionaldefault 20Maximum itineraries
How many itineraries to save from the results page. Best matches are kept first. A high value keeps every itinerary on the page.
Infants are priced as lap infants.
adultsintegerOptionaldefault 1Adults
Adult passengers. The whole party can be at most 9 people.
childrenintegerOptionaldefault 0Children
Child passengers.
infantsintegerOptionaldefault 0Infants on lap
Infant passengers traveling on an adult's lap.
currencystringOptionaldefault "USD"Currency
Price currency, for example USD, EUR, or GBP.
languageenumOptionaldefault "en"Language
Language of airport names and labels.
countryenumOptionaldefault "us"Country
Point of sale. This changes which fares Google Flights shows.
Applied to the itineraries on the results page.
maxPriceintegerOptionalMaximum price
Drop itineraries above this price, in the selected currency.
maxStopsintegerOptionalMaximum stops
0 keeps nonstop flights only. 1 allows a single connection. Leave empty for any number of stops.
airlinesstringOptionalAirlines
Comma-separated airline codes to keep, for example UA,AA,DL.
travelClassenumOptionaldefault "economy"Cabin
Cabin to search.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxy is enough for the public Google Flights results page.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| page_number | integer | Page |
| search_timestamp | string | Searched at |
| search_parameters | object | Search |
| search_metadata | object | Summary |
| all_flights | array | Itineraries |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One Google Flights search that returns itineraries | $0.019 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/google-flights-scraper').call({
"origin": "LAX",
"destination": "JFK",
"outboundDate": "2026-11-15",
"returnDate": "2026-11-22",
"maxResults": 20,
"currency": "USD",
"airlines": "B6,DL",
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/google-flights-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/google-flights-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
One-way flight options about a month ahead.
Round-trip fares between JFK and Heathrow.
Only direct flights between two airports.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.