The 37-year-old will not travel with the team for the remaining two ODIs of the series, which Zimbabwe has already conceded 0-3 to India.
"I was going to wait until my contract expired to call it a day but, yes, I've decided to retire from international cricket," Price told ESPNcricinfo.
"I won't be going with the guys to Bulawayo. I'm retired."
Price finishes his ODI career with 100 wickets in 102 matches along with the 80 scalps in 22 Tests. His Twenty20 wicket-count stood at 13 in 16 matches.
"Pricey's called it a day," Zimbabwe captain Brendan Taylor said.
"If he was going to play it was going to be here in Harare. We're going to miss his experience, but in saying that it does give our young spinners who are coming through a great opportunity," he added.