GET/POST реализовать не проблема, а вебсокеты я не понимаю зачем тут? Да и прежде всего надо хоть как-то утвердить json вернёт или xml, а может оба. И API надо делить на две части, публичное и пользовательское. Для пользовательской определится с авторизацией. Нужны какие то договорённости, иначе будет каша ещё та. Ну как минимум надо описать это API, список запросов которые люди хотели бы видеть.
Чтобы снизить нагрузку на сервер и иметь возможность в реальном времени добавлять новые сообщения в DOM.
Естественно, нужен JSON, в задницу это говно нечитаемое, которое какие-то дегенераты придумали и назвали XML!
Авторизация/аутентификация решается элементарно (сохраняем в local storage или даже печеньках идентификатор сессии). Просто пароль/логин передаем по https, а потом уже работаем с http.
Список запросов давно уже предлагали. Их не так уж и много: возможность получать/изменять данные в профиле, получать список разделов, список последних N тем раздела, список тем за интервал времени от T1 до T2, ОП-пост темы, список последних N сообщений темы, список сообщений темы за время от T1 до T2, список сообщений со времени последнего визита, список уведомлений.