Should the password be plain text when creating a user through the API?

Desde que você esteja usando TLS, as senhas são enviadas criptografadas. Se você não estiver usando TLS, está em um trem rápido para o desastre, de qualquer forma.

Se você quis dizer “hash” em vez de “criptografada”, então não, essa não é uma configuração suportada, pois o mecanismo de hash usado dentro do Discourse não faz parte do contrato de interface pública e está sujeito a alterações a qualquer momento.

Bem, sim, mas se alguém tiver acesso ao seu laptop, pode simplesmente instalar um keylogger que capture a senha antes que ela passe por qualquer processo de hash. O modelo de ameaças de segurança do Discourse (e de cada aplicação web) inclui a estipulação de que o endpoint não está comprometido.