Saint-Gérand-le-Puy compte 1064 habitants pour une densité de 54 habitants par kilomètre carré. Cette commune se trouve dans la région Auvergne et dans le département Allier(03). Le code postal de Saint-Gérand-le-Puy est le 03150 et son maire est M Xavier CADORET.