Volaris Flights Scraper: Fares, Cabins & Schedules
Pricing
from $12.48 / 1,000 results
Volaris Flights Scraper: Fares, Cabins & Schedules
Scrape every Volaris flight between two airports by date in MXN. All flights (not just the cheapest), Regular & VClub fares, price, seats left, times, duration, terminals, stops. One row per fare or collapsed. JSON, CSV, Excel.
Pricing
from $12.48 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 hours ago
Last modified
Categories
Share
Volaris Flights Scraper: Fares, Cabins & Schedules
Here is one real result, with every field the actor returns:
{"origin": "MEX","originName": "MEX","destination": "CUN","destinationName": "CUN","departureDateTime": "2026-09-16T14:50:00","arrivalDateTime": "2026-09-16T18:08:00","departureDateTimeUtc": "2026-09-16T20:50:00Z","arrivalDateTimeUtc": "2026-09-16T23:08:00Z","departureTerminal": "1","arrivalTerminal": "2","flightNumber": "Y4 102","currency": "MXN","duration": "2h 18m","durationMinutes": 138,"stops": 0,"operatedBy": "Volaris","cabin": "Economy","segments": [{"flightNumber": "Y4 102","origin": "MEX","destination": "CUN","departureDateTime": "2026-09-16T14:50:00","arrivalDateTime": "2026-09-16T18:08:00","cabin": "Economy"}],"flightKey": "WTR_IDEwMn4gfn5NRVh_MDkvMTYvMjAyNiAxNDo1MH5DVU5_MDkvMTYvMjAyNiAxODowOH5_","direction": "outbound","source": "availability","deepLink": "https://www.volaris.com/","observedAt": "2026-08-16T03:36:05.725Z","error": null,"fareType": "Regular","price": 1358,"publishedPrice": 1039,"revenueFare": 1038,"seatsLeft": 8,"fareClass": "L","fareBasisCode": "LLSS2","fareKey": "MH5Mfn5ZNH5MTFNTMn4wMDExfn4wfjE4fn5YITA-","fareOptions": null,"isLowestFareOfDay": true}
The most complete Volaris flight scraper available. It returns every flight on a route each day (not just the cheapest), prices each in both the Regular and VClub fare tiers with live seats left, and gives you one row per fare or a collapsed one row per flight so you can compare exactly the fares you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor queries Volaris priced availability for a route and date range, then writes one normalized record per fare to the run's dataset. For every requested day it returns every flight on the route, both nonstop and connecting, with local and UTC departure and arrival times, terminals, duration, stops, seats left, and the total price in your chosen currency.
By default each flight is priced in two fare tiers, so you get one row per fare: Regular (the public walk-up fare) and VClub (the members' discount fare). Set collapseFares to get one row per flight instead, with every fare nested in a fareOptions array and price set to the lowest. Turn on includeReturn to scan the return leg in the same run, tagged direction: "inbound".
Prices for Mexican routes are returned in MXN by default. Times are the airline's scheduled local times, with UTC equivalents provided alongside.
Quickstart
Open the actor, paste this into the input, and press Run. It returns every Volaris flight from Mexico City to Cancun about a month out, priced in Regular and VClub.
{"origin": "MEX","destination": "CUN","departureDateFrom": "2026-09-15","departureDateTo": "2026-09-16","fareTypes": ["Regular", "VClub"],"maxFlights": 100}
Leave the dates empty to default to a single day about 30 days out. Only origin and destination are required.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
origin | string | yes | (none) | 3-letter IATA code of the departure airport, for example MEX (Mexico City). |
destination | string | yes | (none) | 3-letter IATA code of the arrival airport, for example CUN (Cancun). |
departureDateFrom | string | no | ~30 days out | First outbound date to scan (YYYY-MM-DD). Defaults to about 30 days out if empty or in the past. |
departureDateTo | string | no | = from | Last outbound date to scan, inclusive (YYYY-MM-DD). Defaults to the from date for a single day. |
fareTypes | array | no | ["Regular","VClub"] | Which Volaris fare tiers to price. Regular is the public fare; VClub is the members' discount fare. Each tier is its own row unless collapseFares is on. |
adults | integer | no | 1 | Number of adult passengers (1-9). Affects fare availability. |
children | integer | no | 0 | Number of child passengers (0-9). |
infants | integer | no | 0 | Number of lap infants (0-9). |
currency | string | no | MXN | Currency code for prices. Volaris prices Mexican routes in MXN. |
collapseFares | boolean | no | false | OFF: every fare tier is its own row. ON: one row per flight with all fares nested in fareOptions and price = lowest. |
includeReturn | boolean | no | false | Also scan the return leg (destination to origin), tagged direction: "inbound". |
returnDateFrom | string | no | (empty) | First return date to scan (YYYY-MM-DD), used only when includeReturn is on. |
returnDateTo | string | no | = return from | Last return date to scan, inclusive, used only when includeReturn is on. |
maxFlights | integer | no | 100 | Maximum fare rows to return (billed results). Free Apify plans are capped at 10 per run. |
proxyConfiguration | object | no | Residential MX | Apify proxy configuration. Residential Mexico is used by default for reliable access. |
Output reference
One dataset item per fare (or per flight when collapseFares is on). Types: string, integer, number, object, array, or null when a source value is absent.
| Field | Type | Description |
|---|---|---|
origin | string | Origin airport IATA code. |
originName | string | Origin station name or code as returned by the source. |
destination | string | Destination airport IATA code. |
destinationName | string | Destination station name or code as returned by the source. |
departureDateTime | string | Scheduled local departure time (ISO 8601, no offset). |
arrivalDateTime | string | Scheduled local arrival time (ISO 8601, no offset). |
departureDateTimeUtc | string | Departure time in UTC. |
arrivalDateTimeUtc | string | Arrival time in UTC. |
departureTerminal | string | Departure terminal, or null if not published. |
arrivalTerminal | string | Arrival terminal, or null if not published. |
flightNumber | string | Flight number(s), for example Y4 102. Connections join segments with /. |
fareType | string | Fare tier: Regular or VClub. null in collapsed mode. |
cabin | string | Cabin of service, for example Economy. |
price | number | Total price including taxes and fees, in currency. |
publishedPrice | number | Published fare component before taxes and fees. |
revenueFare | number | Base revenue fare component. |
currency | string | Currency code of the prices, for example MXN. |
seatsLeft | integer | Seats remaining in this fare, as reported by the source. |
duration | string | Total journey duration, for example 2h 18m. |
durationMinutes | integer | Total journey duration in minutes. |
stops | integer | Number of stops (0 = nonstop). |
operatedBy | string | Operating carrier. Always Volaris. |
fareClass | string | Class of service letter, for example L. |
fareBasisCode | string | Fare basis code, for example LLSS2. |
fareKey | string | Opaque fare availability key for the priced fare. |
fareOptions | array | In collapsed mode, all fares of the flight; otherwise null. |
segments | array | Per-segment flight number, origin, destination, times, and cabin. |
flightKey | string | Opaque journey key identifying the flight. |
direction | string | outbound or inbound. |
isLowestFareOfDay | boolean | true when this fare is the lowest across all flights scanned that day. |
source | string | Data source tier. Always availability (priced availability). |
deepLink | string | Link to the Volaris booking site. |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed day, a single item with a populated error field is written instead. |
Example output record
Real record from a live run (input {"origin":"MEX","destination":"CUN","includeReturn":true,"fareTypes":["Regular","VClub"]}), collapsed-fares mode showing both tiers nested:
{"origin": "MEX","destination": "CUN","departureDateTime": "2026-09-15T20:45:00","arrivalDateTime": "2026-09-15T23:58:00","flightNumber": "Y4 110","fareType": null,"cabin": "Economy","price": 1257,"currency": "MXN","stops": 0,"duration": "3h 13m","operatedBy": "Volaris","direction": "outbound","fareOptions": [{"fareType": "Regular","cabin": "Economy","price": 1257,"publishedPrice": 982,"revenueFare": 981,"currency": "MXN","seatsLeft": 10,"fareClass": "A","fareBasisCode": "ALSS2"},{"fareType": "VClub","cabin": "Economy","price": 1258,"publishedPrice": 983,"currency": "MXN","seatsLeft": 10,"fareClass": "A","fareBasisCode": "ALVC2"}],"isLowestFareOfDay": true,"source": "availability","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~volaris-flights-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"origin":"MEX","destination":"CUN","departureDateFrom":"2026-09-15","departureDateTo":"2026-09-16"}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~volaris-flights-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"origin":"TIJ","destination":"GDL","includeReturn":true,"returnDateFrom":"2026-09-22","returnDateTo":"2026-09-22"}'
Apify CLI:
apify call scrapers_lat/volaris-flights-scraper \--input '{"origin":"MEX","destination":"CUN","collapseFares":true}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per record returned (
resultevent). See the pricing tab for the current per-result price. - No charge on failure. If a day errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 records per run. Upgrade for a higher
maxFlights. - One row per fare. With the default two fare tiers you get up to two rows per flight. Use
collapseFaresfor one row per flight to reduce the billed row count.
FAQ and troubleshooting
A run returned 0 records. Why? Volaris may not operate that route on the requested date, or the flights are sold out. Try a different date, a nearby route, or widen the date range. Zero-result runs are not charged.
What is the difference between Regular and VClub fares?
Regular is the public walk-up fare anyone can buy. VClub is the discounted fare for Volaris V.Club members. Both are returned so you can compare the savings; the actual VClub price requires an active membership at booking.
Why are there two rows for the same flight?
By default each fare tier is its own row (fareType differentiates them). Set collapseFares to true to get one row per flight with both tiers nested in fareOptions.
Does it cover connecting flights?
Yes. Itineraries with one stop are included, with stops and a segments array describing each leg. flightNumber joins the segment numbers with /.
Can I scan a round trip in one run?
Yes. Set includeReturn to true and provide returnDateFrom and returnDateTo. Return-leg rows are tagged direction: "inbound".
Why is a terminal null?
Volaris did not publish a terminal for that leg. Missing source values are returned as null, never invented.
Is this an official Volaris tool? No. This actor is independent and has no affiliation with Volaris. It reads only data that is publicly available through the Volaris booking website. Use it in accordance with the Volaris terms of service.
Related scrapers
- Frontier Flights Scraper: every Frontier Airlines flight, fare family, and cabin by route and date.
- Ryanair Flights Scraper: every Ryanair flight and fare across a date range.
- Wizz Air Flights Scraper: every Wizz Air flight and fare by route and date.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with Volaris. Accesses only publicly available Volaris booking data. Use in accordance with the Volaris terms of service.
