I've scavenged everywhere and found no practical solution. So I'm coming here hoping that Zoho People team will take my suggestions into consideration.
Firstly, when fetching records using getRecords method in the Leave module, we are unable to search based on the Approval Status, which is mind-boggling considering in the response, "ApprovalStatus" is part of it.
Then, the response data is insufficient. For example, there's no "Type" for the leave listed. "Type" here meaning "Paid" or "Unpaid". The only way to get it is to use "Get Leave Types API" which is user-specific, not from the list of all leaves. It means, we would have to run this method only to get the "Type" information. It doesn't help that there is an API limit per minute. What if there are many employees involved and the function exceeds it in a run? This severely limits Zoho People capability to be integrated with another third-party application, especially a payroll application.
So, my suggestion is, in getRecords or getRecordById for the Leave module, make it so the "Type" information is displayed there. This would eliminate the need to get that information somewhere where it is really hard to find. If there is any other way, do enlighten me, if not, please take this feedback seriously and know that this is hindering Zoho People from being integrated to payroll services.