Understand Zoom Phone call logs
On June 18th, 2025, Zoom Phone will sunset these call log APIs: Get account's call logs and Get call log details. For more information, see Zoom Phone call log deprecation.
To understand inbound calls, you can use these APIs to retrieve call log information:
- Get account's call logs
- Administrator-level API that shows all call logs on the account
- Available to account-level OAuth apps with
phone:read:adminscope
- Get call log details
- Administrator-level API that shows logs about a call
- Available to account-level OAuth apps with
phone:read:adminscope
- Get user's call logs
- User-level API with a user-centric response
- Available to account-level OAuth apps with
phone:read:adminscope, and user-level OAuth apps withphone:readscope
These APIs provide the details to properly analyze and report on your Zoom Phone call data.
Note: The response to Get user's call logs focuses on the user's perspective. As a result, it does not always contain all the information about a call for certain events before a specific user received the call.
To address full call accounting and analytics, we'll discuss Get account's call logs and Get call log details.
Get account's call logs
Get account's call logs returns a JSON array with the top-level data for each call record. For outbound calls, the top-level data is generally the entire call. However, for inbound calls, the top-level data might show only a small fraction of how the call routes in the Zoom Phone platform.
Many different call flows can occur in the Zoom Phone platform. Here are some of the more common call flows:
Call flow 1
- A user places an outbound call.
Call flow 2
- A user's direct phone number receives an inbound call.
Call flow 3
- The auto receptionist receives an inbound call.
- A caller dials a user's extension.
- The user answers the call.
Call flow 4
- A call queue receives an inbound call.
- The call routes to the users.
- A user answers the call.
Call flow 5
- The auto receptionist receives an inbound call.
- A caller selects from a phone menu.
- The call routes to a call queue.
- The call routes to the users.
- A user answers the call.
Call flow 6
- A shared line receives an inbound call.
- A user answers the call.
The call flows for 3, 4, 5, and 6 route calls through multiple components in Zoom Phone. To see all of the call details for call workflows such as these or others, you must query the Get call log details API for each call. This API returns a detailed response with the subsequent components that routed the call.
Get call log details
Get call log details queries the Zoom Phone platform for details about a particular call.
The response contains data such as the call queue that routed the call, the users who were offered the call, and the specific user that answered the call.
To query Get call log details, you need to provide the CallID or callLogId from either a webhook event or the response from Get account's call logs.
Analyze call logs
Here's an example of how to analyze call logs with Get account's call logs and Get call log details.
Let's say we have a call flow shown below:
- An external caller dials into a phone number assigned to an auto receptionist named Marketing Hotline.
- The external caller makes a menu selection on the auto receptionist that routes the call to a particular call queue named Marketing Queue.
- The call queue has rotating distribution and routes the call to a group that contains five users.
- The call first rings to user Ji Won Lee, but Ji Won isn't able to answer the call.
- The call then rings to user Rosario Ramirez. Rosario answers the call.
Let's take a look at the APIs that we can use to gather the data associated with the above call flow.
1. Use Get account's call logs to find the call
Example Request
GET https://api.zoom.us/v2/phone/call_logs
Response
{
"next_page_token": "565fdfgs4645",
"page_size": 30,
"total_records": 120,
"from": "2021-05-10",
"to": "2021-05-11",
"call_logs": [
{
"id": "dcasgfdd-gfb0-4ea7-8dc0-c96rer34d7",
"call_type": "voip",
"caller_number": "+16695551234",
"caller_number_type": 2,
"caller_location": "San Jose, CA",
"callee_number": "150002",
"callee_number_type": 1,
"callee_name": "Marketing Hotline",
"direction": "inbound",
"duration": 12,
"result": "Call connected",
"date_time": "2021-05-11T23:11:44Z",
"path": "autoReceptionist",
"site": {
"id": "W454_mIgsdia4-Yn53334Hw",
"name": "Headquarters"
},
"call_id": "696165649876346057",
"owner": {
"type": "autoReceptionist",
"id": "4KL1uortyet5644boSbtEw",
"name": "Marketing Hotline",
"extension_number": 150002
},
"answer_start_time": "2021-05-11T23:11:44Z"
}
]
}
From the above response we can see the information about the caller, and that the caller dialed into the Marketing Hotline auto receptionist.
Since we know this is an auto receptionist call, we know there is usually more information than we can see from Get account's call logs. Let's query Get call log details for this particular call with call_id 696165649876346057 to get more information.
2. Query Get call log details
Use the call_id from the above example to query Get call log details.
Example Request
GET https://api.zoom.us/v2/phone/call_logs/696165649876346057
Response
{
"answer_start_time": "2021-05-11T23:11:44Z",
"call_id": "696165649876346057",
"call_type": "voip",
"callee_name": "Marketing Hotline",
"callee_number": "150002",
"callee_number_type": 1,
"caller_location": "San Jose, CA",
"caller_number": "+16695551234",
"caller_number_type": 2,
"date_time": "2021-05-11T23:11:44Z",
"direction": "inbound",
"duration": 12,
"id": "dcasgfdd-gfb0-4ea7-8dc0-c96rer34d7",
"log_details": [
{
"answer_start_time": "2021-05-11T23:11:44Z",
"caller_location": "San Jose, CA",
"date_time": "2021-05-11T23:11:56Z",
"duration": 12,
"forward_to": {
"extension_number": "151006",
"id": "EzYX42345pQgfMA_U6UQ",
"name": "Marketing Queue",
"type": "callQueue"
},
"id": "4c6eree7-5b1e-4833-a672-b9234534b868",
"path": "callQueue",
"recording_id": "79b4147ad442354234239abd3633a5",
"recording_type": "Automatic",
"result": "Auto Recorded",
"site": {
"id": "W454_mIgsdia4-Yn53334Hw",
"name": "Headquarters"
}
},
{
"call_type": "voip",
"caller_location": "San Jose, CA",
"date_time": "2021-05-11T23:11:58Z",
"duration": 0,
"forward_to": {
"extension_number": "150001",
"id": "XnK5466456xPIzSg",
"name": "Ji Won Lee",
"type": "user"
},
"id": "9456434-6656f-4645-b912-cc3b5356a1",
"path": "extension",
"result": "Answered by Other Member",
"site": {
"id": "W454_mIgsdia4-Yn53334Hw",
"name": "Headquarters"
}
},
{
"answer_start_time": "2021-05-11T23:12:11Z",
"call_type": "voip",
"caller_location": "San Jose, CA",
"date_time": "2021-05-11T23:12:09Z",
"duration": 12,
"forward_to": {
"extension_number": "151011",
"id": "uK9clxm34534543lGCAOdA",
"name": "Rosario Ramirez",
"type": "user"
},
"id": "7453147a-d60c-4211-ab01-6b4545633a5",
"path": "extension",
"result": "Call connected",
"site": {
"id": "W454_mIgsdia4-Yn53334Hw",
"name": "Headquarters"
}
}
],
"path": "autoReceptionist",
"result": "Call connected"
}
3. Analysis results
Based on this response, we can now see that the caller entered a call queue named Marketing Queue.
The call rang on both Ji Won Lee's Zoom Phone devices and also for Rosario Ramirez' Zoom Phone devices.
Because the date_time for Ji Won was before Rosario, we know that Ji Won rang first and didn't answer the call. We know that Rosario ultimately answered this call because Rosario's result is "Call connected."