Panjang Batang Agam adalah 15,6 kilometer. Hulunya dari Simarosok, Kecamatan Baso, Kabupaten Agam, dan satu lagi berhulu di Sungai Janiah, Kabupaten Agam. Sebagian besar alirannya melalui Kota Payakumbuh. Di Kota Payakumbuh, Batang Agam melintasi 11 kelurahan pada 4 kecamatan. Ujung sungai ini bermuara ke Batang Sinamar di Nagari Bukit Limbuku, Kecamatan Harau, Kabupaten Lima Puluh Kota. Di Kota Payakumbuh, Batang Agam melintasi bermacam jenis kawasan. Masyarakat Kota Payakumbuh membangun permukiman di tepi sungai. Sedangkan pemanfaatan airnya untuk pertanian, perikanan, pariwisata, dan pertambangan.[3]