Gracias.
Logré hacerlo con este plugin, usando esta consulta:
--[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
Y llamándolo con el script de 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í, hay 3 params, cada uno representando algo diferente. ¡Buenas prácticas de hacking!
username=response["rows"]