Limita con el cantón de Goicoechea por el norte, con el cantón de San José por el oeste, los cantones de Curridabat y La Unión por el sur y con el cantón de Cartago por el este por un pequeño fragmento, y cuenta con una extensión territorial de 15,16 km².​ Su cabecera es el distrito de San Pedro, con categoría de ciudad.