Saint-Flour est une commune du département Cantal, en Auvergne-Rhône-Alpes, avec 6 391 habitants — les Sanflorain, Sanfloraine. Sur 27,0 km² de territoire, la densité atteint 236 habitants au km², à une altitude moyenne de 883 m. La commune fait partie de l'intercommunalité CC Saint-Flour Communauté. Saint-Flour est reconnue par les labels Petite Ville de Demain.
La population est en recul (-3,5 % en 10 ans). Le revenu médian s'établit à 21 380 € par an et par unité de consommation, avec un taux de pauvreté de 14,0 %. Le taux de chômage local est de 9,4 %, dans la moyenne nationale. 736 entreprises actives structurent le tissu économique local.
Côté immobilier, comptez en moyenne 1 441 €/m² pour une maison et 1 886 €/m² pour un appartement (données DVF). Le climat est frais (moyenne annuelle de 8,8 °C). Patrimoine local : 33 monuments historiques et 2 musées. 18 établissements scolaires présents sur la commune.