Advanced Routing Language in ITA

This week I’m discussing how to use ITA Software’s Fare Matrix. If you’ve never used it before, today’s post will not make any sense. I suggest you read Part 1 first.

Last time I introduced how to use ITA for a basic round trip flight from Seattle to Washington, DC. Among other things I showed you how to use time bars to display flight options and how to learn the fare breakdown for your final itinerary.

Although SEA-IAD seems like a very simple trip with lots of nonstop and one-stop options in each direction, there are ways to limit your search results to force certain airlines, certain flight numbers, and certain connections. ITA shares some of this information on its website, but I find it awfully brief. There are also other “secret” commands.

Underneath the fields for departure and destination there is a link that says “Advanced routing codes.” Clicking on this will open one additional field under each airport. You can type your advanced routing codes here, or you can place them immediately after the airport code, separated by two colons. To walk you through some examples, instead of “SEA” alone, use this command to require that the flight be marketed by United.

SEA :: UA

Because “UA” is listed once, ITA will look for a single nonstop flight. Repeat multiple times to specify the number of flights (e.g., “SEA :: UA UA UA” for three flights) or use the plus symbol to indicate any number of flights all marketed by the same carrier (e.g., “SEA :: UA+”).

You can search for multiple airports and airlines at the same time by separating them with a comma. The Washington, DC, area has three major airports: IAD, DCA, and BWI. Some of you may be aware of city codes, such as WAS, that encompass multiple airports, but be aware that they might not include every one you’re thinking of. For some reason I once thought NYC included JFK and LGA but not EWR. Apparently it does include all three, but my point is you should pay attention. I prefer to always specify individual airports. In addition to United, US Airways and American Airlines have a decent presence at DC-area airports. So you could change your search again to include all three airports and only those three airlines, or use a city code:

IAD,BWI,DCA :: UA,US,AA

WAS :: UA,US,AA

You can also specify connecting cities by changing the command to look like this, for example, to require a connection in Denver or Chicago O’Hare:

SEA :: DEN,ORD

If you want to specify both a connection and an airline, you will have to be more careful. The airline code must go before the airport code for the connection, and you will only be specifying the airline for that particular flight. Here are two examples:

Example 1: SEA :: UA DEN
Example 2: SEA :: UA DEN UA

In the first example, only the first flight to Denver will be marketed by United, but the subsequent one can be marketed by other airlines. In the second example, both the first and second flights must be marketed by United. You can use the plus symbol to avoid entering the airline multiple times (e.g., “SEA :: UA+ DEN”).

You’ll notice that I keep saying flights are “marketed by” United. This means they could be codeshares that are operated by another carrier such as Air Canada or US Airways. That’s unlikely on a flight to a United hub like DEN, but you can still use “O:UA” to force ITA to find only flights operated by United (e.g., “SEA :: O:UA+ DEN”). Unlike before, where all flights were marketed by United but could be operated by other carriers, now the reverse is true. All flights will be operated by United, but could be marketed by other carriers.

I am including a list of all the advanced routing commands at the end of this post, but before we get there, let me describe a much smaller group that uses a different syntax.

You can specify that flights be marketed by a particular alliance (so you don’t have to type in all the airline codes) or that tickets be issued in a particular fare class or booking class (such as “W” so that you can use your United systemwide upgrade to move from coach to business). These commands don’t require the two colons after the airport, but they won’t hurt, either. However, you must use a forward slash and include them at the end of any other advanced routing codes.

“/alliance star-alliance” to search Star Alliance members like United
“/alliance oneworld” to search oneworld members like American Airlines
“/alliance skyteam” to search SkyTeam members like Delta

“/f bc=w” to search for tickets in the W fare class
“/f bc=w|bc=y” to search for tickets in the W or Y fare classes

It’s unfortunate that multiple fare classes have to be entered individually separated by that vertical bar (located on your backslash key). However, it’s still very useful when you are trying hard to find an upgradeable flight.

Update: To get a better sense of what a fare class is, see a more recent series of posts where I discuss airline inventory.

Let me leave you with a warning. Because an ITA search will timeout after one minute, an overly broad search will not have time to return all the results. You will still get results, just not all of them. Usually this isn’t an issue, but it will be if you specify too many airports. Narrowing the number of airlines or choosing specific flights prevents the timeout. So, if you are planning to meet up with friends in one of several different cities in the United States to fly to Europe over spring break, and you want to keep your options open, you could easily use ITA to search for something like this:

Departing from: SEA,SFO,LAX,IAD,MIA
Destination: LHR,MUC,CDG,FCO,BCN,FRA

But it probably won’t return everything available, which means you could be missing the cheapest fares. Specifying a few airlines or even a single alliance will help a lot. It will also help to use some of the commands in the list below when you have found one or two specific flight numbers you are interested for the transatlantic portion of your journey but are still flexible about the domestic legs that get you to the gateway city.

I have found this route language to be most helpful in the past particularly when I am trying to connect through particular cities, such as choosing Houston over Denver in the winter, or when I want to avoid others, such as Toronto, which always seems to involve a five-hour layover. Feel free to ask me questions about how to structure your particular search parameters. You can also let me know if you are aware of any commands that I over looked.

My examples are based on ITA’s own instructions, which you can bring up by clicking on the question mark next to each of the advanced routing entry fields. I’ve expanded on them a bit where I felt ITA was unclear. And with that said, I give you the list:

chart of routing command descriptions

Various combinations of these commands are possible. For example:

chart of routing command combination descriptions

There are also many special commands to prevent “bad” flights courtesy of SeattleFred on FlyerTalk. List them after a forward slash and separated by commas, e.g., “BOS :: / -overnight,-redeye”. (Those are minus signs, not the tildes used for negation above.)

chart of negative routing command descriptions

SeattleFred also tells us how to set connection times and itinerary duration. These commands must also be preceded by a forward slash.

chart of time and duration routing command descriptons

About Scott Mackenzie

Scott founded HMT while traveling on a budget during graduate school and stays loyal to United, Alaska, Hyatt, and Starwood.
Email // Twitter // Facebook // Google+ // Subscribe by RSS

  • http://kziel.com Kris Ziel

    “SEA :: UA+ DEN” In all my experience + will try to get multiple flights on the airline, not define all connecting flights. as I understand it: UA = non stop, UA* = nonstop or more, UA+ = 1 or more stops (if possible)

    • http://hackmytrip.com Scottrick

      Kris,
      I think I am still correct, but maybe my example was unclear. “SEA :: UA+ DEN” is what you should type in the departure field. Which means that DEN is required as a connection. So you will definitely get at least one stop in order to connect there. However, If you entered “SEA :: UA+” without requiring a connection in DEN, then nonstop options may be available depending on the destination. For example, you can fly to SFO on UA nonstop or by connecting in PDX or LAX. Entering “SEA :: UA+” in the departure field and “SFO” in the destination field will return both nonstop and connecting options (usually more expensive since SFO is a hub, so connecting is an unnecessary diversion).

      • http://kziel.com Kris Ziel

        As I read it you meant if you are doing SEA-EWR and the routing code is UA+ DEN, it will make all segments UA instead of having to do UA SEA UA, I guess I just misunderstood what you said.

        • http://hackmytrip.com Scottrick

          Kris,
          If you were attempting to fly SEA-EWR and the outbound routing code was “SEA :: UA+ DEN” then it would look for all flights on United with at least one stop in DEN. This could mean two flights (you need at least two when there’s a connection) or it could mean more. “SEA :: UA DEN UA” (I think what you meant) would ONLY look for two flights, and again both would be on United. “SEA :: UA+” would look for nonstop as well as connecting options, but nonstop options may not exist for all routes.

          If you have a particular itinerary you are trying to book, I’d be happy to help you via email.

  • fake

    WAS includes BWI, dude

    • http://hackmytrip.com Scottrick

      The material I was referencing suggested that WAS only included IAD and DCA. However, you are correct, and a search on ITA using WAS will return results for BWI. I’ve updated the post accordingly. Personally I don’t normally use city codes and didn’t have recent experience with this particular case.

      • Mitch

        NYC includes EWR, too. Looking at a potential NYC trip soon and had to keep eliminating EWR results or remembering to just put in JFK, LGA. I’m a big city code user because I live in London and always need to consider LHR, LGW (less now that DL is pulling out and my alliance is barely represented), and LCY (frequent PAR/AMS service that’s more convenient than making the schlep to LHR).

        • http://hackmytrip.com Scottrick

          Hmmm, then why did it not come up in my earlier search? It does now, so I’ll update the post.

  • sandeep

    Here’s one scenario that I still haven’t been about to work around with advanced routing codes… Perhaps you can help! (I’ve report this to ITA, but never heard back.)
    - in the ITA matrix search, one/way, from=BOS, to=DEL, dates: search calendar of lowest fares —pick any date to start, e.g. 3/4/12 and a month later
    - Cabin: Business Class or Higher, stops no limit, uncheck allow airport changes, check only show flights with seats
    - The results show fares around $3500 most days, but several days are under $1000 ! They’re usually United for some reason, but occasionally others. If you click those low dates, you’ll then see that the low fares are for Economy fares.
    - I’ve seen similar behavior for other business class, much simpler domestic searches as well, e.g. BOSSJU, where JetBlue’s economy class will show up as lowest business/first fares.

    Any explanations and/or workarounds with advanced routing codes?
    thanks.

    • http://hackmytrip.com Scottrick

      That’s very odd. I was able to find the same thing, but it was for an Etihad TATL paired with American and Jet Airways codeshares. The red text for the cabin class is your first indication that it’s displaying a different cabin than what you searched for, but it usually only happens when, say, one of the flights is business like you wanted and the others are sold out so only coach is left. My guess was that maybe one of the airlines uses one airline’s particular booking class letter for business class on its own flights, but I checked and that’s not true. I think it’s just a glitch you have to watch out for.

      • John

        Just went through this on BOS-DEL; Once you get results you can filter out economy via the advisory button “preferred class unavailable”.

        • sandeep

          That’s exactly what I do, but unfortunately it makes the monthly view less than useful — you can spot the ‘bad’ dates (with the coach fares), but you cannot tell what the actual business/first fares on those dates will be.

  • mahasamatman

    / nocodeshare is another useful option for making sure you only get flights operated and marketed by the same airline.

  • wally kramer

    So what is the significance of “::”?  Is it some kind of association between what is on the left side and right side?  Is it some kind of sequencing delimiter?  I don’t get it….

    • Scottrick

      It’s probably a delimiter. The “::” separates the airport (required) from all the information about how you want to configure your flight (preferences). You can expand the departure and arrival airports to put the advanced routing language on a second line below them. You can type these two pieces of information on separate lines if you want, or you can type them on the same line separated by “::”. 

      Remember that a lot of computer terminals at airports still look like old-style DOS command prompts. Assuming you know the language, anything more complicated like a graphical user interface isn’t really necessary and just wastes time selecting all the options.

  • Pingback: Wie Tarife für bestimmte 'booking class' finden?

  • http://twitter.com/vvagabondages Lucie Aidart

    Wow these secret codes are brilliant, I had no idea! I’ll try them. I’m trying to get th cheapest ticket to South America, any country, so it might come in handy! Thank you!

  • Pingback: Searching for US flights on UA tickets - FlyerTalk Forums

  • ITA Magic

    The delimiter :: in the departing from or destination field causes any info you type after it to automagically appear in the advanced routing code textbox.

  • Pingback: need 2 segments for DL platinum - FlyerTalk Forums

  • Hiya

    Hi, this page is awesome! Is there a command to request a certain plane like A380?

  • Pingback: Multi-city Tango Plus? - FlyerTalk Forums

  • Pingback: ITA Routing Codes. - FlyerTalk Forums

  • Pingback: Airfares search via ITA Matrix software « Random stuff

  • Pingback: Free First Class Next Month: Using ITA Matrix to Find Cheap Flights and Fuel Surcharge Info | milevalue.com