Навесні 2004 захищав кольори першолігового «Борекса-Борисфена» з Бородянки, після чого повернувся до бориспільської команди. Здебільшого грав у складі команди дублерів «Борисфена», а 16 червня2005 року дебютував в іграх вищої ліги чемпіонату України, вийшовши на заміну у матчі проти запорізького «Металурга». За результатами сезону 2004-05 «Борисфен» полишив вищий дивізіон, наступного сезону команда грала в першій лізі і гравець почав регулярно долучатися до її основного складу.
На початку 2006 року перейшов до вищолігового донецького «Металурга», в якому провів наступні 3,5 роки. Проте, до основного складу команди Сапай пробитися не зміг і виступав здебільшого у першості дублерів.
У серпні 2009 року приєднався до команди першої ліги алчевської «Сталі»[1], в якій відразу ж отримав місце в основі.
Перед початком сезону 2010/11 перейшов до вищолігової київської «Оболоні», в якій відразу ж став основним гравцем захисту команди. 9 липня 2010 року дебютував в основному складі «броварів»[2]. Протягом першого кола чемпіонату 2010/11 в усіх матчах команди виходив на поле у стартовому складі. За підсумками сезону 2011/12 «Оболонь» вилетіла з Прем'єр-ліги і Сапай покинув команду.
Влітку 2012 року підписав контракт з полтавською «Ворсклою»[3]. У команді взяв 23 номер. 15 липня2012 року дебютував у складі «Ворскли» у матчі проти криворізького «Кривбасу»[4]. 28 травня 2017 року зіграв свій 100-й матч у складі «Ворскли», відігравши в основі весь матч проти «Дніпра»[5]. З командою став бронзовим призером чемпіонату у сезоні 2017/18 та фіналістом Кубка України 2019/20.