Filipe Sousa, mayor of Santa Cruz where the accident happened, said 17 women and 11 men were killed in the crash, with another 21 injured.
The accident happened in Canico, a coastal town to the east of the island's capital, Funchal.
The coach was said to be carrying 50 passengers.
German Foreign Minister Heiko Maas said he was "deeply shaken by the tragic bus crash".
"The German Embassy in Lisbon is talking to local authorities and there possibly are German fatalities, but we can not confirm at this moment", a German Foreign Ministry spokesperson told CNN. The bus carrying tens of tourists is believed to plunged off the road before overturning.
At least fourteen ambulances are said to be at the scene, next to Quinta Splendida Wellness & Botanical Garden.
Most of the victims are reported to be from Germany. Parts of the bus, including seats, and items of clothing littered the grassy hillside, which looks out over the Atlantic Ocean.
The deaths were confirmed by Lusa, the national news agency.
It says the government reiterates its condolences to the victims' families after Wednesday's accident, which also injured 28 people.
"Our thoughts are with the injured", he tweeted.
Regional authorities declared three days of mourning for the victims, starting from Thursday.
Prosecutors have opened a probe and the vice-president of the regional government Pedro Calado said it was "premature" to attribute the cause of the accident.
- Klitschko faces must-win bout against Fury
- Sadio Mane or Mohamed Salah? Jamie Carragher picks most important Liverpool player
- United must do ‘clever business’ to compete with European elite - Solskjaer
- Blue Jackets advance after sweep of mighty Lightning
- President Trump is preparing a rebuttal to the Mueller report
- Woman made threats against Columbine High School, FBI says
- Most active Western Conference teams this offseason
- USA monitor detects activity at North Korea nuclear site
- Russell Wilson Signs 4 Year, $140 Million Extension With Seahawks
- Cardinals Claim They Haven't Decided On No. 1 Pick