Alguns endpoints não exigem autenticação, praticamente qualquer outra coisa exigirá que você esteja autenticado. Para se autenticar, você precisará criar uma Chave de API no painel de administração.
Isso é uma pena, porque há muitos usos legítimos da API
que usuários comuns poderiam utilizar, não apenas administradores.
Por exemplo, um cronjob mensal que um usuário poderia configurar para baixar seu
preferences.json em vez de clicar em Download em Preferências
(Backup/export/import Preferences).
Estou dizendo que uma mudança no código-fonte é necessária, para que em breve usuários de todo o mundo possam acessar a API do Discourse local que estão usando, para obter seus dados pessoais, etc.
No entanto, sem o apoio de administradores e um endpoint aprovado nas configurações do site de chaves de API do usuário, “usuários regulares” ainda não podem gerar suas próprias chaves de API.
Essa resposta está incorreta. Qualquer usuário pode gerar uma chave de API de usuário se a geração de chaves de API de usuário estiver habilitada para o nível de confiança do usuário. Se você não definir um redirecionamento na carga útil da solicitação, ele exibirá uma resposta codificada em base64 no navegador que contém a chave.
Veja este tópico para um script que mostra como isso é feito.
Estou pensando no caso padrão em que a pessoa A instalou o Discourse, e a pessoa B é apenas um usuário simples no Discourse da pessoa A, e A não alterou nenhuma configuração de administrador, a pessoa B ainda poderia fazer muito com a API?
A geração da chave de API do usuário está habilitada para todos os usuários por padrão, e tudo o que você pode fazer pela interface web você pode fazer pela API, pois a interface web é apenas um frontend para a API.
Eu pessoalmente a uso em uma extensão no Chrome que mantém um total em execução de todas as minhas notificações não lidas em todas as instâncias em que tenho contas, com algumas exceções.
Se um usuário já possui uma conta em uma instância do Discourse, ele poderá usar a mesma autenticação de cookie do navegador em quaisquer solicitações de API não relacionadas ao navegador.