Le canton n° 12 (Saint-Bonnet-en-Champsaur) comprend les communes suivantes : Ancelle, Aspres-lès-Corps, Aubessagne, Buissard, Chabottes, Champoléon, La Chapelle-en-Valgaudémar, La Fare-en-Champsaur, Forest-Saint-Julien, Le Glaizil, Laye, La Motte-en-Champsaur, Le Noyer, Orcières, Poligny, Saint-Bonnet-en-Champsaur, Saint-Firmin, Saint-Jacques-en-Valgodemard, Saint-Jean-Saint-Nicolas, Saint-Julien-en-Champsaur, Saint-Laurent-du-Cros, Saint-Léger-les-Mélèzes, Saint-Maurice-en-Valgodemard, Saint-Michel-de-Chaillol, Villar-Loubière.
Le bureau centralisateur de ce canton est le bureau centralisateur de la commune de Saint-Bonnet-en-Champsaur.