Saint-Gérand-le-Puy (Sant Gerand en occitan) est une commune française, située dans le département de l'Allier en région Auvergne-Rhône-Alpes.