Как синхронизировать изменение данных между сайтом и c# приложением?
Есть всего пара вариантов и их комбинация - постоянное соединение и непостоянное.
Если данных новых долго нет, можно рвать постоянное. Понятие долго может меняться.
Что именно это будет - сокет, вебсокет - вопрос реализации и дополнительной нагрузки.
Зачем веб сайт только не ясно.Кросс ориджин и броузер можно обращаться к апи сразу,если они на разных хостах.
Вам нужны веб сокеты. Я не знаю как на php, но на C# есть хорошая библиотечка SignalR, она как раз и способна заниматься обновлением данных на клиенте, если происходят какие-то изменения в данных на сервере. Она как раз является оберткой над веб сокетами.