Germany's cabinet has agreed to cap ballooning property rents in high-demand urban neighbourhoods in a law set to come into force early next year.

In order to keep city rents broadly affordable, landlords will be barred from raising them by more than 10% above the local average for new tenants.

The law aims to alleviate exorbitant rental increases in Berlin, Munich, Hamburg and other popular cities which are pricing especially students and young families out of the market.

"The 'rental price brake' will help keep rents affordable for average wage earners," said Justice and Consumer Protection Minister Heiko Maas, adding that commonly seen rental hikes of 30 to 40% were "unacceptable".

Under the new law, which is set to stay in effect until 2020, property owners must also pay for estate agent fees, a charge so far normally levelled on tenants.

Newly-constructed or extensively-renovated buildings will be exempt from the 10%-cap, so as not to discourage new property construction in cities with apartment shortages.

The opposition Greens party and far-left Linke party have criticised those exemptions, saying they would negate the intended effect of bringing down rents as expensive new luxury apartment blocks drive up average rents.

The rental cap was first proposed in last year's election campaign by the Social Democrats, who are now the junior partners in conservative Chancellor Angela Merkel's 'grand coalition' government.

The law will apply only in "highly-strained rental property markets", which are to be determined by Germany's 16 states.

The states will calculate how much local rents are above the national average and factor in occupancy rates and whether areas are experiencing a large influx of residents.

The German Tenants' Association praised the reforms as "an important step to limit drastic rental increases especially in large cities, densely populated areas and university towns".

But its director Lukas Siebenkotten also called for improvements to the bill, which must be passed by both houses of parliament, especially to clarify how breaches should be punished.