/phone/call_history Missing Calls That Exist in /call_logs/{id} and Match end_time Range

Endpoint:

GET``https://api.zoom.us/v2/phone/call_history

Reference:

https://developers.zoom.us/docs/api/rest/reference/zoom-phone/methods/#operation/phoneCallHistory


Description

We are encountering an issue where some valid Zoom Phone calls:

  • appear in the Zoom admin UI

  • are fully retrievable using

    GET /v2/phone/call_logs/{callId}

  • have end_times that fall inside the queried fromto window

  • meet the expected filters (connect_types=external, call_results=answered,connected)

but do NOT appear in the /phone/call_history search results unless the time window is expanded significantly.

This creates a situation where the same call appears:

  • in the Zoom UI

  • in /call_logs/{callId}

  • in a wider call_history search window

but is missing from the correct call_history search window.

This suggests a possible inconsistency in how /phone/call_history indexes or filters calls, potentially applying start_time bucketing even when time_type=end_time is used.


Error / Issue

A specific call (ID anonymized as CALL_ID_A) with:

  • start_time: 2025-10-24T21:56:46Z

  • end_time: 2025-10-24T22:13:58Z

is missing from the expected search window, even though its end_time clearly falls within the fromto range.

The call only appears if the window is greatly widened.

We have confirmed this behavior with multiple call IDs.

Actual IDs can be provided privately to Zoom Support.


How To Reproduce

1. Request URL (call NOT returned)

This request should include CALL_ID_A based on its end_time, but it does not:

GET /v2/phone/call_history
?from=2025-10-24T22:12:19Z
&to=2025-10-24T22:29:24Z
&connect_types=external
&call_results=answered,connected
&time_type=end_time
&page_size=300

Expected:

CALL_ID_A should appear.

Actual:

CALL_ID_A is missing.


2. Request URL (call IS returned)

When the time window is widened substantially, the same call appears:

GET /v2/phone/call_history
?from=2025-10-24T21:13:46Z
&to=2025-10-24T22:54:08Z
&connect_types=external
&call_results=answered,connected
&time_type=end_time
&page_size=300

Actual:

CALL_ID_A shows up in results.


3. Direct lookup always succeeds

GET /v2/phone/call_logs/{CALL_ID_A}

The call appears here every time, confirming the call definitely exists and is recorded correctly.


Authentication Method / App Type

  • Server-to-Server OAuth

  • Scopes:

    • phone:read

    • phone_call_logs:read


Summary

There appears to be a possible inconsistency in the /phone/call_history endpoint, where calls:

  • are valid

  • exist in the Zoom UI

  • are retrievable via /call_logs/{callId}

  • have end_times inside the requested window

  • match filters

but fail to appear unless the time window is widened significantly.

This may indicate:

  • indexing based on start_time instead of end_time, or

  • filter processing that excludes valid results, or

  • another underlying search issue.

We are happy to provide the exact call IDs and full API responses privately.


Our Questions:

1. Why is /phone/call_history failing to return calls whose end_time clearly falls within the requested fromto range?


2. Does the /phone/call_history endpoint internally index calls by start_time even when time_type=end_time is provided?


3. Are filters such as connect_types=external or call_results=answered,connected applied before the time filter?


4. Is there a known delay, lag, or eventual-consistency behavior between /call_logs/{callId} and /call_history indexing?


5. Does the time_type=end_time flag guarantee that calls are filtered strictly by end_time?


6. Under what scenarios can /phone/call_history omit valid calls that appear in /call_logs/{callId} and the Zoom UI?


7. Is Zoom aware of any open bugs or known issues with /phone/call_history filtering or search behavior?


1 Like

Hi @dashboard-dev
Thanks for reaching out to us and for sharing such detailed message.
I will review this information and consult internally with the right team to get you feedback