The
headwaters of the river are in the
Nimba Range of the
Guinea Highlands in the country of
Guinea and flow south towards the border with Liberia. Near Yalata, Guinea it begins to form the border between Guinea and
Bong County in Liberia. Flowing generally south, it forms the international boundary for around 9.6 km (6 miles). At Niatande, Liberia, it meets the
Mani River and enters Liberia, forming the boundary between Bong and
Nimba counties. The river then flows to the southwest for approximately before turning to the southeast for a stretch. Near Zahn it takes the smaller
Yah river, and turns southwest again. After about it begins to form the boundary between Bong and
Grand Bassa counties and turns west for about 16 km (10 miles). The river then continues to the southwest, and after approximately it enters Grand Bassa County. After around it turns south for and then flows back to the southwest for approximately 16 km (10 miles). Near Shoigabli it turns due south for about where it passes
Mount Finley and turns more westerly and flows generally southwest for another 14.5 km (9 miles). Between Zoblum and Alfabli the Saint John widens and flows to the northwest for around before heading west for a mile to Hartford. The river then dives to the southwest for its final 10.5 km (6.5 miles). Here it receives the Mechlin and Benson rivers as it empties into the Atlantic Ocean near
Edina and
Buchanan. ==Details==