The Bonaparte River starts high on the Silwhoiakun Plateau at an elevation of 4400 to 4800 feet, where numerous creeks and streams flow into the basin of Bonaparte Lake.
- from the outlet of the lake for about 11+ km the river runs northwest to the confluence with Machete Creek
- Machete Lake, Eagan Lake, Akehurst Lake, and Montana Lake all empty into Machete Creek which then flows downstream into the Bonaparte River
- for about 16+ km, the river then runs west and empties into Young Lake which is also fed by a number of other creeks
- Young Lake’s outlet is on the southwest end where the Bonaparte River resumes a southwest bearing
- after about 8+ km the Rayfield River joins the Bonaparte, carrying water from the Bridge Lake area
- for the next 46+ km, the river runs, west, then southwest, then south, joined by Clinton Creek, then Loon Creek (from Loon Lake)
- in the next 8+ km, the river runs south to meet Highway 97 south
- the road follows the river south past 20 Mile House, Hat Creek, the Bonaparte Indian Reserve and at 12+ km, Cache Creek
- the river winds around Elephant Hill and descends to the Thompson River over the last 10 km, meeting the river 2.3 km northeast of Ashcroft
The name “Bonaparte” probably came as a tribute to Napoleon Bonaparte, who died in 1821. The designation “Bonaparte River” first appeared on a map in 1827 as Riviere de Bonaparte. The Secwepemc name for the river was Kluhtows, which means “gravelly river.”
Water health studies show the water is mineralized but mostly clean above Clinton Creek, then Cache Creek where the influences of waste and run-off become a factor. At the Thompson River, the Bonaparte River finally merges with the Thompson and the collected waters move toward the Fraser River, eventually all the way to the Strait of Georgia.