Germany took in 280,000 asylum seekers in 2016, about one-third of the previous year`s record figure, interior minister Thomas de Maiziere said on Wednesday.
At the height of the huge refugee and migrant influx to Europe in 2015, a total of 890,000 people came seeking safe haven in the EU`s top economy.
The migration office said that it received about 745,000 asylum requests in 2016 from people who had arrived that year or the year before.
Of these, 36 per cent were from refugees from war-torn Syria, 17 per cent Afghans and 13 percent Iraqis, it said.
Chancellor Angela Merkel, who faces an election expected in September, has been harshly criticised for the mass inflow, and her government has taken a series of measures to reduce arrivals.
The reduced numbers for 2016 "show that the measures which the German government and the European Union have taken are working," said de Maiziere at a press conference.
"We have managed to bring order to the migrant situation," he added.
The mass influx eased off sharply in early 2016 after several Balkans transit countries shuttered their borders.
The EU also reached a controversial deal with Turkey, spearheaded by Germany, to stop the influx to the Greek islands.
In further measures, Berlin declared some western Balkans states "safe countries of origin", making it harder for their citizens to obtain refugee status in Germany.
It is seeking similar designations for Morocco, Tunisia and Algeria, and also plans to pressure the Maghreb countries, possibly by denying foreign aid, if they drag their feet on taking back rejected asylum seekers.