Use o backend para fazer a chamada:
- se você precisar que isso seja seguro,
- se precisar que o backend processe o resultado,
- se a(s) chamada(s) puderem ser de longa duração.
Se for de longa duração, coloque em um Job.
Isso exigirá algum Ruby em um Plugin e uma das gems mencionadas acima.
Não é necessariamente tão fácil entrar no desenvolvimento de plugins do Discourse; é uma plataforma grande, complexa e com opiniões próprias, mas há bons guias oficiais aqui e MUITOS plugins de código aberto existentes para analisar (veja #plugin e links para o GitHub). Tente encontrar um que faça algo semelhante e veja como isso é resolvido no código.
Se for superficial, considere um Componente de Tema. Consulte os Guias de Desenvolvimento de Temas aqui.
Veja exemplos, como este: discourse-tc-quote-of-the-day/get-quote.js.es6 na master · merefield/discourse-tc-quote-of-the-day (github.com)