Hotels in Saint Petersburg, Russia

Find the best Saint Petersburg hotel for your dates, by price or preference

Compare hotel deals across hundreds of providers, all in one place

Look out for Saint Petersburg hotels with free cancellation or excellent ratings

Trusted Saint Petersburg hotel providers

See all hotels in Saint Petersburg

Prices may change – pop in your dates for the best estimate. Note that prices are based on previous traveller searches and partner prices.
Prices may change – pop in your dates for the best estimate. Note that prices are based on previous traveller searches and partner prices.
View more hotels

Find a Saint Petersburg hotel in the heart of the action

Beat the queues at the top Saint Petersburg attractions by staying close to them.

Saint Petersburg hotels: FAQs

You can always cancel or amend your hotel reservation if you need to, but look out for hotels in Saint Petersburg with free cancellation or flexible booking options if you want to protect your money. Some hotels allow you to cancel and get your money back if your plans change.
Of course - the cheapest hotel deal we found within the next seven days is Rp 484.131 per night. If you need somewhere in the next 24 hours, we've found you somewhere to stay for Rp 484.131 per night.
The average price of a hotel during the week is Rp 3.057.342 per night, and the average price on weekends is Rp 1.100.906. Overall, it looks like the cheapest day to stay in Saint Petersburg could be Sunday.
We crunched some numbers on our calendar and found that Sunday is the cheapest day to stay in Saint Petersburg. And the most expensive day seems to be Friday.
The average price of a 3-star hotel in Saint Petersburg is currently around Rp 834.168 per night. And the cheapest 3-star hotel we found is Rp 484.131 per night.
The average price of a 4-star hotel in Saint Petersburg is currently around Rp 1.429.716 per night. And the cheapest 4-star hotel we found is Rp 612.072 per night.
The average price of a 5-star hotel in Saint Petersburg is currently around Rp 3.006.839 per night. And the cheapest 5-star hotel we found is Rp 1.654.638 per night.