Hammam is one of the earliest constructions in the Qutb Shahi necropolis and one of the finest Persian type Hammam to survive in India. This is a single-storied structure and rectangular in plan. Hammam contains several interconnected cisterns and a network of water channels beneath the flooring to carry hot and cold water.
This elaborate Hammam, often mistaken for a mortuary bath, is one of the finest surviving Persian-type Hammams in India, with multiple chambers, cisterns, and mechanisms for hot and cold water. During a Peer Review meeting on site, an expert from Iran suggested it could be a functional rather than a funerary hammam.
Major alterations and inappropriate 20th-century repairs had obscured the Hammam’s grandeur. Conservation efforts began with removing unsuitable modern cement repairs. Dismantling loose plaster, cement, and distemper revealed original plaster layers with grooves and arch bands. Several sealed openings were reopened, revealing niches for lamps and doorways, restoring the monument's original extent and façade. This also allowed more light to enter, making the previously dark space more inviting. The internal surface, severely damaged by water seepage, was replastered with lime mortar to match the original details and mouldings.
Missing or damaged stone elements in the internal chamber were carefully restored by skilled craftsmen, with hand-chiselled stone matching the original evidence in shape, color, and texture. Vegetation clearance and archival photographs revealed a link between the Hammam and the baoli/stepwell to its north, indicating a higher water-lifting mechanism in the late 19th century. Removal of 150 tonnes of cement concrete from the roof uncovered a network of terracotta pipes supplying water to ground-level cisterns. The roof was re-laid with 6-inch thick lime concrete, ensuring adequate slope and preserving the terracotta pipes. The original hexagonal profiles of roof openings were restored with stone edging before applying lime concrete.
In the arcaded corridor, 20th-century paving stones set on cement plaster were dismantled to reveal the original flooring level, over two feet below existing levels. Restoring this required significant alteration of the surrounding earth to ensure proper drainage and prevent water from entering the structure.
Removing 20th century cement plaster revealed the original bands underneath.
Removal of inappropriate 20th-century cement and distemper layers from the internal surface.
During conservation, several openings that had been sealed in 20th century were reopened.
Skilled stone artisans reinstated the missing stone elements with hand chiselled stones, matching the original evidence.
The roof of the Hammam has been restored by removing excess dilapidated lime and cement concrete.
Original floor unearthed 2ft below the 20th-century stone paving set in cement!
Recent conservation efforts at the Hammam focused on removing inappropriate repairs and additions made with modern materials, revealing original plaster layers and lime stucco details. Restorations included reinstating missing stone elements and clearing cement concrete from the roof to expose terracotta pipes, followed by relaying the roof in lime concrete to ensure historical authenticity.
The discovery of the original flooring in the arcaded corridor of the Hammam, over two feet below existing levels, necessitated substantial changes to the surrounding earth to ensure effective water drainage away from the building.
A portion of an aqueduct was exposed south of Hamam.
6.4 meters wide plinth protection was finished with 100 mm thick natural rough granite stones with the grading towards the aqueduct
Retaining walls were built around the holding earth of the Peepal tree abutting the monument
A portion of an aqueduct was exposed south of Hamam.
6.4 meters wide plinth protection was finished with 100 mm thick natural rough granite stones with the grading towards the aqueduct
Retaining walls were built around the holding earth of the Peepal tree abutting the monument
A portion of an aqueduct was exposed south of Hamam.
6.4 meters wide plinth protection was finished with 100 mm thick natural rough granite stones with the grading towards the aqueduct
Retaining walls were built around the holding earth of the Peepal tree abutting the monument
1 x Booting (71.62%) | 594ms |
1 x Application (28.38%) | 235ms |
select * from `website_settings` where `name` = 'ADMIN_LIMIT' limit 1
Bindings |
|
Backtrace |
|
select * from `modules` where `front_display_name` = 'hammam' limit 1
Bindings |
|
Backtrace |
|
select `module_id` from `common_slug` where `slug` = 'hammam'
Bindings |
|
Backtrace |
|
select * from `modules` where `id` = 51 limit 1
Bindings |
|
Backtrace |
|
select module_to_filelds.*,F.fieldName as front_fieldName,F.displayFieldName, F.classes,F.listing_hide,F.detail_hide,F.show_label,F.char_limit_listing,F.sort_order from `module_to_filelds` right join `module_to_front_filelds` as `F` on `F`.`moduleID` = `module_to_filelds`.`moduleID` and `F`.`fieldName` = `module_to_filelds`.`fieldName` where `F`.`moduleID` = 51
Bindings |
|
Backtrace |
|
select * from `cms_pages` where (`status` = 1 and `slug` = 'hammam') limit 1
Bindings |
|
Backtrace |
|
select M.*, AS.id as alias_id,AS.slug as alias_slug from `cms_pages` as `M` left join `common_slug` as `AS` on `AS`.`page_id` = `M`.`id` and `AS`.`slug_table` = 'cms_pages' where `M`.`slug` = 'hammam' and `M`.`status` = 1 group by `M`.`id` limit 1
Bindings |
|
Backtrace |
|
select * from `cms_pages` as `M` where `parent_id` = 44 and `status` = 1 order by `sort_order` asc
Bindings |
|
Backtrace |
|
select * from `common_images` where (`tbl_id` = 44 and `tbl_name` = 'cms_pages') order by `sort_order` asc
Bindings |
|
Backtrace |
|
select * from `common_section` where (`page_id` = 44 and `status` = 1 and `ctbl` = 'cms_pages') order by `sort_order` asc
Bindings |
|
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`page_id` = 44 and `M`.`id` = 394 and `M`.`status` = 1 and `M`.`id` = '394' group by `M`.`id` order by `M`.`sort_order` asc limit 1
Bindings |
|
Backtrace |
|
select M.* from `common_images` as `M` where `tbl_id` = '394' and `tbl_name` = 'common_section' and `M`.`status` = 1 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`page_id` = 44 and `M`.`id` = 395 and `M`.`status` = 1 and `M`.`id` = '395' group by `M`.`id` order by `M`.`sort_order` asc limit 1
Bindings |
|
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`page_id` = 44 and `M`.`id` = 396 and `M`.`status` = 1 and `M`.`id` = '396' group by `M`.`id` order by `M`.`sort_order` asc limit 1
Bindings |
|
Backtrace |
|
select M.* from `common_images` as `M` where `tbl_id` = '396' and `tbl_name` = 'common_section' and `M`.`status` = 1 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`status` = 1 and `M`.`parent_id` = 396 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`page_id` = 44 and `M`.`id` = 399 and `M`.`status` = 1 and `M`.`id` = '399' group by `M`.`id` order by `M`.`sort_order` asc limit 1
Bindings |
|
Backtrace |
|
select M.* from `common_images` as `M` where `tbl_id` = '399' and `tbl_name` = 'common_section' and `M`.`status` = 1 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`status` = 1 and `M`.`parent_id` = 399 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select column_name as `name`, data_type as `type_name`, column_type as `type`, collation_name as `collation`, is_nullable as `nullable`, column_default as `default`, column_comment as `comment`, extra as `extra` from information_schema.columns where table_schema = 'qshp_database' and table_name = 'common_section' order by ordinal_position asc
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`page_id` = 44 and `M`.`id` = 402 and `M`.`status` = 1 and `M`.`id` = '402' group by `M`.`id` order by `M`.`sort_order` asc limit 1
Bindings |
|
Backtrace |
|
select M.* from `common_images` as `M` where `tbl_id` = '402' and `tbl_name` = 'common_section' and `M`.`status` = 1 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
select M.* from `common_section` as `M` where `M`.`status` = 1 and `M`.`parent_id` = 402 group by `M`.`id` order by `M`.`sort_order` asc
Bindings |
|
Backtrace |
|
200
[]
[]
0 of 0array:15 [▼ "accept" => array:1 [▶ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "accept-encoding" => array:1 [▶ 0 => "gzip, deflate, br, zstd" ] "host" => array:1 [▶ 0 => "qshp.tekzini.com" ] "pragma" => array:1 [▶ 0 => "no-cache" ] "user-agent" => array:1 [▶ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cache-control" => array:1 [▶ 0 => "no-cache" ] "sec-ch-ua" => array:1 [▶ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "sec-ch-ua-mobile" => array:1 [▶ 0 => "?0" ] "sec-ch-ua-platform" => array:1 [▶ 0 => ""Windows"" ] "upgrade-insecure-requests" => array:1 [▶ 0 => "1" ] "sec-fetch-site" => array:1 [▶ 0 => "none" ] "sec-fetch-mode" => array:1 [▶ 0 => "navigate" ] "sec-fetch-user" => array:1 [▶ 0 => "?1" ] "sec-fetch-dest" => array:1 [▶ 0 => "document" ] "priority" => array:1 [▶ 0 => "u=0, i" ] ]
[]
0 of 0array:5 [▼ "content-type" => array:1 [▶ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [▶ 0 => "no-cache, private" ] "date" => array:1 [▶ 0 => "Sat, 07 Jun 2025 13:15:10 GMT" ] "set-cookie" => array:2 [▶ 0 => "XSRF-TOKEN=eyJpdiI6ImtVWTRhV2s5d1lCU3lpN2poQVZjU0E9PSIsInZhbHVlIjoiTWtrRTlOQkNBb0pvM2d4QnFkRkJPdm8rRWQ4WndBRWlNK3NHaFlsRDZmeGZNaGtFWmV1ZWtGNEErcENmbmU2dFJZajBqeTI4d3JSTVZuaTdhNlZnQU40djdlRTFxTWpKYmRwVUlEcDBCTndFUm0zTDVmYVQ2cVZBclBNd29NS1AiLCJtYWMiOiIxYzdhYjZhMmY1ZmU1OGQ0ZGU0OGE1ZGZjYTRjMTZkOWIwOTRmOWRkMWYwYTRhNWViNTg0MGNmMzY3MjA3MDIyIiwidGFnIjoiIn0%3D; expires=Sat, 07 Jun 2025 15:15:11 GMT; Max-Age=7200; path=/; secure; samesite=lax ◀XSRF-TOKEN=eyJpdiI6ImtVWTRhV2s5d1lCU3lpN2poQVZjU0E9PSIsInZhbHVlIjoiTWtrRTlOQkNBb0pvM2d4QnFkRkJPdm8rRWQ4WndBRWlNK3NHaFlsRDZmeGZNaGtFWmV1ZWtGNEErcENmbmU2dFJZajBqe ▶" 1 => "qshp_session=eyJpdiI6IjQycEovZXFyWWtnZkZIbnJvMXhvWEE9PSIsInZhbHVlIjoiaEZMVURkZ0NoRVJBT25QQ29TSm5UTm95L1Z1ZWVhN0VjeHFXeXdLN01OSjdvYWdzUUh0cDhOWU5DY3NaV1VSc0FhT29rRDNPQkZ5YjUwdDlFYnB0Q0w3MHZCb3Z5MlBoQ05XR0JVTHJyUVZxbjZOM0tIZERDMkZKUXowQ0RXRisiLCJtYWMiOiJkZTZhN2NhYTFiOTJmOTIxODE3ODM5ODIxNjlhMDU1NTZkYjhlYzg0MzRkNTRmMTFlZWFiMTUzOGM3NDBiMjJmIiwidGFnIjoiIn0%3D; path=/; httponly; samesite=lax ◀qshp_session=eyJpdiI6IjQycEovZXFyWWtnZkZIbnJvMXhvWEE9PSIsInZhbHVlIjoiaEZMVURkZ0NoRVJBT25QQ29TSm5UTm95L1Z1ZWVhN0VjeHFXeXdLN01OSjdvYWdzUUh0cDhOWU5DY3NaV1VSc0FhT29 ▶" ] "Set-Cookie" => array:2 [▶ 0 => "XSRF-TOKEN=eyJpdiI6ImtVWTRhV2s5d1lCU3lpN2poQVZjU0E9PSIsInZhbHVlIjoiTWtrRTlOQkNBb0pvM2d4QnFkRkJPdm8rRWQ4WndBRWlNK3NHaFlsRDZmeGZNaGtFWmV1ZWtGNEErcENmbmU2dFJZajBqeTI4d3JSTVZuaTdhNlZnQU40djdlRTFxTWpKYmRwVUlEcDBCTndFUm0zTDVmYVQ2cVZBclBNd29NS1AiLCJtYWMiOiIxYzdhYjZhMmY1ZmU1OGQ0ZGU0OGE1ZGZjYTRjMTZkOWIwOTRmOWRkMWYwYTRhNWViNTg0MGNmMzY3MjA3MDIyIiwidGFnIjoiIn0%3D; expires=Sat, 07-Jun-2025 15:15:11 GMT; path=/; secure ◀XSRF-TOKEN=eyJpdiI6ImtVWTRhV2s5d1lCU3lpN2poQVZjU0E9PSIsInZhbHVlIjoiTWtrRTlOQkNBb0pvM2d4QnFkRkJPdm8rRWQ4WndBRWlNK3NHaFlsRDZmeGZNaGtFWmV1ZWtGNEErcENmbmU2dFJZajBqe ▶" 1 => "qshp_session=eyJpdiI6IjQycEovZXFyWWtnZkZIbnJvMXhvWEE9PSIsInZhbHVlIjoiaEZMVURkZ0NoRVJBT25QQ29TSm5UTm95L1Z1ZWVhN0VjeHFXeXdLN01OSjdvYWdzUUh0cDhOWU5DY3NaV1VSc0FhT29rRDNPQkZ5YjUwdDlFYnB0Q0w3MHZCb3Z5MlBoQ05XR0JVTHJyUVZxbjZOM0tIZERDMkZKUXowQ0RXRisiLCJtYWMiOiJkZTZhN2NhYTFiOTJmOTIxODE3ODM5ODIxNjlhMDU1NTZkYjhlYzg0MzRkNTRmMTFlZWFiMTUzOGM3NDBiMjJmIiwidGFnIjoiIn0%3D; path=/; httponly ◀qshp_session=eyJpdiI6IjQycEovZXFyWWtnZkZIbnJvMXhvWEE9PSIsInZhbHVlIjoiaEZMVURkZ0NoRVJBT25QQ29TSm5UTm95L1Z1ZWVhN0VjeHFXeXdLN01OSjdvYWdzUUh0cDhOWU5DY3NaV1VSc0FhT29 ▶" ] ]
0 of 0array:4 [▼ "_token" => "7LZTCRB9k5suZu2PFD3e8H42jZh0MNHMWkWqztpy" "_previous" => array:1 [▶ "url" => "https://qshp.tekzini.com/hammam" ] "_flash" => array:2 [▶ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]