The explosion was caused by a homemade bomb packed with pieces of metal with a force equivalent to 200 grammes of TNT, they said. They have opened a criminal case on the grounds of attempted murder.
Nobody was killed in the explosion, and it was not immediately clear what the motive for it was.
Russian media reports said the bomb had been hidden in a locker where shoppers leave their belongings in a branch of the Perekrestok supermarket chain.
“All possible versions of what has happened are being worked on,” Alexander Klaus, the head of St Petersburg’s investigative committee, told Reuters.
“As of now, it has been established that 10 people were taken to the city’s hospitals with injuries. At the moment, the lives of those injured are not under threat.”