RFC 7231 sugere que uma requisição com um cabeçalho Accept ausente deve ser tratada como */*, mas acessar o endpoint POST da API para uma consulta do Data Explorer sem esse cabeçalho retorna 406 Not Acceptable. Não tenho certeza se isso é específico do Data Explorer ou se se aplica a outros POSTs também. Todas as outras requisições GET que usei não tiveram esse problema.
Acontece que o curl e a biblioteca requests do Python adicionam Accept: */* a todas as suas requisições por padrão, mas nem todas as ferramentas fazem isso. Você pode ver esse comportamento desativando o padrão do curl com um cabeçalho vazio, por exemplo:
curl -X POST "https://discourse.example.com/admin/plugins/explorer/queries/26/run" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: <sua_chave_de_api_para_todos_os_usuarios>" \
-H "Api-Username: system" \
-H "Accept:"
Não é algo grave, mas pode ser algo que outras ferramentas também encontrem… e parece que poderia ser uma correção simples, especialmente porque todos os outros endpoints que usei funcionam sem isso.