Single rest api to power module record analytics

I have a module Lead
I have following field in this module:

  1. name
  2. source (specific option fields from select type field)
  3. channel (specific option fields from select type field)
  4. phone_number
  5. amount
  6. call_status (option of answered, missed if channel=‘Call’)
  7. lead_time
  8. appointment_status (unscheduled, scheduled, completed)
  9. location

I have to power a dashboard with filter option of multi select location, date range (lead_time)

for selected filter I have to provide with the following chart metrics:

  1. Lead count per source, per channel

  2. Sum of Lead amount per source

  3. Lead Conversion Count (appointment_status non empty) per source, per channel

  4. Tracked Leads Count (Leads with phone_number non empty)

  5. Call Status count per source where channel=‘Call’
    i.e Answered count, Missed count

  6. Also I have to group by bucket size from user input option of (week, month, day, year) for by grouping bucket on column lead_time :
    I. Total Lead Count per bucket
    II. Tracked Lead Count per bucket (Leads with phone_number non empty)
    III. Total Lead Conversion count per bucket (appointment_status non empty)
    IV. Total Lead production per bucket sum(amount) per bucket

How can I power these metrics in single API call if not possible how to minimize the API calls for these metrics independent of each Section