Grazie.
Sono riuscito a farlo con questo plugin, usando questa query:
--[params]
-- string :q_email
SELECT u.username FROM users u JOIN user_emails e ON u.id=e.user_id WHERE e.email = :q_email
E chiamandolo con lo script python:
import pydiscourse
client = DiscourseClient('https://forum.com', api_username='system', api_key='1234')
params = '{\"q_email\":\"' + str(email) + '\"}'
response = client._request('POST', '/admin/plugins/explorer/queries/{number}/run', params={\"params\":params}) # Sì, ci sono 3 parametri, ognuno dei quali rappresenta qualcosa di diverso. Buona pratica di hacking!
username=response["rows"]