Zabaleta spent the last three years of his career at West Ham United but left the London Stadium following the expiration of his contract at the end of the 2019/2020 season.
Zabaleta spent nine seasons with Manchester City after joining the club from Spanish La Liga side Espanyol in the summer of 2008.
He made 333 appearances in all competitions for the Citizens, winning two Premier League titles, one FA Cup and two League Cups.
"After 18 years as a professional footballer I took the decision to retire from playing football," Zabaleta said in a social media post.
"These have been wonderful years that gave me the opportunity to enjoy unique and unforgettable moments.
"Forever I will thank all the people that shared the journey with me; clubs, team-mates, coaches and in particular my family and all my friends.
"With a lot of emotions I leave behind one of the best stages of my life. Thank you, from the bottom of my heart!"
Zabaleta was capped 58 times by the Argentina national team and was part of the squad that lost the 2014 FIFA World Cup final to Germany. He also won gold with Argentina at the 2008 Olympic games in Beijing.