Zabaleta confirmed on Twitter that he is hanging up his boots after an 18-year professional career in which he won two Premier League titles.
"These have been wonderful years that gave me the opportunity to enjoy unique and unforgettable moments," he said.
"Forever, I will thank all the people who shared the journey with me; clubs, team-mates, coaches and in particular my family and all my friends."
The right-back began his Premier League career in the summer of 2008 when he moved to Man City from Espanyol.
He went on to captain the club and was an integral part of the 2011/12 and 2013/14 title-winning teams, scoring the opening goal in the final-day 3-2 victory over Queens Park Rangers in May 2012 that earned Man City the Premier League Trophy for the first time.
After nine years at the Etihad Stadium he joined West Ham and in January 2020 he became the first player from Argentina to reach 300 Premier League appearances.
Zabaleta departed West Ham at the end of last season and retires from football with a Premier League record of nine goals, 21 assists and 86 clean sheets in 303 matches.