Southwest Checkin
Automatically check in to Southwest flights using this easy-to-use gem. It'll also email you the results so you know ASAP whether a check in was successful. Seconds count when you're fighting for that window or aisle seat!
⚠️ February 2023 Update ⚠️
It appears southwest-headers using the latest versions of Chrome (110) and undetected-chromedriver (3.4.6) produces an invalid header file. Read this thread for a workaround.
Requirements
- A *nix-based server that will be on when you need to check in
- Ruby 2.3 or higher
- The
at
command
Tested and working on an Ubuntu 20.04 server (hosted by DigitalOcean).
Installation
Get Southwest Headers
The Southwest API now requires some randomly generated headers to check in. Because these headers change at a set interval, they need to be constantly refreshed for any check-in script (like this one) to work. To get these headers, please follow the instructions here:
https://github.com/byalextran/southwest-headers
Once a cron job has been scheduled, do these steps:
Step 1: Create the file .autoluv.env
in your user's home directory.
nano ~/.autoluv.env
Step 2: Copy/paste the following into the text editor.
LUV_HEADERS_FILE = /PATH/TO/southwest_headers.json
Step 3: Update the path (and filename if changed from the default) to the correct path of the headers file.
Step 4: Hit Ctrl+O
to save the file and then Ctrl+X
to exit the text editor.
Install Gem
gem install autoluv
Usage
Schedule a Check-In
autoluv schedule ABCDEF John Doe
Both departing and returning flights (if applicable) will be scheduled for all passengers tied to the confirmation number. After scheduling, there's no need to keep the terminal window open or active. The check in will happen behind the scenes at the appropriate time.
Note: If a first or last name includes a space, wrap it in double quotes (e.g. "Mary Kate")
Schedule a Check-In With Email Notification
Before using this command, follow the instructions below to configure the required settings.
autoluv schedule ABCDEF John Doe john.doe@email.com optional@bcc.com
The second email address is optional and will be BCCed the results.
Check In Immediately
autoluv checkin ABCDEF John Doe
Configure Email Notifications
This is optional, however, highly recommended. Especially if a scheduled check-in fails, you'll get notified and can manually check in. Every second counts!
Boarding positions are shown for each passenger when a check-in succeeds.
Step 1: Open/create the file .autoluv.env
in your user's home directory.
nano ~/.autoluv.env
Step 2: Copy/paste the following into the text editor.
LUV_FROM_EMAIL = from@email.com
LUV_USER_NAME = from@email.com
LUV_PASSWORD = supersecurepassword
LUV_SMTP_SERVER = smtp.email.com
LUV_PORT = 587
Step 3: Replace the values with the appropriate SMTP settings for your email provider. LUV_FROM_EMAIL
should be the email address associated with LUV_USER_NAME
.
If your email account has two-factor authentication enabled, be sure to use an app-specific password and not your account password.
Step 4: Hit Ctrl+O
to save the file and then Ctrl+X
to exit the text editor.
Test Email Notifications
To verify your SMTP settings, schedule a check-in with invalid information and a valid email address.
autoluv schedule AAAAAA Fake Name valid@email.com
If everything is set up correctly, you'll get an email notifying you of an unsuccessful check-in.
Get Text Instead of Email Notifications
Use this Zap to get a custom Zapier email address that forwards emails as text messages. It's handy for people like me who don't have email notifications enabled on their phone or computer and want check-in results ASAP.
Manage Check-Ins
autoluv
uses the at
command behind the scenes to check in at a specific time. Use the related atq
and atrm
commands to manage check-ins.
View Scheduled Check-Ins
Make note of the first column's number.
atq
11 Tue Sep 22 08:05:00 2020 a user
12 Mon Sep 28 15:45:00 2020 a user
7 Wed Sep 23 11:40:00 2020 a user
Cancel a Check-In
atrm 11
View Check-In Details
The last line in the output will show you the confirmation number and name.
at -c 11
View All Scheduled Check-In Details
Display the list of all scheduled confirmation numbers and names.
atq | awk '{ print "at -c " $1 }' | bash | grep autoluv
Update Gem
gem update autoluv --conservative
Contributing
Bug reports and pull requests are welcome.
License
The gem is available as open source under the terms of the MIT License.