Southwest Low Fare Calendar Scraper
Pricing
Pay per event
Southwest Low Fare Calendar Scraper
✈️ Extract exact Southwest Low Fare Calendar prices by route and date, with WGA, Plus, Anytime, Business Select, taxes, dollar or points totals, and lowest-fare summaries.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Extract exact Southwest Airlines Low Fare Calendar prices by route and date.
This Apify Actor opens Southwest's public calendar, captures its structured fare response, and saves one clean record per travel date. Each row includes Wanna Get Away, Wanna Get Away Plus, Anytime, and Business Select prices—without continuing into booking.
Use the results in fare alerts, travel-deal workflows, spreadsheets, dashboards, repricing checks, or scheduled monitors.
What does Southwest Low Fare Calendar Scraper do?
Southwest Low Fare Calendar Scraper turns a monthly fare calendar into export-ready data.
For each requested route, it returns:
- ✈️ origin and destination airport codes
- 📅 one record per calendar date
- 💵 exact base fare, total fare, and taxes/fees
- 🎟️ WGA, Plus, Anytime, and Business Select buckets
- 🪙 dollar or Rapid Rewards points fares
- 🏷️ the lowest available total and fare bucket
- 🌎 domestic or international route status
- 🔗 the public source URL and retrieval timestamp
The Actor uses an anonymous browser session to let Southwest generate the required client headers, then reads the exact JSON response. It does not estimate prices from rounded display text.
Who is this Southwest fare scraper for?
Fare-alert and travel-deal products
Monitor route calendars repeatedly and notify subscribers when a lower travel date appears.
Travelers checking repricing opportunities
Compare current calendar prices with a booked fare to identify possible Southwest flight-credit opportunities. Always verify eligibility and final pricing directly with Southwest.
Travel agencies
Export flexible-date fare options for clients before building an itinerary.
Corporate travel analysts
Track route-level price movements and identify lower-cost travel windows.
Data and automation teams
Feed structured fare data into BigQuery, Snowflake, Google Sheets, Airtable, or internal travel dashboards.
Why use this actor?
- Southwest-specific inventory: Southwest fares are not consistently represented in third-party flight aggregators.
- Exact decimal strings: values such as
97.40remain exact instead of becoming floating-point approximations. - All major fare buckets: compare product tiers, not only the cheapest visible headline price.
- Points support: retrieve Rapid Rewards points totals and their separate USD taxes/fees.
- Multi-route batches: check up to 20 routes in one run.
- Repeatable automation: schedule runs and connect outputs without maintaining a browser scraper.
- Safe scope: the Actor stops at fare-calendar extraction and never attempts booking.
What Southwest fare data can you extract?
| Field group | Example | Meaning |
|---|---|---|
| Route | LAS → LAX | Southwest airport pair |
| Date | 2026-08-18 | Calendar travel date |
| Currency | USD or POINTS | Unit used for fare totals |
| Taxes currency | USD | Especially important for points fares |
| WGA | base, total, taxes | Wanna Get Away bucket |
| PLU | base, total, taxes | Wanna Get Away Plus bucket |
| ANY | base, total, taxes | Anytime bucket |
| BUS | base, total, taxes | Business Select bucket |
| Lowest fare | 97.40, WGA | Lowest available total and bucket |
| Availability | 4 | Number of populated fare buckets |
| Source metadata | URL, timestamp | Traceability for every record |
All fare amounts are strings. This preserves the exact formatting returned by Southwest.
How to scrape Southwest Low Fare Calendar prices
- Open the Actor input page.
- Add one or more origin/destination airport-code pairs.
- Enter a departure date using
YYYY-MM-DDortoday+N. - Choose Dollars or Points.
- Set the passenger count and date limit.
- Click Start.
- Open the Dataset tab to preview, filter, or export results.
A one-route, 31-date run is a good first test.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
routes | array | Yes | LAS→LAX | One to 20 { origin, destination } IATA pairs |
departureDate | string | Yes | today+30 | Date or relative date selecting the calendar month |
fareMode | string | No | DOLLARS | DOLLARS or POINTS |
currencyCode | string | No | USD | Three-letter currency for dollar fares |
adultPassengersCount | integer | No | 1 | Adult passengers, from 1 to 8 |
maxDatesPerRoute | integer | No | 31 | Maximum records emitted per route |
proxyConfiguration | object | No | direct | Optional Apify Proxy settings |
Example input:
{"routes": [{ "origin": "LAS", "destination": "LAX" },{ "origin": "DAL", "destination": "HOU" }],"departureDate": "today+45","fareMode": "DOLLARS","currencyCode": "USD","adultPassengersCount": 1,"maxDatesPerRoute": 31,"proxyConfiguration": { "useApifyProxy": false }}
Output example
{"origin": "LAS","destination": "LAX","date": "2026-08-01","currencyCode": "USD","taxesCurrencyCode": "USD","international": false,"fareMode": "DOLLARS","adultPassengersCount": 1,"wgaBaseFare": "133.95","wgaTotalFare": "159.40","wgaTaxesAndFees": "25.45","pluBaseFare": "166.51","pluTotalFare": "194.40","pluTaxesAndFees": "27.89","anyBaseFare": "231.63","anyTotalFare": "264.40","anyTaxesAndFees": "32.77","busBaseFare": "268.84","busTotalFare": "304.40","busTaxesAndFees": "35.56","lowestTotalFare": "159.40","lowestFareBucket": "WGA","availableFareBuckets": 4,"sourceUrl": "https://www.southwest.com/air/low-fare-calendar/...","retrievedAt": "2026-07-17T18:00:55.252Z"}
Unavailable fare buckets are returned as null. A points result uses currencyCode: "POINTS"; its taxes may still use taxesCurrencyCode: "USD".
Understanding Southwest fare bucket codes
The dataset uses compact stable codes:
WGA— Wanna Get AwayPLU— Wanna Get Away PlusANY— AnytimeBUS— Business Select
The Actor normalizes the corresponding points-mode response codes into the same four columns, so dollar and points datasets are easy to compare.
How much does it cost to scrape Southwest fares?
This Actor uses pay-per-event pricing:
- a small charge starts each run;
- each route/date record is charged as one result;
- subscription tiers receive automatic volume discounts.
The final price is visible in Apify Console before each run. A typical one-route monthly calendar returns about 28–31 result records. Browser runtime and proxy usage are included in the platform run cost shown by Apify.
To control spend:
- begin with one route;
- set
maxDatesPerRouteto 5 for a small test; - group routes into one scheduled run rather than launching many single-route runs;
- enable a proxy only when a direct session is blocked.
Fare monitoring workflow
For repeated price checks:
- Create an Apify Task with your routes.
- Schedule it daily or weekly.
- Export each dataset to your preferred storage.
- Compare
lowestTotalFarewith the prior run. - Trigger an alert when the value decreases.
Use origin, destination, date, and fareMode as a stable comparison key.
Tips for reliable results
- Use valid Southwest-served three-letter airport codes.
- Choose a future departure month with published inventory.
- Keep route batches conservative; the Actor intentionally uses low browser concurrency.
- Use a US proxy country when a direct session is repeatedly blocked.
- Compare like with like: dollar totals and points totals have different units.
- Treat fare data as a snapshot; availability and prices can change at any time.
- Confirm final fare rules, availability, and checkout totals directly on Southwest.
Integrations
Google Sheets fare tracker
Schedule the Actor, connect the dataset through Make or Zapier, and append each run to a sheet. Use a formula to highlight lower lowestTotalFare values.
Slack or email price alerts
Send a webhook when a route/date price falls below your threshold.
BigQuery or Snowflake history
Store every snapshot for route-level trend analysis and travel-budget forecasting.
Airtable travel-deal queue
Create one record per route/date and let editors review the strongest deals before publication.
Webhook-driven repricing checks
Trigger the Actor from an internal itinerary system, then compare current calendar values with recorded booking prices.
Run via the Apify API with JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/southwest-low-fare-calendar-scraper').call({routes: [{ origin: 'LAS', destination: 'LAX' }],departureDate: 'today+30',fareMode: 'DOLLARS',currencyCode: 'USD',adultPassengersCount: 1,maxDatesPerRoute: 31});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Run via the Apify API with Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ['APIFY_TOKEN'])run = client.actor('automation-lab/southwest-low-fare-calendar-scraper').call(run_input={'routes': [{'origin': 'DAL', 'destination': 'HOU'}],'departureDate': 'today+45','fareMode': 'POINTS','adultPassengersCount': 1,'maxDatesPerRoute': 31,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
Run via cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~southwest-low-fare-calendar-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"routes": [{"origin":"BWI","destination":"MCO"}],"departureDate":"today+60","fareMode":"DOLLARS","currencyCode":"USD","adultPassengersCount":1,"maxDatesPerRoute":31}'
Poll the returned run ID, then download items from its default dataset.
Use with Apify MCP and AI agents
Connect this Actor to Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/southwest-low-fare-calendar-scraper"
For Claude Desktop, Cursor, or VS Code, add this HTTP server to your MCP configuration:
{"mcpServers": {"apify": {"type": "http","url": "https://mcp.apify.com?tools=automation-lab/southwest-low-fare-calendar-scraper"}}}
Example prompts:
- “Find the lowest Southwest LAS to LAX date next month.”
- “Compare dollar fares for DAL to HOU across the returned calendar.”
- “Extract points fares for BWI to MCO and show the cheapest five dates.”
- “Build a daily route-price monitor using these Southwest records.”
Proxy configuration
Direct browser sessions are the default and cheapest route. Southwest uses anti-automation controls, so a session can occasionally be blocked.
If that happens, enable Apify Proxy in the input. A US residential session is the strongest fallback, but it costs more bandwidth than direct access or datacenter proxy traffic.
The Actor reuses one browser conservatively and performs bounded fresh-context retries. It does not retry indefinitely.
Error handling
The Actor fails closed when:
- a route does not contain valid IATA codes;
- origin and destination are identical;
- the date format is invalid;
- the requested fare mode is unsupported;
- the Southwest API response is blocked or incomplete;
- no calendar records can be extracted.
A total extraction failure returns a failed run, not a misleading successful empty dataset.
Is it legal to scrape Southwest fare data?
This Actor accesses publicly visible fare-calendar data without logging in. Web scraping can be regulated by website terms, database rights, privacy law, contract law, and your intended use.
You are responsible for:
- reviewing Southwest's current terms and robots policies;
- using reasonable request volumes;
- avoiding resale or presentation that implies Southwest endorsement;
- complying with laws that apply to your location and use case;
- verifying fares before making purchasing or customer-facing decisions.
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Southwest Airlines Co.
FAQ
Does this Actor book Southwest flights?
No. It only extracts the public Low Fare Calendar and stops before booking.
Does it return every flight departure time?
No. The product returns daily calendar fare buckets, not individual flight itineraries or schedules.
Can it return Rapid Rewards points fares?
Yes. Set fareMode to POINTS. Points totals use currencyCode: "POINTS", while taxes and fees may remain denominated in USD.
Why did a route return no records?
Check that both airport codes are valid Southwest destinations and that the selected future month has published inventory. If the run log reports a block, enable a US proxy session.
Why did the Actor fail while the website opens for me?
Southwest applies session-level anti-automation controls. Retry with Apify Proxy enabled and keep the route batch small. A failed extraction is intentionally reported as failed rather than silently returning zero rows.
Are displayed prices guaranteed?
No. Fares and availability change. Always confirm the latest total and fare rules directly with Southwest before purchase.
Can I schedule this as a fare monitor?
Yes. Save the input as an Apify Task, add a schedule, and compare successive datasets by route and date.
Related travel scrapers
- Google Flights Scraper — individual flight options across airlines.
- Ryanair Flight Price Scraper — Ryanair route/date fare records.
- Booking Scraper — accommodation search results and prices.
- Booking Reviews Scraper — hotel review datasets.
Data quality and support
The Actor reads structured Southwest response fields and keeps source URLs and timestamps for traceability. Selectors and response shapes are monitored through build and QA checks, but source websites can change without notice.
If you find a reproducible issue, include:
- the origin and destination codes;
- departure date and fare mode;
- run URL;
- whether proxy use was enabled;
- the expected and actual result.
That context makes investigation faster while avoiding the disclosure of private travel or account information.