# Zoom Phone Usage Report (By Users) – API fields to match UI export

**URL:** <https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299>\
**Category:** API and Webhooks\
**Tags:** phone, api-requests, api\
**Created:** [March 4, 2026, 8:09pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299 "2026-03-04T20:09:05Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 4, 2026, 8:09pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/1 "2026-03-04T20:09:05Z")

</div>

Hello,

I am an admin trying to replicate the Zoom Phone UI report:

Phone System → Reports → Usage Reports → Usage → By Users

When exporting the report from the UI, the CSV includes columns like:

• Total Calls  
• Missed  
• Avg Call Time  
• Total Call Time  
• Total Hold Time

I am currently using the API endpoint:

GET /v2/phone/call\_logs

with pagination and aggregating results by extension/user.

However, the totals do not exactly match the UI export. For some users:

• Completed calls appear as 0 even though total call time exists  
• Total call time differs slightly from the UI report  
• Some calls may be counted differently (possibly call legs, transfers, or queue calls)

Could you please clarify:

1. Which API field corresponds to the UI “Total Call Time”?
2. How does the UI determine “Completed Calls” vs “Missed”?
3. Does the UI filter out transfer legs or queue legs?
4. Is there an API endpoint that directly returns the same data as the “Usage → By Users” report?

Example extensions where mismatches occur:  
• 5392  
• 9849

Thank you.

---

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 10, 2026, 3:23pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/2 "2026-03-10T15:23:53Z")

</div>

Hi Zoom Developer Support team, following up on this request.

We moved from call-log aggregation to GET /v2/phone/reports/usage/users for weekly KPI automation and now match almost all rows with the Zoom UI export (“Usage → By Users”).

Remaining variance is very small:

- 2 users differ by 1 call

- 1 user differs by 1.54 minutes

- all others match

Could you confirm:

1. Which API field is the exact source for UI “Total Call Time” in Usage → By Users?

2. Are transfer legs / queue-related legs counted differently in UI vs API?

3. Is there any documented normalization applied in UI export that is not in API response?

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [March 16, 2026, 2:29pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/3 "2026-03-16T14:29:12Z")

</div>

HI @Vamsi_Krishna  
Thanks for reaching out to us and welcome to the Zoom Developer Forum.  
Can you please make sure you are using the right enpdoint to pull call history.  
We have deprecated the Get/v2/phone/call\_logs endpoint a while ago, and you should be using the Get account’s call history endpoint instead (phone/call\_history)

Here is a migration guide that will help you migrate [Migrate Zoom Phone Call Log APIs to Call History - Phone - Zoom Developer Docs](https://developers.zoom.us/docs/phone/migrate/)

Now to help answer your questions:

> 1. Which API field is the exact source for UI “Total Call Time” in Usage → By Users?

You should be able to get the right data for each user by using the [Get user’s call history endpoint](https://developers.zoom.us/docs/api/phone/#tag/call-logs/get/phone/users/%7BuserId%7D/call_history). You will need to look into different fields to get the total call time, and define what you need or want to see, by using the fields “start\_time”, “answer\_time” and “end\_time”

> 1. Are transfer legs / queue-related legs counted differently in UI vs API?

I don’t believe so, you should be able to find the call elements /legs for each call using this endpoint riqht here:

> **[Phone APIs - API - Zoom Developer Docs](https://developers.zoom.us/docs/api/phone/#tag/call-logs/get/phone/call_history/%7BcallHistoryUuid%7D)**
>
> You can access information from Zoom with Zoom Phone APIs to build private services or public applications on the Zoom App Marketplace.

> 1. . Is there any documented normalization applied in UI export that is not in API response?

The UI and the API might not be mirrored and 100% the same, so you will need to look throught the API specs and define what you need/want to create your own reporting tools

---

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 16, 2026, 4:25pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/4 "2026-03-16T16:25:50Z")

</div>

Hi Elisa,

Thanks for the clarification.

Understood on the deprecation of `/v2/phone/call_logs` and the recommendation to use call history endpoints for raw call-level data.

One follow-up question from our side: for the Zoom UI export under `Phone -> Usage -> By Users`, which API endpoint is the closest source to that export specifically?

In our testing, aggregating `call_history` is still producing small differences compared with the UI export, while `phone/reports/usage/users` appears much closer to the exported totals.

Could you please confirm which endpoint should be treated as the closest API equivalent of the `Usage -> By Users` UI report?

Thanks.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [March 17, 2026, 9:04pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/5 "2026-03-17T21:04:42Z")

</div>

Hi @Vamsi_Krishna  
Where do you find the Zoom UI export you mentioned? phone → usage → by users  
I am not able to locate it

If you find less discrepancies with the phone/reports/usage/users endpoint then I would recomend you use that report API to get your data and you could potentially enrich it with the phone/call\_history endpionts

---

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 25, 2026, 2:32pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/6 "2026-03-25T14:32:19Z")

</div>

Hi Elisa,

Thanks, this helps.

Yes, our current implementation is already using GET /phone/reports/usage/users as the primary source, and only using phone/call\_history as supplemental/fallback detail.

We are still seeing differences between the Zoom export used by the business and the API output for the same weekly window. For example, for 2026-03-15 to 2026-03-21:

- one sales rep shows 214 calls and 3:15:31 in the Zoom export, while the API output shows 234 calls and 3:41:29

- another sales rep shows 196 calls and 3:36:59 in the Zoom export, while the API output shows 216 calls and 4:07:27

We also see the gap at the overall report level, not just on individual rows.

So we will continue using phone/reports/usage/users as the closest available API source, but wanted to share that the discrepancy still exists at both row and total-report level.

Thanks again.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [March 25, 2026, 3:19pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/7 "2026-03-25T15:19:41Z")

</div>

Thanks for sharing those details @Vamsi_Krishna  
Just as a last suggestion, have you tried going into the UI \> Admin \> Phone system Management \> Call logs and filter by date? this should give you the same data than the API

---

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 25, 2026, 3:44pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/8 "2026-03-25T15:44:45Z")

</div>

Hi Elisa,

Thanks again, this is helpful.

Understood that the Call Logs UI aligns to the raw call-history API family, and that we could build our own summarized reporting from that raw data.

Our main question now is: if we wanted to reproduce the Zoom user-level summary behavior from raw call history, could you clarify the counting rules used by Zoom for that summary?

Specifically:

1. Which raw call-history events contribute to Total Calls

2. Which fields should be used to derive Total Call Time

3. Whether rejected, unconnected, missed, or answered-by-other calls are included

4. How transfer legs and queue-related legs are treated

5. Whether the user summary report applies any internal normalization or filtering beyond the raw call-history data

That would help us understand whether it is possible to reproduce the same summary behavior consistently from raw data.

Thanks.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [March 25, 2026, 6:46pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/9 "2026-03-25T18:46:44Z")

</div>

Hi @Vamsi_Krishna  
To get useres call history, you should be able to use the Get user’s call history endpoint here: [Phone APIs - API - Zoom Developer Docs](https://developers.zoom.us/docs/api/phone/#tag/call-logs/get/phone/users/%7BuserId%7D/call_history)

In the response body of this endpoint, you will see fields such as talk time, hold time, wait time and others.

you should also be able to see the result of the call, like answered, missed etc.

This endpoint should be able to help you get that data

---

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 25, 2026, 7:09pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/10 "2026-03-25T19:09:54Z")

</div>

Hi Elisa,

Thanks, this is helpful.

To clarify our use case, the business is currently using the manual Zoom UI path shown in the attached screenshot:

Reports \> Usage Reports \> Phone System \> By Users

and we are trying to automate that same weekly KPI reporting through the API.

Right now, we are using phone/reports/usage/users as the closest available source for that user-level summary view, while using call history only as supplemental detail when needed.

We understand that the user call history endpoint provides raw fields such as talk\_time, hold\_time, wait\_time, and call result. Our question is whether the By Users summary can be reproduced from those raw fields using a defined set of rules.

Could you please clarify:

1. which call results count toward total calls

2. which duration fields contribute to total call time

3. how transfer legs, queue legs, and answered-by-other events are treated

That would help us determine whether we should continue using the report endpoint as the closest source, or build a custom summary from raw call history.

Thanks.

---

<div class="post-metadata">

**Author:** ![elisa.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/elisa.zoom/32/47836_2.png) [@elisa.zoom](https://devforum.zoom.us/u/elisa.zoom)\
**Post date:** [March 26, 2026, 8:50pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/11 "2026-03-26T20:50:02Z")

</div>

Thanks @Vamsi_Krishna  
I see what you mean. I think the report endpoint will provide you more info on what you need then.

To get duration of the call you will need to calculate the times using various fields such a start\_time, answer\_time and end\_time

To get all the transfered legs, you will have to then use the [Get call history endpoint](https://developers.zoom.us/docs/api/phone/#tag/call-logs/get/phone/call_history/%7BcallHistoryUuid%7D) to get the specific details of each call

---

<div class="post-metadata">

**Author:** ![Vamsi\_Krishna](https://avatars.discourse-cdn.com/v4/letter/v/a8b319/32.png) [@Vamsi\_Krishna](https://devforum.zoom.us/u/Vamsi_Krishna)\
**Post date:** [March 30, 2026, 3:40pm UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/12 "2026-03-30T15:40:57Z")

</div>

Hi Elisa,

Thanks for the clarification and guidance .

Based on our testing, the report endpoint is the closest match for our weekly user-level summary use case. It is matching most of the report, although we still see occasional small differences in a few rows, so it does not appear to be a guaranteed 100% match to the UI export in every case.

We’ll proceed with the report endpoint as the primary source and use call history only as supplemental detail where needed.

Thanks again.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [April 1, 2026, 4:47am UTC](https://devforum.zoom.us/t/zoom-phone-usage-report-by-users-api-fields-to-match-ui-export/142299/14 "2026-04-01T04:47:00Z")

</div>

Closed on April 1, 2026, 4:47am UTC

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.
