Olá, você pode conferir a Discourse API gen
Você encontrará facilmente a API que precisa nesta gem, então não terá que implementá-la separadamente.
Se você ainda precisar de suporte pago, nos avise e moveremos o tópico para o Marketplace para que pessoas interessadas possam entrar em contato com você.
O método GET sempre possui uma string de consulta (query string) e nunca possui dados de envio (post data) — é por isso que você está recebendo o erro 413 “payload too large” (corpo da solicitação muito grande), pois ele não espera nenhum dado. Ao consultar dados de um servidor sem realizar alterações, você (quase) sempre usará GET e não POST. Portanto, você deve usar params= em vez de data=.
Acho que a documentação para essa chamada específica da API está mal redigida (“Request Body schema” realmente indica o envio de dados POST), então estou movendo isso para Contribute > Bug e você não precisa me pagar nada.