只允许某些非管理员发送私人消息

是的,您确实需要锁定信任级别。

由于 Discourse 的设计方式,所有功能都可以通过 API 访问。