Television images showed two mangled carriages lying beside the track after the accident, which occurred around 30 miles (50 kilometres) from Lucknow, capital of the northern state of Uttar Pradesh.
As rescuers worked to cut people free from the metal, Neeraj Sharma, chief public relations officer for the Northern Railway, told AFP that 30 bodies had been found. Earlier, authorities said two children had been killed in the crash and around 50 people injured.
The Press Trust of India (PTI) news agency said the train apparently overshot a signal before crashing into a barrier and coming off the rails. Sharma said there would be an official investigation into the cause of the accident, which could have been down to driver negligence or the brake system failing.
Deadly accidents are common on India’s railways, whose vast and rundown network carries tens of millions of people daily.
Last month a passenger train derailed in southern India after a boulder fell on the tracks, killing at least 10 people. India’s government has pledged to invest $137 billion to modernise its crumbling railways, making them safer, faster and more efficient.
The railways minister said last month that decades of under-investment had taken their toll on the rail network and promised to restore it to its former glory. An official at the scene said one of the coaches was vacant at the time of the accident, limiting the number of deaths.