Только этот пост: Creating a staged user with an API call - #8 by blake
Это вполне выполнимо. Посмотрите на Reverse engineer the Discourse API, и вы увидите, какой эндпоинт вызывает плагин discourse-assign.
Нет, не обязательно использовать системного пользователя. Вам нужен просто пользователь с достаточным уровнем доверия для создания и назначения тем.