There are a few theories behind the name of Zakiganj. The first is that is derived from Shah Zaki, a pir who established a khanqah on the banks of the Kushiyara River. A ganj, Perso-Bengali suffix meaning 'marketplace' or 'neighbourhood', was then set up around the khanqah. In memory of Shah Zaki, nearby places are named Pirerkhal and the village Pirerchok. Another theory is that it is named after a man named Ghulam Zaki Majumdar, whose brother Karim Majumdar is who Karimganj district is said to have been named after.[2]
Zakiganj was established as a thana in 1947 and was previously a part of the greater Karimganj district. Along with Karimganj, Zakiganj was to be a part of the Dominion of India but this was prevented by a delegation led by Sheikh Mujibur Rahman.[3] In the aftermath of the Bangladesh Liberation War of 1971, mass graves were found in Atgram Bazar and Kaliganj Bazar. Zakiganj became an upazila on 1 August 1983.[1]
According to the 2011 Bangladesh census, Zakiganj Upazila had 40,548 households and a population of 237,137. 65,802 (27.75%) were under 10 years of age. Zakiganj had a literacy rate (age 7 and over) of 49.39%, compared to the national average of 51.8%, and a sex ratio of 1021 females per 1000 males. 20,806 (8.77%) lived in urban areas.[6][7]
As of the 1991 Bangladesh census, Zakiganj has a population of 174,038. Males constitute 50.55% of the population, and females 49.45%. This Upazila's eighteen up population is 85935. Zakiganj has an average literacy rate of 30.8% (7+ years), and the national average of 32.4% literate.[8] Religions: Muslim 81.48%, Hindu 18.47%, Buddhist, Christian and others 0.05%.
Zakiganj Upazila is divided into Zakiganj Municipality and nine union parishads: Barahal, Barathakuri, Birorsri, Kajalshar, Khaskanakpur, Kolachora, Manikpur, Sultanpur, and Zakiganj. The union parishads are subdivided into 108 mauzas and 278 villages.[6]
Zakiganj Municipality is subdivided into 9 wards and 25 mahallas.[6]