Erro 403 durante múltiplas chamadas de API

Estamos utilizando as seguintes APIs para atualizar e suspender usuários, mas estamos recebendo erros 403. Poderia nos informar qual é a causa desse erro? Para sua informação, estamos usando a chave de API de um usuário administrador.

API de Suspensão

{{base_url}}/admin/users/316/suspend?api_key={{api_key}}&api_username={{api_username}}

CORPO DA SOLICITAÇÃO

{
    "suspend_until": "3020-04-17",
    "reason": "inactive"
}

Resposta - 403 Proibido

Atualização de e-mail

{{base_url}}/users/{username}/preferences/email?api_key={{api_key}}&api_username={{api_username}}

CORPO DA SOLICITAÇÃO

{
    "email": "discourse1@example.com"
}

Resposta - 403 Proibido

Você precisa colocar a chave da API no cabeçalho, não na URL.

Tentei também. Estou recebendo o mesmo erro 403 Forbidden com BODY-> [“BAD CSRF”]

As credenciais da API precisam estar no cabeçalho da solicitação. Você também precisa usar um hífen em vez de um sublinhado nos nomes dos campos do cabeçalho:

  • api_key precisa ser alterado para api-key (ou Api-Key)
  • api_username precisa ser alterado para api-username (ou Api-Username)

A regra é que os nomes dos campos do cabeçalho não são sensíveis a maiúsculas e minúsculas, mas você deve usar hífens, não sublinhados. (Eu aprendi isso da maneira difícil.) Dê uma olhada no exemplo no topo de Discourse REST API Documentation para ver uma solicitação de API formatada corretamente.