I notice there’s a API to get a the top topic list. Discourse API Docs
And I can define what is the “top” list by changing the formula multiplier in the admin panel.
My question is that, is there a way I can query for a different “top” list without changing the parameter in the admin panel?
for example, query for the most likes topic list and most views topic list at the same time.
No that is not possible. The /top route doesn’t accept any parameters like that. Those settings apply sitewide for all users and can’t be customized per request.
I would suggest using multiple Data Explorer queries to get the data you are after:
Once the queries are setup, they can be executed via the API.