ITA Matrix Airfare Search Advanced Routing Codes

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:



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:


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:


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:


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

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

This query specified a connection of at least 60 minutes and not more than 120 minutes.

LAX:: / maxdur 420

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):




"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+


Ben L. April 28, 2013 at 06:44 pm

thanks for this; this is super helpfuL!

Rohan April 29, 2013 at 12:13 am

amazing! thanks mike

Thanks, Mike. This year is going to be a challenge to renew my status, though this will certainly come in handy!

Great post. The one thing I don't understand is why you included the routing codes in the departure field as well as the routing field. Is this optional / necessary?

Mike April 29, 2013 at 09:03 am

@James Good question. If you type the entire code in the departure field, the website will parse the routing code into the second field for you. I didn't type it in both places. I find this is a little faster. But it's completely optional.

I'll update the post to reflect this. Thanks!

This cleared up some questions I have had, thanks.

Miriam June 26, 2013 at 06:03 am

Thanks for this post! how do you actually purchase these tickets? do you need a ITA code?

Mike June 26, 2013 at 09:51 am

@Miriam Sometimes you can book these itineraries simply by doing a normal search on the airline's website. Many of the multi-stop routes will appear on the second or third page of results.

However you might need to use the Multi-city search feature to force them to appear. For instance, if you find an itinerary like JFK-IAD-LAX-SEA, simply searching JFK-SEA will often show non-stop or one-stop flights. Instead, use the "Multiple destination" or "Multi City" search to specify three "trips", the first from JFK-IAD, the second from IAD-LAX, third LAX_SEA all on the same date. Then you can select each flight number you found in ITA and at the end, it should be priced according to the ITA result. You can try this same method on an OTA like Orbitz as well, doing a segment by segment multi city search.

Also, on the last page of ITA results, there is a section labeled "How to Buy This Ticket" that shows the fare codes, prices and taxes. You can send these details to a travel agent so they can book the specific ticket. But I've never had to do that.

robert February 23, 2016 at 03:41 pm

nice post

is there a code for:

1) the connection to be min 1 day

2) the connection to any city

what im trying to do is to go from United states to Japan but i want to make a 1-2 days stop on any city on the way to japan.

But i want to know which stop is the cheapest

Really liked this post awesome work :)

Mike February 23, 2016 at 11:32 pm

Hi @Robert, that's a tough one. You can certainly specify

/minconnect 1440

to specify at least a 24 hour connection, but with many fare routing rules restricting connections under that time frame, this will cause some itineraries to be returned with basically two separate fares combined together (making it more expensive) instead of what you want.

You could try a multi city search on google flights with several gateway airports as your connection and choose dates a day or two apart. Google flights is much faster than ITA so you could experiment with a few different connections.

Leave a Comment

Your email address will not be published.