Sim, do navegador. Desculpe se não fui claro. Tudo isso está acontecendo a partir de outro webapp, o usuário não está logado e não há iframing do discourse. A solicitação se origina de um navegador passando a apikey como parâmetros de solicitação
Meu entendimento de apikeys é que, uma vez que temos a apikey do usuário, podemos agir em nome dele de qualquer lugar, mesmo de um console/terminal (curl ou equivalente). Chega de CORS