Pēterupe ietek Rīgas līcī Saulkrastos, tā tek pa Limbažu un Rīgas rajonu. Upes garums ir 46 km, upes baseins ir 155 kvadrātkilometri un atrodas Idumejas augstienē Viduslatvijas un Piejūras zemienē. Pēterupe sākas kā nepilnus 2 m dziļš grāvis tikai 0,5 km no Aģes iztekas. Sākumā Pēterupe tek Dienvidu virzienā, tad apliec lielu pusloku, mainot virzienu no Dienvidiem uz Ziemeļiem. Šajā posmā upes gultne ir regulēta un no labā krasta uzņem vairākus grāvjus, kas tek no Laugas purva puses, bet no kreisā krasta Pēterupē ietek Tarupe. Lejpus labās pietekas Vācurgas Pēterupe līkumo pa labi izteiktu ieleju, kur lielākā krasta pieteka ir Ežurga. Lejtecē pirms ietekas jūrā Pēterupe aptuveni 1 km tek paralēli krastam starp priekškāpu un stāvo pamatkrastu.