Skip to content
Brazil Manual
Brazil Manual Home All guides
Aerial view of São Paulo/Guarulhos International Airport, its two parallel runways and terminal complex with dense city blocks around it to the horizon

Photo: Alexandro Dias · CC BY-SA 4.0 · source

What Is GRU Airport? The Busiest Airport Serving São Paulo

The ticket says GRU, Brazil's aeronautical records say SBGR, and IATA keeps a third code, SAO, for the São Paulo area. SAO and GRU are both IATA codes, one for an area and one for an airport, and only the airport code tells you where you will land.

By Jeff Bruno · Editor, Curitiba
Published 11 min read
In this article
Quick answer

GRU is IATA's code for São Paulo/Guarulhos International, the busiest of São Paulo's airports: 47.2 million passengers in 2025 by its operator's count, almost twice Congonhas. Its four-letter ICAO code is SBGR.

SAO is not an airport. IATA lists it as a metropolitan-area code; a ticket names a single airport, such as GRU. A private concessionaire runs GRU under ANAC, the federal regulator, and international flights use Terminals 2 and 3. Checked on September 28, 2026.

Three systems name the same place. Airlines sell it under IATA's code, Brazilian authorities chart and regulate it under ICAO's, and the operator markets it as GRU Airport – Aeroporto Internacional de São Paulo, São Paulo International Airport, a brand it adopted on November 15, 2012. Most of the confusion is a matter of knowing which system you are reading.

What GRU is, and who runs it

The legal name comes from Law 10,314 of 2001, which named it for Governor André Franco Montoro: Aeroporto Internacional de São Paulo/Guarulhos – Governador André Franco Montoro. The same law calls it the international airport of the city of Guarulhos, a separate municipality, and that is why the trip into São Paulo is priced the way it is. The airport opened on January 20, 1985, and took over Congonhas's international flights that same year.

A company controlled by private shareholders, with the federal airport company Infraero holding 49%, runs it under a federal concession: the Concessionária do Aeroporto Internacional de Guarulhos S.A., trading as GRU Airport. ANAC's page on the concession dates the auction to February 6, 2012, the contract to June 14 and the start to July 11, 2012, with a term of 20 years.

That last figure is out of date. The contract's eleventh amendment, signed in December 2024 after a settlement reached through the Federal Court of Accounts (TCU), extends the concession to November 23, 2033, to rebalance the contract for the new investment it requires. ANAC's summary page, updated January 16, 2026, still prints the original term.

The regulator is ANAC, the national civil aviation agency. Its founding law gives it the power to grant airport concessions and to regulate and inspect airport infrastructure, except for airspace control and accident investigation. Airspace control, the same law says, runs through the air force command.

At a glanceChecked September 28, 2026

Legal name
Aeroporto Internacional de São Paulo/Guarulhos – Governador André Franco Montoro
IATA code · ICAO code
GRU · SBGR
IATA metropolitan-area code
SAO, city name Sao Paulo
Operator
Concessionária do Aeroporto Internacional de Guarulhos S.A.
Concession runs to
November 23, 2033
Regulator
ANAC
Passengers in 2025
47,188,085

Law 10,314/2001; IATA code search; DECEA aerodrome record; ANAC concession page and eleventh amendment; GRU Airport operational report for December 2025. Accessed September 28, 2026.

GRU and SBGR: one airport, two registries

GRU comes from IATA, the airlines' trade association. Its code search presents itself as "an official source for codes assigned by IATA" and returns GRU as "Guarulhos Intl" under the city name Sao Paulo. IATA's fact sheet on location codes spells out the division of labor: its three-letter codes serve "strictly commercial airline purposes" and are issued at an airline's request, while ICAO's four-letter codes serve flight operations and cover non-commercial airports too.

GRU's four-letter code is SBGR, and it is the one Brazil's aeronautical and regulatory records use. DECEA, the air force department that runs airspace control, publishes the aerodrome record: Guarulhos - Governador André Franco Montoro (SBGR), tagged INTL, for international, with GRU Airport as operator. ANAC indexes its list of concessions by the same code, and the Guarulhos contract itself is numbered 002/ANAC/2012-SBGR.

The same record files the airport under the city of São Paulo and places it 24 km northeast of the center. IATA's city name agrees.

SAO is an area code, not an airport

Search IATA's database for "Sao Paulo" and the first result is not an airport. The Airport Name column reads "Metropolitan Area", with the code SAO. Then come Congonhas (CGH), Viracopos-Campinas (VCP), Guarulhos (GRU) and Campo de Marte (RTE), all under the city name Sao Paulo. Checked on September 28, 2026.

IATA's fact sheet explains the mechanism. When a metropolitan area has more than one airport, "each airport will have its own code and the metropolitan area may either use its own code or one of the airport codes." Its example is Washington, where the area code WAS stands over DCA, BWI and IAD. Adding an airport to an existing metropolitan code "is decided by an industry poll."

That is the whole difference between SAO and GRU: one names the area, the other names the airport you land at.

The catch is Viracopos. IATA gives it the city name Sao Paulo, but DECEA places SBKP in Campinas, 14 km south-southwest of that city's center. Read the airport's three letters on the ticket, not the city name.

Guarulhos, Congonhas or Viracopos

Set aside Campo de Marte, which ANAC files under general aviation, and three airports remain, each run by a different company. Two use the city as a brand: GRU calls itself Aeroporto Internacional de São Paulo, and Aena calls Congonhas Aeroporto de São Paulo, plain São Paulo Airport.

AirportCodesWhereOperatorFlightsPassengers, 2025
GuarulhosGRU · SBGRGuarulhos, 24 km northeast of São Paulo's centerGRU Airport, concession from 2012Domestic and international47.2 million
CongonhasCGH · SBSPSão Paulo, 5 km south of the centerAena Brasil, since October 2023Domestic24.5 million
ViracoposVCP · SBKPCampinas, 14 km south-southwest of that city's centerAeroportos Brasil Viracopos, concession from 2012Domestic and international12.8 million

The split has a date. Congonhas, opened in 1936, lost its international commercial flights to Guarulhos in 1985, and Aena now describes it as serving more than 30 destinations in Brazil. In DECEA's records, SBGR and SBKP carry the international tag and SBSP does not.

That could change. On December 23, 2025, Aena announced a favorable opinion from the national civil aviation secretariat (SAC) on its request to reopen Congonhas to regular international flights, aimed at short and medium routes in South America, with a new terminal due by June 2028. An opinion is not a designation. Under ANAC's rules, only ANAC designates an international airport, at the operator's request and after decisions from customs, the Federal Police, the health regulator Anvisa and agricultural inspection, and no international flight may use it before the aeronautical record lists it. In May 2026, ANAC's president told CNN Brasil the agency had no date even to begin that analysis. On September 28, 2026, SBSP still carried no international tag.

Viracopos also publishes its freight: of the 271,711 metric tons it handled in 2025, 184,647 were international imports and exports.

The passenger figures are each operator's own, but they measure the same thing: all three report every landing and takeoff to ANAC in one format, and our sum of that data for 2025 lands within 0.1% of each published total. It also shows Congonhas logging not one international movement all year. And a connection between Guarulhos and Congonhas always means collecting your bag, as the connection guide explains.

Three terminals, and what each one handles

The operator runs three passenger terminals and one for cargo. Its terminals page in Portuguese, read on September 28, 2026:

TerminalCheck-inGatesWhat the operator lists
1A101 to 109Azul
2B, C, D and E201 to 229 west, 250 to 268 eastDomestic and international
3F, G and H301 to 332International

The gate number is the map, because its first digit is the terminal, a rule the operator states outright. The Terminal 3 guide explains why "the international terminal" is only half right, and what the English page leaves out for that terminal.

The numbering dates from the end of 2015, when the operator merged the old Terminals 1 and 2 into today's Terminal 2 and renamed the old Terminal 4 as Terminal 1; Terminal 3 had opened in May 2014. Anything that mentions a Terminal 4 predates that change.

The operator lists all three terminals as open 24 hours. Airlines by check-in island, the remote gates and the walk along the pier are in the same guide.

How big GRU is, by its operator's count

GRU Airport publishes a monthly movement summary, and its December 2025 report closes the year at 47,188,085 passengers, counted as boardings plus disembarkations, with 305,188 landings and takeoffs. Domestic traffic is the larger part: 30,378,959 passengers against 16,809,126 international, so about 36% crossed a border. The movement data the operator files with ANAC add what the report leaves out: by our sum, 19.7 million of those boardings and disembarkations were passengers changing planes, about four in ten.

For 2026, the count through August, the latest month published when checked on September 28, 2026, stands at 31,912,622.

The operator's adjectives are less reliable than its tables. Its terminals page calls GRU the largest airport in Brazil. Its history page says "the largest airport in Latin America" in English and o segundo maior aeroporto da América Latina, the second largest, in Portuguese. For a number you can cite, use the report.

Arriving, leaving and connecting

Arriving from abroad, you deal with two agencies. The Federal Police check passports, and Brazil no longer hands out an entry card: what replaced it. The one form left belongs to customs, whose English guidance lags the Portuguese. Whether you needed a visa turns on your nationality. Outside, the published ways into the city and the rules for ride apps at the curb each have a catch.

Leaving, the terminal depends on the airline and, for Azul and LATAM, on whether the flight is domestic or international; international departures use both Terminal 2 and Terminal 3. The airport's airline directory lists airlines by terminal, and the connection guide has the pairs. What you may carry is each airline's call, and GOL, LATAM and Azul publish different numbers.

Connecting has one rule most travelers do not expect. Arriving from abroad and flying on inside Brazil, you collect your bag and check it in again, often in another terminal; the connection guide has the rule and the airport's minimum times. Whether a layover needs a visa turns on leaving the international transit area, and the layover guide draws that line.

Sources

Accessed September 28, 2026.

Method on how we research; Jeff Bruno writes from Curitiba. Next door: getting around, all guides.

What we could not verify

  • Which airports belong to SAO. IATA's free search files GRU, Congonhas, Viracopos and Campo de Marte under the city name Sao Paulo, but does not list which of them the SAO code covers. That list sits in IATA's City Code Directory, sold as a publication, which we did not buy. So we do not claim to know which airports the SAO code covers.
  • What the letters GRU stand for. IATA publishes its current assignment rules, not the reason behind any single code, and neither the operator's history page nor the naming law mentions it.
  • When the concession will really end. The December 2024 amendment set November 23, 2033, and its own clause 2.6.3 lets the term be extended again, up to a hard limit of July 11, 2037. A later amendment, signed in April 2026 to add regional airports to the same contract, allows an extension as compensation without naming a date. Where between 2033 and 2037 the term will land is not published.
  • Where the Congonhas request stands. ANAC publishes the steps, but none of the agencies involved publishes the status of this request, and the secretariat's favorable opinion itself is public only through Aena's note and press reports.

Frequently asked

It depends on the airport. GRU is Guarulhos, CGH is Congonhas and VCP is Viracopos. SAO is IATA's code for the São Paulo metropolitan area, which is not an airport. Checked on September 28, 2026.

It is GRU's four-letter ICAO code. Brazil's aeronautical records and ANAC's concession files use it, while airlines sell the airport under IATA's three-letter GRU.

No. Its operator, Aena, describes it as a domestic airport serving more than 30 Brazilian destinations. Aena has asked to reopen it to South American routes, and on September 28, 2026 the aeronautical record still did not tag it international.

Not in the city of São Paulo. It is in Campinas, in São Paulo state, 14 km from Campinas's center by the air force's aerodrome record, although IATA gives it the city name Sao Paulo. Check the three-letter code on the ticket.

A private company, the Concessionária do Aeroporto Internacional de Guarulhos S.A., under a federal concession that began in 2012. An amendment signed in December 2024 extends it to November 23, 2033.

Jeff Bruno

Jeff Bruno

Curitiba, Paraná

Runs online retail in Brazil. Pays suppliers by PIX, ships through the Correios, crosses to Paraguay for stock.

About the author →

Every guide names its sources

And says what it could not verify. That is the whole point.

Browse all guides

71 guides · free · no paid placements, ever

Read next