Ham behoort tot de provincie Limburg, vlak aan de grens met de provincie Antwerpen, en ligt in de zuidelijke hoek van de kempen.
Administratief maken wij een deel uit van het arrondissement Hasselt en het kanton Beringen.
Met een oppervlakte van 3 268 ha grenst Ham langs de Noord- en Westkant aan de Antwerpse gemeenten Laakdal, Meerhout en Balen. Langs de Zuid- en Oostkant raakt de gemeente Ham de gemeenten Tessenderlo, Beringen en Leopoldsburg.
Twee kanalen doorkruisen onze gemeente: het Albertkanaal en het kanaal Dessel-Kwaadmechelen. De Boudewijnautostrade nu de E313, snijdt de gemeente in twee delen.
Ham telde op 1 januari 2020 10 980 inwoners.