Back in 2009 I wrote a quick post on using ITA to search for flights for an American Airlines Challenge by specifying some advanced options. ITA has a number of routing rules (or codes) that can be used to tailor your search requirement. Since I constantly have to remind myself of some of the codes I thought I’d make a quick “cheat sheet” here.
1) Search by month
For those of you new to ITA and searching for mileage runs your first stop should always be the calendar search function. I often do one-way searches across multiple city pairs to get an idea of the best days and routes. When searching one-way there is no need to specify the advanced routing rules on the return. e.g. For a one-way search on any number of American flights:
NYC::AA+
LAX, SNA, SAN, BUR, ONT, SFO, SJC, OAK
AA above is for American and the plus sign (+) indicates one or more flights.
When I typed AA+ in the departure field, the website automatically parsed the routing code out and placed it in the routing code field for me. This is completely optional, I could have typed NYC in the departure field and then AA+ in the field underneath.
This yields a calendar with the cheapest one way fares highlighted in orange.
2) Specify Connecting Cities
You can specify connecting cities in your departure or return field. If you only want to see flights from New York connecting in DFW you would specify:
NYC::AA+ DFW
3) Specifying Options for the Rules
There are two additional modifiers to the plus sign mentioned above. You can specify zero or more flights or cities with the asterisk (*) operator. And zero or exactly one flight or city with the question mark (?). If you would accept either a nonstop JFK-LAX flight or a connection in DFW, then you could write:
NYC::AA+ DFW?
Which would read “One or more American Airlines flights that may have a connection in DFW but it is not required.”
In practice, for mileage running, I rarely use these. But I’d be interested to hear how they may come in handy for you.
4) I don’t want that. Negation.
Another operator is the tilde (~) which works for negation. If I’m trying to get from New York to the west coast but do not want to connect in ORD (since it provides so few extra miles) I can modify the departure field example above to:
NYC::AA+ ~ORD
5) Slash codes
You can further narrow your search by using a slash and specifying certain criteria. For instance you can disallow redeyes, short connections or long duration trips using the minus sign.
LAX:: aa+ / -redeye
NYC
The above excludes redeyes
Below is the result of the non-redeye search. Clicking Time Bars on the right shows the results as a graph so you can visually see the duration of each trip.
Other conditions include:
LAX:: / minconnect 60; maxconnect 120
NYC
This query specified a connection of at least 60 minutes and not more than 120 minutes.
LAX:: / maxdur 420
NYC
The maximum trip duration is seven hours. Sometimes ITA shows overnight connections or other 17+ hour trips that aren’t suitable. This is a quick way to trim those flights from your search results.
Some other routing codes are listed in the table at the bottom of the post.
6) Booking class.
As mentioned in my previous post, since the American Airlines Challenge is based on qualifying points that are tied to fare class, it’s often important to search with the right fare class.
SFO::aa+ /f bc=V
MIA::aa+ /f bc=V
In this case, we specify a fare basis class of V. Which is the cheapest class that still earns 1 elite qualifying point (EQP) per mile.
7) Placeholders
The above airlines and airports can be replaced by the letters F and C respectively. Say you were trying to get to Augusta (AGS) for the Masters golf tournament a few weeks ago. American doens’t fly there. But prices be damned, you want to see if you can get there on American for at least one of the segments. If you simply specify AA+ as I did above, no results will come back as there are no flights into AGS on American.
Instead we can specify either an AA flight and then name another airline (e.g. AA US) or if we don’t care which airline for the second flight we can specify AA then F (for any flight):
NYC::AA F
“C” can be used in the same way, except as a placeholder for any city connection.
8) Cheat Sheet
Here are some important codes in one place. I’ve skipped some non essential ones, since they aren’t used for constructing mileage runs. You can find all the codes on Google’s help page. But why anyone would ever want to specify a nonstop to their destination is beyond me. 😉
 Description |  ITA Code |
---|---|
One or more American Airlines flights | AA+ |
Direct flight on American Airlines or United | AA,UA |
Up to 3 flights, including at least one marketed by American Airlines | F? AA F? |
Exclude United and only show direct flights | ~UA |
Search for results with exactly two flights, and excluding United from the 2nd flight | F ~UA |
Search by alliance | / alliance star-alliance
Similarly you can specify skyteam or oneworld instead |
Any number of connections, each with a minimum connection time of 1 hour, maximum connection time of 2 hours | / minconnect 60; maxconnect 120 |
Connect in Dallas/Fort Worth only | DFW |
Connect in DFW with any additional connections before or after | F? DFW F? |
Exclude DFW as a connection point | ~DFW |
Maximum itinerary duration of 4 hours (specify in minutes) | [/ maxdur 240] |
Exclude overnight and redeye flights, note the semi-colon separating the rules | [/ -overnight;-redeye] |
Specify a particular Airline’s flight number | AA140 |
Any flights except AA140 | ~AA140+ |
A particular first flight (AA3) followed by any number of flights | AA3 F+ |