Auto Dialer API
- OpenAPI Version:
3.1.1 - API Version:
2
Servers
- URL:
https://api.zoom.us/v2
Operations
Get call history by ID
- Method:
GET - Path:
/dialer/call-histories/{callHistoryId} - Tags: Call History & Reporting
Retrieve call history for a call history ID.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:call_history:admin
Rate Limit Label: LIGHT
Parameters
callHistoryId required
- In:
path
Unique call history ID.
string
Responses
Status: 200 **HTTP Status Code:** `200` Successfully retrieved call history for the specified call history ID.
Content-Type: application/json
account_namestring— Account name, for contacts.amd_resultstring, possible values:"MACHINE", "HUMAN"— Answering Machine Detection result enum.auto_dispositionboolean— Whether the disposition was automatically assigned or manually set. - `true` - automatically assigned. - `false` - manually set.call_durationnumber— Call duration in seconds.call_history_idstring— The call history record's unique identifier.call_idstring— Unique identifier for the call that was made.call_list_deletedboolean— Whether the call list has been deleted.call_list_idstring— The call list's unique identifier.call_list_namestring— The call list's name.call_notestring— Notes or comments about the call.called_numberstring— Phone number that was called.calling_numberstring— Phone number used to make the call.companystring— Company name, for leads.complete_called_numberstring— Complete phone number with country code.create_timestring— Time when the call record was created, in UTC ISO 8601 format.dialer_statusstring, possible values:"UPCOMING", "DIALING", "CONNECTED", "CANCELED", "ENDED", "VOICEMAIL_SKIP", "DIALER_TREE_SKIP", "BUSY_CALL_SKIP", "DIFFERENT_TIMEZONE_SKIP", "VOICEMAIL_LEFT", "NO_NUMBER_TO_DIAL_SKIP", "CALL_LIMIT_BY_DAY", "CALL_LIMIT_BY_WEEK", "COUNTRY_LIMIT"— Call status enum.dialer_sub_statusstring, possible values:"CANCELED_BY_CALLER", "CANCELED_BY_CALLEE", "CALLED_BY_PBX", "ZP_ERROR", "ANSWER", "NOT_ANSWER"— Call sub-status enum.dispositionstring— Call disposition or outcome.disposition_deletedboolean— Whether the disposition has been deleted.email_addressesarray— List of email addresses associated with the contact.Items: emailstring— Email address.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL"— Type of email address.
external_idstring— The third-party UUID. This field is stored and returned as-is.meeting_idstring— Unique identifier of the associated meeting, if available.primary_namestring— The prospect's primary name.processing_analysisboolean— Whether call analysis is currently being processed.secondary_namestring— The prospect's secondary name.start_timestring— Time when the call started, in UTC ISO 8601 format.transcriptstring— Call transcript, if available.typestring, possible values:"UPCOMING", "CALLED", "SNOOZED", "HISTORY", "NO_CALL_LIST", "REMOVED", "CALL_BACK_INBOUND"— Record type enum.user_idstring— Unique identifier of the user who made the call.
Example:
{
"call_history_id": "WlLdbYT7R0uWWhJzjBmVVQ",
"primary_name": "Jill Chill",
"secondary_name": "Jill Chill",
"company": "GSW",
"disposition": "Connected - No interest",
"transcript": "[00:00] 16315423526: Your call has been forwarded to voicemail. The person you're trying to reach is not available. At the tone.\\n[00:05] 16315423526: Please record your message. When you have finished recording, you may hang up.",
"type": "HISTORY",
"user_id": "1W6kwwJQRL-1p9bsjdQvmw",
"call_list_id": "iY092GX9TbWfL54HnBxyPQ",
"account_name": "Facebook",
"calling_number": "+15165551212",
"called_number": "+1-631-555-1212",
"complete_called_number": "+16315551212",
"call_duration": 29,
"create_time": "2025-11-13T15:30:45Z",
"start_time": "2025-11-13T15:30:16Z",
"dialer_status": "ENDED",
"dialer_sub_status": "ANSWER",
"disposition_deleted": false,
"auto_disposition": true,
"meeting_id": "aa916cffb2ad4be9a85f0a9a915799c5",
"processing_analysis": false,
"call_note": "Prospect showed no interest.",
"call_id": "068b9f5120201001631",
"amd_result": "HUMAN",
"call_list_name": "test disposition",
"call_list_deleted": true,
"email_addresses": [
{
"email": "john.smith@example.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxxx-uyy-uuid"
}Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6150` <br> Call history not found with id: 068b9f5120201001631. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Get Call History
- Method:
GET - Path:
/dialer/call-history - Tags: Call History & Reporting
Retrieve call history with pagination and various filtering options. Supports filtering by user, call list ID, or call ID, but not all three simultaneously.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:call_history:admin
Rate Limit Label: LIGHT
Parameters
user_id
- In:
query
Filter by user ID or email (cannot be combined with call_list_id or call_id).
string
call_list_id
- In:
query
Filter by call list ID (cannot be combined with user_id or call_id).
string
import_from
- In:
query
Filter by the import source (only valid with user_id): SALESFORCE, CSV, OUTREACH, OPEN_API.
string
keyword
- In:
query
The search keyword to filter by name, called phone number, call ID, or external ID.
string
sort_order
- In:
query
Sort order: asc or desc (defaults to desc by creation time).
string, possible values: "desc", "asc"
page
- In:
query
Page number (defaults to 1).
number, default: 1
page_size
- In:
query
Number of items per page (defaults to 20).
number, default: 20
call_id
- In:
query
Unique call ID (cannot be combined with other filters).
string
Responses
Status: 200 **HTTP Status Code:** `200` Successfully retrieved the call history.
Content-Type: application/json
call_historyarray— Array of call history records.Items: account_namestring— Account name (for contacts).amd_resultstring, possible values:"MACHINE", "HUMAN"— Answering Machine Detection result enum: MACHINE, HUMAN.auto_dispositionboolean— Whether disposition was automatically assigned (true) or manually set (false).call_durationnumber— Call duration in seconds.call_history_idstring— Unique identifier for the call history record.call_idstring— Unique call identifier.call_list_deletedboolean— Whether the call list has been deleted.call_list_idstring— Call list identifier.call_list_namestring— Name of the call list.call_notestring— Call note.called_numberstring— Phone number that was called.calling_numberstring— Calling phone number.companystring— Company name (for leads).complete_called_numberstring— Complete phone number with country code.create_timestring— Call creation time in UTC (ISO 8601 format).dialer_statusstring, possible values:"UPCOMING", "DIALING", "CONNECTED", "CANCELED", "ENDED", "VOICEMAIL_SKIP", "DIALER_TREE_SKIP", "BUSY_CALL_SKIP", "DIFFERENT_TIMEZONE_SKIP", "VOICEMAIL_LEFT", "NO_NUMBER_TO_DIAL_SKIP", "CALL_LIMIT_BY_DAY", "CALL_LIMIT_BY_WEEK", "COUNTRY_LIMIT"— Call status enum: UPCOMING, DIALING, CONNECTED, CANCELED, ENDED, VOICEMAIL_SKIP, DIALER_TREE_SKIP, BUSY_CALL_SKIP, DIFFERENT_TIMEZONE_SKIP, VOICEMAIL_LEFT, NO_NUMBER_TO_DIAL_SKIP, CALL_LIMIT_BY_DAY, CALL_LIMIT_BY_WEEK, COUNTRY_LIMIT.dialer_sub_statusstring, possible values:"CANCELED_BY_CALLER", "CANCELED_BY_CALLEE", "CALLED_BY_PBX", "ZP_ERROR", "ANSWER", "NOT_ANSWER"— Call sub-status enum: CANCELED_BY_CALLER, CANCELED_BY_CALLEE, CALLED_BY_PBX, ZP_ERROR, ANSWER, NOT_ANSWER.dispositionstring— Call disposition/outcome.disposition_deletedboolean— Whether the disposition has been deleted.email_addressesarray— Email addresses.Items: emailstring— Email address.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL"
external_idstring— The third-party UUID. This field is stored and returned as-is.meeting_idstring— Associated meeting ID (if available).primary_namestring— Prospect primary name.processing_analysisboolean— Whether call analysis is being processed.secondary_namestring— Prospect secondary name.start_timestring— Call start time in UTC (ISO 8601 format).transcriptstring— Call transcript (if available).typestring, possible values:"UPCOMING", "CALLED", "SNOOZED", "HISTORY", "NO_CALL_LIST", "REMOVED", "CALL_BACK_INBOUND"— Record type enum: UPCOMING, CALLED, SNOOZED, HISTORY, NO_CALL_LIST, REMOVED, CALL_BACK_INBOUND.user_idstring— ID of the user who made the call.
has_next_pageboolean— Whether there is a next page.pagenumber— Current page number.page_sizenumber, default:20— Number of items per page.totalnumber— Total number of items.
Example:
{
"total": 50,
"page": 1,
"page_size": 10,
"has_next_page": true,
"call_history": [
{
"call_history_id": "19DBLVM5SHG6cgIeo0vrHQ",
"primary_name": "Klay Thompson",
"secondary_name": "Klay",
"company": "GSW",
"account_name": "GSW",
"disposition": "Interested",
"disposition_deleted": false,
"transcript": "[00:00] 16315423526: Your call has been forwarded to voicemail. The person you're trying to reach is not available. At the tone.\\n[00:05] 16315423526: Please record your message. When you have finished recording, you may hang up.",
"type": "HISTORY",
"user_id": "1W6kwwJQRL-1p9bsjdQvmw",
"call_list_id": "Nq6eIDDOTOa5wrxVdFUR3w",
"call_list_name": "Call list test",
"call_list_deleted": false,
"calling_number": "+1987654321",
"called_number": "+1-631-542-4444",
"complete_called_number": "+16315424444",
"call_duration": 394,
"create_time": "2025-11-13T15:30:45Z",
"start_time": "2025-11-13T15:24:11Z",
"dialer_status": "ENDED",
"dialer_sub_status": "ANSWER",
"auto_disposition": true,
"meeting_id": "3756643caefc4ed0ac3faccdc92a3677",
"processing_analysis": false,
"call_note": "Prospect showed no interest.",
"call_id": "06711553f02021f25a0",
"amd_result": "HUMAN",
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxxxxy-yxyxyyx-we"
}
]
}Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6151` <br> At least one filter must be provided: user_id(id or email), call_list_id, or call_id <br> **Error Code:** `6152` <br> call_id cannot be combined with other filters: user_id (id or email), call_list_id, import_from, keyword <br> **Error Code:** `6153` <br> import_from is invalid <br> **Error Code:** `6154` <br> import_from parameter is only valid when filtering by user_id (id or email) <br> **Error Code:** `6155` <br> sort_order must be either 'asc' or 'desc' <br> **Error Code:** `6152` <br> Cannot provide both call_list_id and user_id (id or email) in the same request <br> **Error Code:** `6156` <br> page_size cannot exceed 100. Provided: 150 <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6021` <br> User not found with id: 1W6kwwJQRL-1p9bsjdQvmw <br> **Error Code:** `6150` <br> Call not found with callId: 068b9f5120201001631 <br> **Error Code:** `6020` <br> Call list not found with id: iY092GX9TbWfL54HnBxyPQ <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error <br>
Get Report Call History
- Method:
GET - Path:
/dialer/reports/call-history - Tags: Call History & Reporting
Returns the synchronous, page-based call history report for the resolved reporting scope and date window. This endpoint uses cursor pagination via next_page_token and page_size, and returns the filters actually applied to the page.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:list_seller_productivity:admin
Rate Limit Label: LIGHT
Parameters
from
- In:
query
Reporting window start date in YYYY-MM-DD format. Required together with to when period is not provided. Mutually exclusive with period.
string, format: date
to
- In:
query
Reporting window end date in YYYY-MM-DD format. Required together with from when period is not provided. Mutually exclusive with period.
string, format: date
timezone
- In:
query
IANA timezone ID used to resolve the report window. Defaults to UTC.
string, default: "UTC"
period
- In:
query
Convenience date range alias. Supported values: today, yesterday, last_7_days, last_30_days, last_90_days, last_12_months, month_to_date, quarter_to_date, year_to_date. Mutually exclusive with from and to.
string, possible values: "today", "yesterday", "last_7_days", "last_30_days", "last_90_days", "last_12_months", "month_to_date", "quarter_to_date", "year_to_date"
scope
- In:
query
Reporting scope. Supported values: my_team, team. team requires team_id. Defaults to my_team.
string, possible values: "my_team", "team", default: "my_team"
team_id
- In:
query
Required when scope=team. Ignored for my_team.
string
user_ids
- In:
query
Comma-separated user IDs. Each user must be within the caller's authorized team scope. Mutually exclusive with user_email.
string
user_email
- In:
query
Exact user email filter. The user must be within the caller's authorized team scope. Mutually exclusive with user_ids.
string, format: email
page_size
- In:
query
Number of items to return per page for cursor pagination. Returned in the response as page_size. If omitted, the server default is used.
integer
next_page_token
- In:
query
Cursor token for fetching the next page. Omit on the first request; pass the previous response's next_page_token to continue.
string
Responses
Status: 200 Successfully retrieved the report call history page.
Content-Type: application/json
call_historyarray— Call history rows for the current cursor page.Items: account_namestring— CRM account name, when available.call_history_idstring— Call history record ID.call_list_namestring— Call list name.call_notesstring— Call notes entered for the record.called_fromstring— Caller phone number used for the dial.dispositionstring— Call disposition or outcome.namestring— Prospect or contact name.phone_numberstring— Target phone number that was dialed.start_timestring— Call start time in UTC ISO 8601 format.statusstring— Display status of the call.user_idstring— Owner user ID.user_namestring— Owner display name.
filtersobject— Resolved filters used to generate the report response.fromstring, format:date— Resolved report start date.generated_atstring— UTC time when the report payload was generated.periodstring— Resolved period alias when `period` was used.scopestring— Resolved scope.team_idstring— Resolved team ID when scope is `team`.timezonestring— Resolved timezone.tostring, format:date— Resolved report end date.
next_page_tokenstring— Cursor token for the next page. Omitted when there is no next page.page_sizeinteger— Number of items returned per page.
Example:
{
"page_size": 20,
"next_page_token": "eyJzZWFyY2hfYWZ0ZXIiOlsyMDI2LTA2LTMwVDEyOjAwOjAwWiwiMTlEQkxWTV5TSEc2Y2dJZW8wdnJIUSJdfQ==",
"filters": {
"from": "2026-06-01",
"to": "2026-06-30",
"period": "last_30_days",
"scope": "my_team",
"team_id": "w7mQmV9gRzK2s9xA0P4Y6A",
"generated_at": "2026-06-30T12:34:56Z",
"timezone": "UTC"
},
"call_history": [
{
"call_history_id": "19DBLVM5SHG6cgIeo0vrHQ",
"user_id": "1W6kwwJQRL-1p9bsjdQvmw",
"user_name": "Klay Thompson",
"call_list_name": "Q2 Outbound List",
"name": "Stephen Curry",
"account_name": "GSW",
"called_from": "+14155550100",
"phone_number": "+14155550123",
"start_time": "2026-06-21T16:08:43Z",
"status": "Ended",
"disposition": "Interested",
"call_notes": "Prospect requested a follow-up next week."
}
]
}Get Seller Productivity Report
- Method:
GET - Path:
/dialer/reports/seller-productivity - Tags: Call History & Reporting
Returns seller productivity metrics for the resolved reporting scope and date window. The response may include aggregate totals, per-rep rows, or both, depending on the include parameter.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:user_seller_productivity:admin
Rate Limit Label: LIGHT
Parameters
from
- In:
query
Reporting window start date in YYYY-MM-DD format. Required together with to when period is not provided. Mutually exclusive with period.
string, format: date
to
- In:
query
Reporting window end date in YYYY-MM-DD format. Required together with from when period is not provided. Mutually exclusive with period.
string, format: date
timezone
- In:
query
IANA timezone ID used to resolve the report window. Defaults to UTC.
string, default: "UTC"
period
- In:
query
Convenience date range alias. Supported values: today, yesterday, last_7_days, last_30_days, last_90_days, last_12_months, month_to_date, quarter_to_date, year_to_date. Mutually exclusive with from and to.
string, possible values: "today", "yesterday", "last_7_days", "last_30_days", "last_90_days", "last_12_months", "month_to_date", "quarter_to_date", "year_to_date"
scope
- In:
query
Reporting scope. Supported values: my_team, team. team requires team_id. Defaults to my_team.
string, possible values: "my_team", "team", default: "my_team"
team_id
- In:
query
Required when scope=team. Ignored for my_team.
string
user_ids
- In:
query
Comma-separated user IDs. Each user must be within the caller's authorized team scope. Mutually exclusive with user_email.
string
user_email
- In:
query
Exact user email filter. The user must be within the caller's authorized team scope. Mutually exclusive with user_ids.
string, format: email
sort_by
- In:
query
Sort field for the reps array. Supported values: calls, connects, answered, conversations, meetings_booked, returned_calls, returned_calls_answered, call_time_seconds, talk_time_seconds, call_to_answered_rate, answered_to_connect_rate, connect_to_conversation_rate, conversation_to_meeting_rate, calls_per_meeting, connects_per_meeting, conversations_per_meeting, answered_per_meeting, rep_name, team_name. Defaults to calls.
string, possible values: "calls", "connects", "answered", "conversations", "meetings_booked", "returned_calls", "returned_calls_answered", "call_time_seconds", "talk_time_seconds", "call_to_answered_rate", "answered_to_connect_rate", "connect_to_conversation_rate", "conversation_to_meeting_rate", "calls_per_meeting", "connects_per_meeting", "conversations_per_meeting", "answered_per_meeting", "rep_name", "team_name", default: "calls"
sort_order
- In:
query
Sort order. Supported values: asc, desc. Defaults to desc.
string, possible values: "asc", "desc", default: "desc"
include
- In:
query
Comma-separated subset of aggregate and reps. Supported values: aggregate, reps, aggregate,reps. Defaults to both.
string
Responses
Status: 200 Successfully retrieved the seller productivity report.
Content-Type: application/json
aggregateobject— Aggregate metrics for the resolved reporting population.answeredinteger— Total number of answered calls.answered_per_meetingnumber— Ratio of answered to meetings booked.answered_to_connect_ratenumber— Ratio of connects to answered.call_time_formattedstring— Total call time in `HH:MM:SS` format.call_time_secondsinteger— Total call time in seconds.call_to_answered_ratenumber— Ratio of answered to calls.callsinteger— Total number of calls.calls_per_meetingnumber— Ratio of calls to meetings booked.connect_to_conversation_ratenumber— Ratio of conversations to connects.connectsinteger— Total number of connected calls.connects_per_meetingnumber— Ratio of connects to meetings booked.conversation_to_meeting_ratenumber— Ratio of meetings booked to conversations.conversationsinteger— Total number of conversations.conversations_per_meetingnumber— Ratio of conversations to meetings booked.meetings_bookedinteger— Total number of meetings booked.returned_callsinteger— Total number of returned calls.returned_calls_answeredinteger— Total number of answered returned calls.talk_time_formattedstring— Total talk time in `HH:MM:SS` format.talk_time_secondsinteger— Total talk time in seconds.
filtersobject— Resolved filters used to generate the report response.fromstring, format:date— Resolved report start date.generated_atstring— UTC time when the report payload was generated.periodstring— Resolved period alias when `period` was used.scopestring— Resolved scope.team_idstring— Resolved team ID when scope is `team`.timezonestring— Resolved timezone.tostring, format:date— Resolved report end date.
repsarray— Per-rep seller productivity rows.Items: answeredinteger— Total number of answered calls.answered_per_meetingnumber— Ratio of answered to meetings booked.answered_to_connect_ratenumber— Ratio of connects to answered.call_time_formattedstring— Total call time in `HH:MM:SS` format.call_time_secondsinteger— Total call time in seconds.call_to_answered_ratenumber— Ratio of answered to calls.callsinteger— Total number of calls.calls_per_meetingnumber— Ratio of calls to meetings booked.connect_to_conversation_ratenumber— Ratio of conversations to connects.connectsinteger— Total number of connected calls.connects_per_meetingnumber— Ratio of connects to meetings booked.conversation_to_meeting_ratenumber— Ratio of meetings booked to conversations.conversationsinteger— Total number of conversations.conversations_per_meetingnumber— Ratio of conversations to meetings booked.meetings_bookedinteger— Total number of meetings booked.rep_emailstring— The rep's email address.rep_namestring— The rep's display name.returned_callsinteger— Total number of returned calls.returned_calls_answeredinteger— Total number of answered returned calls.talk_time_formattedstring— Total talk time in `HH:MM:SS` format.talk_time_secondsinteger— Total talk time in seconds.team_idstring— The rep's team ID.team_namestring— The rep's team name.user_idstring— The rep's user ID.
Example:
{
"filters": {
"from": "2026-06-01",
"to": "2026-06-30",
"period": "last_30_days",
"scope": "my_team",
"team_id": "w7mQmV9gRzK2s9xA0P4Y6A",
"generated_at": "2026-06-30T12:34:56Z",
"timezone": "UTC"
},
"aggregate": {
"calls": 120,
"answered": 90,
"connects": 72,
"conversations": 41,
"meetings_booked": 8,
"returned_calls": 5,
"returned_calls_answered": 3,
"call_time_seconds": 12543,
"call_time_formatted": "3:29:03",
"talk_time_seconds": 8421,
"talk_time_formatted": "2:20:21",
"call_to_answered_rate": 0.75,
"answered_to_connect_rate": 0.8,
"connect_to_conversation_rate": 0.5694,
"conversation_to_meeting_rate": 0.1951,
"calls_per_meeting": 15,
"answered_per_meeting": 11.25,
"connects_per_meeting": 9,
"conversations_per_meeting": 5.13
},
"reps": [
{
"user_id": "1W6kwwJQRL-1p9bsjdQvmw",
"rep_name": "Klay Thompson",
"rep_email": "klay.thompson@zoom.us",
"team_id": "w7mQmV9gRzK2s9xA0P4Y6A",
"team_name": "West Sales",
"calls": 42,
"answered": 31,
"connects": 24,
"conversations": 13,
"meetings_booked": 3,
"returned_calls": 2,
"returned_calls_answered": 1,
"call_time_seconds": 4123,
"call_time_formatted": "1:08:43",
"talk_time_seconds": 2811,
"talk_time_formatted": "0:46:51",
"call_to_answered_rate": 0.7381,
"answered_to_connect_rate": 0.7742,
"connect_to_conversation_rate": 0.5417,
"conversation_to_meeting_rate": 0.2308,
"calls_per_meeting": 14,
"answered_per_meeting": 10.33,
"connects_per_meeting": 8,
"conversations_per_meeting": 4.33
}
]
}List Call Lists
- Method:
GET - Path:
/dialer/call-lists - Tags: Call List Management
Retrieve all call lists in the account. Optionally filter by user IDs/emails and source.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:call_lists:admin
Rate Limit Label: LIGHT
Parameters
user_ids
- In:
query
Comma-separated list of user IDs or emails to filter by. Supports mixing IDs and emails.
string
import_from
- In:
query
Source of call list
string
Responses
Status: 200 **HTTP Status Code:** `200` Successfully retrieved all call lists for the account
Content-Type: application/json
call_listsarray— Array of call lists associated with the account.Items: call_list_idstring— Unique identifier of the call list.create_timestring— Timestamp when the call list was created (ISO-8601 format).descriptionstring— Description of the call list.import_fromstring— Source: SALESFORCE, CSV, OUTREACH, OPEN_APInamestring— Name of the call list.owner_emailstring— Email address of the call list owner.owner_user_idstring— User ID of the call list owner.prospect_typestring, possible values:"CONTACT", "LEAD"— Type of prospects: CONTACT, LEADrecent_dialedboolean— Indicates whether the list contains recently dialed contacts.statusstring, possible values:"IN_PROGRESS", "COMPLETE"— Call list status: IN_PROGRESS, COMPLETE
Example:
{
"call_lists": [
{
"call_list_id": "24n0mXjZSaOrOYJg7sahlA",
"name": "Q4 2025 Sales Prospects Contact",
"status": "COMPLETE",
"owner_user_id": "CeNVNaE9SOWPo5SC_KlZHw",
"owner_email": "dev+john_doe_zradialer@zoomsandbox.us",
"description": "High-priority contacts for Q5 2025 sales campaign targeting enterprise customers in the technology sector. Focus on companies with 500+ employees and annual revenue over $10M.",
"prospect_type": "CONTACT",
"create_time": "2025-10-17T08:34:58.151+00:00",
"import_from": "OPEN_API",
"recent_dialed": false
}
]
}Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6153` <br> The import_from parameter value is invalid. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User does not have the required Zoom Owner or Admin privileges. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Create Call List
- Method:
POST - Path:
/dialer/call-lists - Tags: Call List Management
Create a new call list
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:write:call_lists:admin
Rate Limit Label: LIGHT
Request Body
Content-Type: application/json
assigned_to_user_id(required)string— User ID or email to assign the list toname(required)string— Name of the call listprospect_type(required)string, possible values:"CONTACT", "LEAD"— Type of prospects in the list. Valid values: CONTACT, LEADdescriptionstring— Description of the call list
Example:
{
"name": "Q4 2025 Sales Prospects Contact",
"description": "High-priority contacts for Q5 2025 sales campaign targeting enterprise customers in the technology sector. Focus on companies with 500+ employees and annual revenue over $10M.",
"prospect_type": "CONTACT",
"assigned_to_user_id": "0yT-QeXeQYqW6uizHEFmXA"
}Responses
Status: 201 **HTTP Status Code:** `201` Successfully created the call list.
Content-Type: application/json
assigned_to_user_emailstring— Email address of the assigned userassigned_to_user_idstring— User ID to whom the call list is assignedcall_list_idstring— Auto-generated unique identifier for the created call listcreated_atstring— Timestamp when the call list was created in UTC (ISO 8601 format)namestring— The name of the call list (as provided in request)prospect_typestring, possible values:"CONTACT", "LEAD"— Type of prospects in the list: CONTACT, LEAD
Example:
{
"call_list_id": "c-ncE_MXQACAjn3_I_35gg",
"name": "Q4 2025 Sales Prospects Contact",
"created_at": "2025-10-20T13:40:33.247Z",
"prospect_type": "CONTACT",
"assigned_to_user_id": "0yT-QeXeQYqW6uizHEFmXA",
"assigned_to_user_email": "dev+john_doe_zradialer@zoomsandbox.us"
}Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6100` <br> Validation failed. errors field will have further details. Eg: "errors": [ { "field": "name", "message": "Call list name cannot be blank" } ] <br> **Error Code:** `6000` <br> Call list name already exists <br> **Error Code:** `6002` <br> Maximum number of call lists created via Open API exceeded. Current: 10000, Maximum allowed: 10000 <br> **Error Code:** `6005` <br> The name cannot exceed 255 characters <br> **Error Code:** `6006` <br> The description cannot exceed 1000 characters <br> **Error Code:** `6007` <br> ID should not be provided for create operation <br> **Error Code:** `6010` <br> Prospect type is required <br> **Error Code:** `6011` <br> Prospect type must be either 'CONTACT' or 'LEAD' <br> **Error Code:** `6022` <br> Either userId or email must be provided for assignment <br> **Error Code:** `6201` <br> Request body is required <br> **Error Code:** `6004` <br> Call list name is required <br> **Error Code:** `6021` <br> User not found with id: 0yT-QeXeQYqW6uizHEFmXA or email: dev+john_doe_zradialer@zoomsandbox.us <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden User is not a Zoom Owner or Admin
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error Internal server error
Get Call List by ID
- Method:
GET - Path:
/dialer/call-lists/{callListId} - Tags: Call List Management
Retrieve details of a specific call list by its ID
Error Conditions: Invalid callListId User is not Zoom Owner or Admin
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:call_lists:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier for the call list.
string
Responses
Status: 200 **HTTP Status Code:** `200` Successfully retrieved the call list details.
Content-Type: application/json
call_listobject— Call list object.call_list_idstring— Unique identifier for the call list.create_timestring— Timestamp when the call list was created (ISO-8601 format).descriptionstring— Detailed description of the call list.import_fromstring— Source: OPEN_API, SALESFORCE, CSV, OUTREACHnamestring— Name of the call list.owner_emailstring— Email address of the call list owner.owner_user_idstring— User ID of the call list owner.prospect_typestring, possible values:"CONTACT", "LEAD"— Type of prospects: CONTACT, LEADrecent_dialedboolean— Indicates whether the list contains recently dialed contacts.statusstring, possible values:"IN_PROGRESS", "COMPLETE"— Call list status: IN_PROGRESS, COMPLETE
Example:
{
"call_list": {
"call_list_id": "24n0mXjZSaOrOYJg7sahlA",
"name": "Q4 2025 Sales Prospects Contact",
"status": "COMPLETE",
"owner_user_id": "CeNVNaE9SOWPo5SC_KlZHw",
"owner_email": "dev+john_doe_zradialer@zoomsandbox.us",
"description": "High-priority contacts for Q5 2025 sales campaign targeting enterprise customers in the technology sector. Focus on companies with 500+ employees and annual revenue over $10M.",
"prospect_type": "CONTACT",
"create_time": "2025-10-17T08:34:58.151+00:00",
"import_from": "OPEN_API",
"recent_dialed": false
}
}Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with ID: 24n0mXjZSaOrOYJg7sahlA <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error <br>
Delete Call List
- Method:
DELETE - Path:
/dialer/call-lists/{callListId} - Tags: Call List Management
Delete a call list and all its associated prospects.
Limitation: Currently, deletion is supported only for call lists created through Open APIs. Future updates will expand support to all call lists.
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:delete:call_lists:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique call list ID.
Note: Currently, deletion is supported only for call lists created through Open APIs.
string
Responses
Status: 204 **HTTP Status Code:** `204` <br> Successfully deleted the call list.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6003` <br> Cannot delete call list that was not created via Open API <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or an Admin <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with ID: abc123xyz <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal Server Error <br>
Update Call List
- Method:
PATCH - Path:
/dialer/call-lists/{callListId} - Tags: Call List Management
Update an existing call list.
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:update:call_lists:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier for the call list.
string
Request Body
Content-Type: application/json
assigned_to_user_idstring— User ID or email to reassign the call list to. User must exist in the account. Either user_id or user_email can be provided.descriptionstring— New description for the call list.namestring— New name for the call list.prospect_typestring, possible values:"CONTACT", "LEAD"— New prospect type for the call list. Must be Contact or Lead (case insensitive). Note: Cannot be changed if the list contains prospects.
Example:
{
"name": "Q1 2025 Enterprise Leads - Updated",
"description": "Updated description for Q1 targets",
"prospect_type": "CONTACT",
"assigned_to_user_id": "1W6kwwJQRL-1p9bsjdQvmw"
}Responses
Status: 204 **HTTP Status Code:** `204` <br> No Content [Successfully updated the call list]
Status: 400 **HTTP Status Code:** `400` <br> Bad Request [Invalid request parameters or validation errors] **Error Code:** `6053` <br> No changes detected. At least one field (name, prospect_type, description, assigned_to_user) must have a different value from the existing call list. <br> **Error Code:** `6053` <br> At least one field must be provided for update operation. <br> **Error Code:** `6005` <br> The name cannot exceed 255 characters. <br> **Error Code:** `6006` <br> The description cannot exceed 1000 characters. <br> **Error Code:** `6011` <br> Prospect type must be either 'CONTACT' or 'LEAD'. <br> **Error Code:** `6009` <br> Prospect type cannot be changed when call list has items. Current item size: 5. Please remove all items before changing prospect type. <br> **Error Code:** `6008` <br> Call list is currently in use. <br> **Error Code:** `6100` <br> Validation failed. errors array will have more information. Eg: { "code": 6100, "message": "Validation failed", "errors": [ { "field": "name", "message": "name exceeds maximum length of 255 characters" }, { "field": "description", "message": "description exceeds maximum length of 1000 characters" } ] } <br> **Error Code:** `6021` <br> User not found with ID: 1W6kwwJQRL-1p9bsjdQvmw. <br> **Error Code:** `6003` <br> Cannot update call list that was not created via Open API. <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden [Insufficient permissions to perform this operation] **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found [Call list not found] **Error Code:** `6001` <br> Call list does not exist. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error [An unexpected error occurred] **Error Code:** `6200` <br> Internal server error. <br>
List All Prospects in Call List
- Method:
GET - Path:
/dialer/call-lists/{callListId}/prospects - Tags: Prospect Management
Retrieve all prospects in a specific call list.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:prospects:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
The unique identifier of the call list.
string
Responses
Status: 200 **HTTP Status Code:** `200` <br> Successfully retrieved all prospects for the call list.
Content-Type: application/json
prospectsarray— List of prospects in the call list.Items: annual_revenuenumber— The annual revenue of the company.assignee_user_idstring— The user ID of the person to whom this prospect is assigned.call_list_idstring— The call list ID that this prospect belongs to.companystring— Company name.company_descriptionstring— A description of the company.company_linkedIn_urlstring— The company's LinkedIn profile URL.company_urlstring— The company's website URL.create_timestring— The timestamp when the prospect was created (ISO-8601 format).custom_fieldsarray— An array of up to 10 custom field values.Items: string— A custom field value.departmentstring— Departmentdescriptionstring— Additional description or notes about the prospect.dialer_statusstring, possible values:"NOT_CALLED", "DIALING", "CONNECTED", "VOICEMAIL", "BUSY", "NO_ANSWER", "CANCELED", "FAILED"— The outcome status of the dialer call: NOT_CALLED, DIALING, CONNECTED, VOICEMAIL, BUSY, NO_ANSWER, CANCELED, FAILEDdialer_sub_statusstring, possible values:"CANCELED_BY_CALLER", "CANCELED_BY_CALLEE", "CALLED_BY_PBX", "ZP_ERROR", "ANSWER", "NOT_ANSWER"— Sub-status of the dialer call: CANCELED_BY_CALLER, CANCELED_BY_CALLEE, CALLED_BY_PBX, ZP_ERROR, ANSWER, NOT_ANSWERemail_addressesarray— Email addressesItems: emailstring— The email address.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL", default:"PRIMARY_EMAIL"
email_domainstring— The email domain.external_idstring— The third-party UUID. This field is stored and returned as-is.import_fromstring— The source from which the prospect was imported.industrystring— The industry sector.lead_linkedIn_urlstring— The LinkedIn profile URL for the lead.lead_ratingstring— The lead rating.lead_sourcestring— The source of the lead.lead_statusstring— The current status of the lead.linkedIn_urlstring— The LinkedIn profile URL for the contact.mailing_citystring— The mailing city.mailing_countrystring— The mailing country.mailing_statestring— The mailing state or province.mailing_streetstring— The mailing street address.mailing_zip_codestring— The mailing ZIP or postal code.modify_timestring— The timestamp when the prospect was last modified (ISO-8601 format).number_of_employeesnumber— The number of employees in the company.phone_numbersarray— Phone numbers.Items: extstring— The phone extension.numberstring— The phone number.typestring, possible values:"PRIMARY_PHONE", "MOBILE_PHONE", "HOME_PHONE", "OTHER_PHONE", default:"PRIMARY_PHONE"— Type of phone number: PRIMARY_PHONE, MOBILE_PHONE, HOME_PHONE, OTHER_PHONE
primary_namestring— Primary name.prospect_idstring— The unique identifier for the prospect.prospect_typestring, possible values:"CONTACT", "LEAD"— The type of prospect: CONTACT or LEAD.secondary_namestring— Secondary name.titlestring— Job title.topicstring— The topic or interest area.typestring, possible values:"UPCOMING", "CALLED", "SNOOZED", "HISTORY", "NO_CALL_LIST", "REMOVED", "CALL_BACK_INBOUND"— Prospect type enum: UPCOMING, CALLED, SNOOZED, HISTORY, NO_CALL_LIST, REMOVED, CALL_BACK_INBOUND
Example:
{
"prospects": [
{
"prospect_id": "mq4XpiQISe6tlhHRwX9a8g",
"type": "UPCOMING",
"primary_name": "John Smith",
"secondary_name": "Johnny",
"title": "Senior Sales Manager",
"company": "Acme Corporation",
"department": "Sales",
"description": "Experienced sales professional with 10+ years in enterprise software",
"assignee_user_id": "0yT-QeXeQYqW6uizHEFmXA",
"call_list_id": "c-ncE_MXQACAjn3_I_35gg",
"dialer_status": "CANCELED",
"dialer_sub_status": "CANCELED_BY_CALLER",
"create_time": "2025-10-20T20:40:52.214+00:00",
"modify_time": "2025-10-20T20:40:52.223+00:00",
"prospect_type": "CONTACT",
"linkedIn_url": "https://linkedin.com/in/johnsmith-contact",
"lead_linkedIn_url": "https://linkedin.com/in/johndoe",
"company_linkedIn_url": "https://linkedin.com/company/acme-corp",
"company_url": "https://www.acme-corp.com",
"company_description": "Leading provider of enterprise software solutions",
"mailing_country": "United States",
"mailing_state": "California",
"mailing_city": "San Francisco",
"mailing_street": "123 Market Street, Suite 400",
"mailing_zip_code": "94105",
"import_from": "OPEN_API",
"number_of_employees": 100,
"annual_revenue": 500000,
"topic": "Cloud Solutions",
"email_domain": "acme.com",
"industry": "Technology",
"lead_status": "Qualified",
"lead_rating": "Hot",
"lead_source": "Website",
"custom_fields": [
"custom field 1"
],
"phone_numbers": [
{
"number": "1-555-123-4567",
"type": "PRIMARY_PHONE",
"ext": "1234"
}
],
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxx-uuid"
}
]
}Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6022` <br> Call list not found with id: c-ncE_MXQACAjn3_I_35gg. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Create Prospect
- Method:
POST - Path:
/dialer/call-lists/{callListId}/prospects - Tags: Prospect Management
Create and add a prospect to a call list
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:write:prospects:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier of the call list
string
Request Body
Content-Type: application/json
annual_revenuenumber— Annual revenue of the companycompanystring— Company name (account name for contacts, company name for leads)company_descriptionstring— Description of the companycompany_linkedIn_urlstring— Company LinkedIn profile URLcompany_urlstring— Company website URLcustom_fieldsarray— Array of up to 10 custom field valuesItems: string— Custom field valuedepartmentstring— Department of the prospectdescriptionstring— Additional description or notesemail_addressesarray— Email addressesItems: emailstring— Email address in valid formattypestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL", default:"PRIMARY_EMAIL"
external_idstring— The third-party UUID. This field is stored and returned as-is.industrystring— Industry of the prospectlead_linkedIn_urlstring— Lead LinkedIn profile URLlead_ratingstring— Lead ratinglead_sourcestring— Lead sourcelead_statusstring— Current status of the leadlinkedIn_urlstring— Contact LinkedIn profile URLmailing_citystring— Mailing address citymailing_countrystring— Mailing address countrymailing_statestring— Mailing address statemailing_streetstring— Mailing address streetmailing_zip_codestring— Mailing address ZIP codenumber_of_employeesnumber— Number of employees in the companyphone_numbersarray— Phone numbers. At least one phone number is required.Items: extstring— Phone extension numbernumberstring— Phone number in valid formattypestring, possible values:"PRIMARY_PHONE", "MOBILE_PHONE", "HOME_PHONE", "OTHER_PHONE", default:"PRIMARY_PHONE"— Type of phone number: PRIMARY_PHONE, MOBILE_PHONE, HOME_PHONE, OTHER_PHONE
primary_namestring— Primary namesecondary_namestring— Secondary nametitlestring— Job titletopicstring— Topic of interest
Example:
{
"primary_name": "John Smith",
"secondary_name": "Johnny",
"title": "Senior Sales Manager",
"company": "Acme Corporation",
"department": "Sales",
"description": "Experienced sales professional with 10+ years in enterprise software",
"industry": "Technology",
"lead_source": "LinkedIn",
"lead_status": "Qualified",
"topic": "Enterprise Software Solutions",
"lead_rating": "Hot",
"number_of_employees": 5000,
"annual_revenue": 50000000,
"lead_linkedIn_url": "https://linkedin.com/in/johnsmith",
"linkedIn_url": "https://linkedin.com/in/johnsmith-contact",
"company_linkedIn_url": "https://linkedin.com/company/acme-corp",
"company_url": "https://www.acme-corp.com",
"company_description": "Leading provider of enterprise software solutions",
"mailing_country": "United States",
"mailing_state": "California",
"mailing_city": "San Francisco",
"mailing_street": "123 Market Street, Suite 400",
"mailing_zip_code": "94105",
"custom_fields": [
"custom field 1"
],
"phone_numbers": [
{
"number": "1-555-123-4567",
"type": "PRIMARY_PHONE",
"ext": "1234"
}
],
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxxx-uuid"
}Responses
Status: 201 **HTTP Status Code:** `201` Successfully created prospect for the call list
Content-Type: application/json
primary_namestring— Primary nameprimary_phonestring— Primary phone numberprospect_idstring— Auto-generated unique prospect ID
Example:
{
"prospect_id": "mq4XpiQISe6tlhHRwX9a8g",
"primary_name": "John Smith",
"primary_phone": "+1-555-123-4567"
}Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6003` <br> Call list not created via Open API. <br> **Error Code:** `6042` <br> Total prospects in the call list cannot exceed 10,000. Current: 9,999. <br> **Error Code:** `6100` <br> Validation failed. The `error` field will have more details. For example: { "code": 6100, "message": "Validation failed", "errors": [ { "field": "primary_name", "message": "At least one name field is required" } ] } <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with the provided ID. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Update Prospects batch
- Method:
PATCH - Path:
/dialer/call-lists/{callListId}/prospects - Tags: Prospect Management
Batch update existing prospects. Can also reassign prospects to a different call list.
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:update:prospects:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier of the current call list.
string
Request Body
Content-Type: application/json
prospects(required)array— Array of prospect objects to update (maximum 1000 per API call).Items: prospect_id(required)string— The unique identifier of the prospect to update (required).annual_revenuenumber— Company revenue.companystring— Company name (Account for contacts, Company for leads).company_descriptionstring— Brief description of the company's business.company_linkedIn_urlstring— LinkedIn company page URL.company_urlstring— Official website URL of the company.custom_fieldsarray— Array of up to 10 custom field values for additional prospect information.Items: string— Custom field value for storing additional prospect data.departmentstring— Department of the prospect.descriptionstring— Additional description or notes.email_addressesarray— Email addresses.Items: emailstring— Email address in valid format.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL"
external_idstring— The third-party UUID. This field is stored and returned as-is.industrystring— Industry of the prospect.lead_linkedIn_urlstring— LinkedIn profile URL of the lead.lead_ratingstring— Lead rating.lead_sourcestring— Lead source.lead_statusstring— Current status of the lead.linkedIn_urlstring— LinkedIn profile URL of the contact.mailing_citystring— City in the mailing address.mailing_countrystring— Country in the mailing address.mailing_statestring— State or province in the mailing address.mailing_streetstring— Street address including suite or unit number.mailing_zip_codestring— ZIP or postal code in the mailing address.number_of_employeesnumber— Company size.phone_numbersarray— Phone numbers.Items: extstring— Phone extension.numberstring— Phone number in standard format.typestring, possible values:"PRIMARY_PHONE", "MOBILE_PHONE", "HOME_PHONE", "OTHER_PHONE"— Type of phone number: PRIMARY_PHONE, MOBILE_PHONE, HOME_PHONE, OTHER_PHONE
primary_namestring— Primary name.secondary_namestring— Secondary name.titlestring— Job title.topicstring— Topic of interest.
assign_to_call_list_idstring— If provided, moves all prospects to a different call list (must be created via Open API).
Example:
{
"prospects": [
{
"prospect_id": "mq4XpiQISe6tlhHRwX9a8g",
"primary_name": "John Smith",
"secondary_name": "Johnny",
"title": "Senior Sales Manager",
"company": "Acme Corporation",
"department": "Sales",
"description": "Experienced sales professional with 10+ years in enterprise software",
"industry": "Technology",
"lead_source": "LinkedIn",
"lead_status": "Qualified",
"topic": "Enterprise Software Solutions",
"lead_rating": "Hot",
"number_of_employees": 5000,
"annual_revenue": 50000000,
"lead_linkedIn_url": "https://linkedin.com/in/johnsmith",
"linkedIn_url": "https://linkedin.com/in/johnsmith-contact",
"company_linkedIn_url": "https://linkedin.com/company/acme-corp",
"company_url": "https://www.acme-corp.com",
"company_description": "Leading provider of enterprise software solutions",
"mailing_country": "United States",
"mailing_state": "California",
"mailing_city": "San Francisco",
"mailing_street": "123 Market Street, Suite 400",
"mailing_zip_code": "94105",
"custom_fields": [
"Updated custom field 1"
],
"phone_numbers": [
{
"number": "1-555-123-4567",
"type": "PRIMARY_PHONE",
"ext": "1234"
}
],
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxxx-uuid"
}
],
"assign_to_call_list_id": "list999"
}Responses
Status: 200 **HTTP Status Code:** `200` Successfully updated prospects for a call list. **HTTP Status Code:** `207` Multi-Status - Partial success. Some prospects were updated successfully while others failed.
Content-Type: application/json
assigned_to_user_emailstring— Email address of the user to whom the prospects are assigned.assigned_to_user_idstring— Unique identifier of the user to whom the prospects are assigned.failed_listarray— List of prospects that failed to update with error details.Items: error_messagestring— Specific validation error explaining why the prospect update failed.prospect_idstring— Unique identifier of the prospect that failed to update.
success_listarray— List of prospects that were successfully updated.Items: prospect_idstring— Unique identifier of the successfully updated prospect.
total_failednumber— Total count of prospects that failed to update.total_processednumber— Total count of prospects that were successfully updated.total_prospectsnumber— Total number of prospects included in the update request.
Example:
{
"success_list": [
{
"prospect_id": "ugtO21BNRvSBQshEmRnfEw"
}
],
"failed_list": [
{
"prospect_id": "GfX0-VReSpKp_bot3UlB8w",
"error_message": "VALIDATION_ERROR: Prospect does not belong to call list: _Wze-TJqSQODzsRc53tQPg"
}
],
"total_processed": 1,
"total_failed": 1,
"total_prospects": 2,
"assigned_to_user_id": "1W6kwwJQRL-1p9bsjdQvmw",
"assigned_to_user_email": "dev+anupamzradialer@zoomsandbox.us"
}Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6201` <br> At least one prospect must be provided for update. <br> **Error Code:** `6043` <br> Maximum number of prospects for an API call exceeded - limit is 1000 prospects. <br> **Error Code:** `6003` <br> Call list not created via Open API. <br> **Error Code:** `6101` <br> Prospect ID is required for update operation. <br> **Error Code:** `6045` <br> At least one updatable field must be provided for the prospect: mq4XpiQISe6tlhHRwX9a8g. <br> **Error Code:** `6100` <br> Validation failed. The `errors` field will have more details. For example: { "code": 6001, "message": "Validation failed", "errors": [ { "field": "primary_email", "message": "Invalid email format" }, { "field": "primary_phone", "message": "Invalid phone number format" }, { "field": "primary_name", "message": "Field exceeds maximum length of 255 characters" } ] } <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with ID: c-ncE_MXQACAjn3_I_35gg. <br> **Error Code:** `6001` <br> Assigned call list not found with ID: new-list-456. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Create Prospects batch
- Method:
POST - Path:
/dialer/call-lists/{callListId}/prospects/batch - Tags: Prospect Management
Batch call to add prospects to a call list.
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:write:prospects:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier of the call list.
string
Request Body
Content-Type: application/json
prospectsarray— Array of prospect objects to create (maximum 1,000 per API call).Items: annual_revenuenumber— Company revenue.companystring— Company name (Account for contacts, Company for leads).company_descriptionstring— Description of the company.company_linkedIn_urlstring— LinkedIn profile URL of the company.company_urlstring— Website URL of the company.custom_fieldsarray— Array of custom field values (maximum 10 fields).Items: string— Custom field value.departmentstring— Department of the prospect.descriptionstring— Additional description or notes.email_addressesarray— Email addresses.Items: emailstring— Email address.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL", default:"PRIMARY_EMAIL"
external_idstring— The third-party UUID. This field is stored and returned as-is.industrystring— Industry of the prospect.lead_linkedIn_urlstring— LinkedIn profile URL of the lead.lead_ratingstring— Lead rating.lead_sourcestring— Lead source.lead_statusstring— Current status of the lead.linkedIn_urlstring— LinkedIn profile URL of the contact.mailing_citystring— City of the mailing address.mailing_countrystring— Country of the mailing address.mailing_statestring— State of the mailing address.mailing_streetstring— Street address of the mailing address.mailing_zip_codestring— ZIP code of the mailing address.number_of_employeesnumber— Number of employees in the company.phone_numbersarray— Phone numbers for the prospect. At least one phone number is required.Items: extstring— Phone extension.numberstring— Phone number.typestring, possible values:"PRIMARY_PHONE", "MOBILE_PHONE", "HOME_PHONE", "OTHER_PHONE", default:"PRIMARY_PHONE"— Type of phone number: PRIMARY_PHONE, MOBILE_PHONE, HOME_PHONE, OTHER_PHONE
primary_namestring— Primary name.secondary_namestring— Secondary name.titlestring— Job title.topicstring— Topic of interest.
Example:
{
"prospects": [
{
"primary_name": "John Smith",
"secondary_name": "Johnny",
"title": "Senior Sales Manager",
"company": "Acme Corporation",
"department": "Sales",
"description": "Experienced sales professional with 10+ years in enterprise software",
"industry": "Technology",
"lead_source": "LinkedIn",
"lead_status": "Qualified",
"topic": "Enterprise Software Solutions",
"lead_rating": "Hot",
"number_of_employees": 5000,
"annual_revenue": 50000000,
"lead_linkedIn_url": "https://linkedin.com/in/johnsmith",
"linkedIn_url": "https://linkedin.com/in/johnsmith-contact",
"company_linkedIn_url": "https://linkedin.com/company/acme-corp",
"company_url": "https://www.acme-corp.com",
"company_description": "Leading provider of enterprise software solutions",
"mailing_country": "United States",
"mailing_state": "California",
"mailing_city": "San Francisco",
"mailing_street": "123 Market Street, Suite 400",
"mailing_zip_code": "94105",
"custom_fields": [
"custom field 1"
],
"phone_numbers": [
{
"number": "1-555-123-4567",
"type": "PRIMARY_PHONE",
"ext": "1234"
}
],
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxx-uuid"
}
]
}Responses
Status: 201 **HTTP Status Code:** `201` All prospects successfully created. Note: This status is returned only when ALL prospects in the batch are successfully created. For partial success or all failures, see status codes 207 and 400 respectively.
Content-Type: application/json
assigned_to_user_emailstring— Email address of the assigned user.assigned_to_user_idstring— User ID to whom all prospects are assigned.failed_listarray— List of prospects that failed creation with error messages.Items: error_messagestring— Specific validation error explaining why the prospect creation failed.namestring— Name.phonestring— Phone number.
success_listarray— List of successfully created prospects with generated IDs.Items: namestring— Name.phonestring— Phone number.prospect_idstring— Auto-generated unique prospect ID.
total_failednumber— Number of prospects that failed validation or creation.total_processednumber— Number of prospects successfully created.total_prospectsnumber— Total number of prospects in the request.
Example:
{
"success_list": [
{
"prospect_id": "mq4XpiQISe6tlhHRwX9a8g",
"name": "John Smith",
"phone": "+1-555-123-4567"
}
],
"failed_list": [
{
"phone": "+1-555-123-4567",
"name": "John Smith",
"error_message": "VALIDATION_ERROR: Invalid phone number format"
}
],
"total_processed": 5,
"total_failed": 2,
"total_prospects": 7,
"assigned_to_user_id": "0yT-QeXeQYqW6uizHEFmXA",
"assigned_to_user_email": "dev+john_doe_zradialer@zoomsandbox.us"
}Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6043` <br> Maximum number of prospects for an API call exceeded - limit is 1000 prospects <br> **Error Code:** `6003` <br> Call list not created via Open API <br> **Error Code:** `6042` <br> Total prospects in call list cannot exceed 10000. Current: 9500, Adding: 600, Total would be: 10100 <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with id: c-ncE_MXQACAjn3_I_35gg. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Delete Prospect
- Method:
DELETE - Path:
/dialer/call-lists/{callListId}/prospects/{prospectId} - Tags: Prospect Management
Delete a single prospect from a call list by its ID.
Limitation: Currently, deletion is supported only for prospects belonging to call lists created through Open APIs. A future update will expand support to all call lists.
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:delete:prospects:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier of the call list.
string
prospectId required
- In:
path
Unique identifier of the prospect to delete.
string
Responses
Status: 204 **HTTP Status Code:** `204` <br> Successfully deleted the prospect. No response body.
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6003` <br> Call list not created via Open API <br> **Error Code:** `6041` <br> Prospect does not belong to call list: 0yT-QeXeQYqW6uizHEFmXA <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or an Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with ID: 0yT-QeXeQYqW6uizHEFmXA <br> **Error Code:** `6040` <br> Prospect not found with id: GfX0-VReSpKp_bot3UlB8w <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Update Prospect
- Method:
PATCH - Path:
/dialer/call-lists/{callListId}/prospects/{prospectId} - Tags: Prospect Management
Update an existing prospect. Can also reassign prospect to a different call list.
Scopes: dialer:write:admin
Granular Scopes: zoom_auto_dialer:update:prospects:admin
Rate Limit Label: LIGHT
Parameters
callListId required
- In:
path
Unique identifier of the current call list.
string
prospectId required
- In:
path
Unique identifier of the prospect to update.
string
Request Body
Content-Type: application/json
annual_revenuenumber— Company revenue.assign_to_call_list_idstring— If provided, moves the prospect to a different call list (must be created via Open API).companystring— Company name (Account for contacts, Company for leads).company_descriptionstring— Description of the prospect's company.company_linkedIn_urlstring— Company's LinkedIn profile URL.company_urlstring— Company's website URL.custom_fieldsarray— Array of up to 10 custom field values for additional prospect information.Items: string— Custom field value.departmentstring— Department of the prospect.descriptionstring— Additional description or notes about the prospect.email_addressesarray— Array of email addresses for the prospect (maximum 2).Items: emailstring— Email address in valid format.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL"
external_idstring— Third-party UUID. This field is stored and returned as-is.industrystring— Industry of the prospect's company.lead_linkedIn_urlstring— Lead's LinkedIn profile URL.lead_ratingstring— Lead rating.lead_sourcestring— Lead source.lead_statusstring— Current status of the lead.linkedIn_urlstring— Contact's LinkedIn profile URL.mailing_citystring— Mailing address city.mailing_countrystring— Mailing address country.mailing_statestring— Mailing address state or province.mailing_streetstring— Mailing address street and suite information.mailing_zip_codestring— Mailing address ZIP or postal code.number_of_employeesnumber— Company size.phone_numbersarray— Array of phone numbers for the prospect (maximum 4).Items: extstring— Phone extension number.numberstring— Phone number in valid format.typestring, possible values:"PRIMARY_PHONE", "MOBILE_PHONE", "HOME_PHONE", "OTHER_PHONE"— Type of phone number: PRIMARY_PHONE, MOBILE_PHONE, HOME_PHONE, OTHER_PHONE
primary_namestring— Primary name.secondary_namestring— Secondary name.titlestring— Job title.topicstring— Topic of interest.
Example:
{
"primary_name": "John Smith",
"secondary_name": "Johnny",
"title": "Senior Sales Manager",
"company": "Acme Corporation",
"department": "Sales",
"description": "Experienced sales professional with 10+ years in enterprise software",
"industry": "Technology",
"lead_source": "LinkedIn",
"lead_status": "Qualified",
"topic": "Enterprise Software Solutions",
"lead_rating": "Hot",
"number_of_employees": 5000,
"annual_revenue": 50000000,
"lead_linkedIn_url": "https://linkedin.com/in/johnsmith",
"linkedIn_url": "https://linkedin.com/in/johnsmith-contact",
"company_linkedIn_url": "https://linkedin.com/company/acme-corp",
"company_url": "https://www.acme-corp.com",
"company_description": "Leading provider of enterprise software solutions",
"mailing_country": "United States",
"mailing_state": "California",
"mailing_city": "San Francisco",
"mailing_street": "123 Market Street, Suite 400",
"mailing_zip_code": "94105",
"assign_to_call_list_id": "ncwoeif_dgfjeo34m",
"custom_fields": [
"Updated custom field 1"
],
"phone_numbers": [
{
"number": "1-555-123-4567",
"type": "PRIMARY_PHONE",
"ext": "1234"
}
],
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxxyyy-ydyd"
}Responses
Status: 204 **HTTP Status Code:** `204` <br> Successfully updated prospect
Status: 400 **HTTP Status Code:** `400` <br> Bad Request **Error Code:** `6003` <br> Call list not created via Open API. <br> **Error Code:** `6041` <br> Prospect does not belong to call list: c-ncE_MXQACAjn3_I_35gg. <br> **Error Code:** `6045` <br> At least one updatable field must be provided for prospect: mq4XpiQISe6tlhHRwX9a8g. <br> **Error Code:** `6100` <br> Validation failed. The `errors` field will have more details. For example: { "code": 6001, "message": "Validation failed", "errors": [ { "field": "primary_email", "message": "Invalid email format" }, { "field": "primary_phone", "message": "Invalid phone number format" }, { "field": "primary_name", "message": "Field exceeds maximum length of 255 characters" } ] } <br>
Status: 403 **HTTP Status Code:** `403` <br> Forbidden **Error Code:** `6023` <br> User is not a Zoom Owner or Admin. <br>
Status: 404 **HTTP Status Code:** `404` <br> Not Found **Error Code:** `6001` <br> Call list not found with id: c-ncE_MXQACAjn3_I_35gg. <br> **Error Code:** `6040` <br> Prospect not found with id: mq4XpiQISe6tlhHRwX9a8g. <br> **Error Code:** `6001` <br> Assigned call list not found with id: ncwoeif_dgfjeo34m. <br>
Status: 500 **HTTP Status Code:** `500` <br> Internal Server Error **Error Code:** `6200` <br> Internal server error. <br>
Get Prospect by ID
- Method:
GET - Path:
/dialer/prospects/{prospectId} - Tags: Prospect Management
Retrieve details of a specific prospect.
Scopes: dialer:read:admin
Granular Scopes: zoom_auto_dialer:read:prospects:admin
Rate Limit Label: LIGHT
Parameters
prospectId required
- In:
path
Unique identifier of the prospect.
string
Responses
Status: 200 **HTTP Status Code:** `200` Successfully retrieved the prospect by ID.
Content-Type: application/json
annual_revenuenumber— Annual revenue of the company.assignee_user_idstring— User ID to whom this prospect is assigned.call_list_idstring— Call list ID this prospect belongs to.companystring— Company name.company_descriptionstring— Company description.company_linkedIn_urlstring— Company LinkedIn profile URL.company_urlstring— Company website URL.create_timestring— When the prospect was created (ISO 8601 format with timezone).custom_fieldsarray— Array of up to 10 custom field values.Items: string— Custom field value.departmentstring— Department.descriptionstring— Additional description or notes about the prospect.dialer_statusstring, possible values:"NOT_CALLED", "DIALING", "CONNECTED", "VOICEMAIL", "BUSY", "NO_ANSWER", "CANCELED", "FAILED"— The outcome status of the dialer call: NOT_CALLED, DIALING, CONNECTED, VOICEMAIL, BUSY, NO_ANSWER, CANCELED, FAILEDdialer_sub_statusstring, possible values:"CANCELED_BY_CALLER", "CANCELED_BY_CALLEE", "CALLED_BY_PBX", "ZP_ERROR", "ANSWER", "NOT_ANSWER"— Sub-status of the dialer call: CANCELED_BY_CALLER, CANCELED_BY_CALLEE, CALLED_BY_PBX, ZP_ERROR, ANSWER, NOT_ANSWERemail_addressesarray— Email addresses.Items: emailstring— Email address.typestring, possible values:"PRIMARY_EMAIL", "SECONDARY_EMAIL", default:"PRIMARY_EMAIL"
email_domainstring— Email domain of the prospect.external_idstring— The third-party UUID. This field is stored and returned as-is.import_fromstring— Import source of the prospect.industrystring— Industry sector.lead_linkedIn_urlstring— LinkedIn profile URL for the lead.lead_ratingstring— Lead rating.lead_sourcestring— Lead source.lead_statusstring— Current status of the lead.linkedIn_urlstring— LinkedIn profile URL for the contact.mailing_citystring— Mailing city.mailing_countrystring— Mailing country.mailing_statestring— Mailing state or province.mailing_streetstring— Mailing street address.mailing_zip_codestring— Mailing ZIP or postal code.modify_timestring— When the prospect was last modified (ISO 8601 format with timezone).number_of_employeesnumber— Number of employees in the company.phone_numbersarray— Phone numbers.Items: extstring— Phone extension.numberstring— Phone number.typestring, possible values:"PRIMARY_PHONE", "MOBILE_PHONE", "HOME_PHONE", "OTHER_PHONE"— Type of phone number: PRIMARY_PHONE, MOBILE_PHONE, HOME_PHONE, OTHER_PHONE
primary_namestring— Primary name.prospect_idstring— Unique identifier of the prospect.prospect_typestring, possible values:"CONTACT", "LEAD"— Type of prospect: CONTACT, LEADsecondary_namestring— Secondary name.titlestring— Job title.topicstring— Topic or interest area.typestring, possible values:"UPCOMING", "CALLED", "SNOOZED", "HISTORY", "NO_CALL_LIST", "REMOVED", "CALL_BACK_INBOUND"— Prospect type enum: UPCOMING, CALLED, SNOOZED, HISTORY, NO_CALL_LIST, REMOVED, CALL_BACK_INBOUND
Example:
{
"prospect_id": "mq4XpiQISe6tlhHRwX9a8g",
"type": "UPCOMING",
"primary_name": "John Smith",
"secondary_name": "Johnny",
"title": "Senior Sales Manager",
"company": "Acme Corporation",
"department": "Sales",
"description": "Experienced sales professional with 10+ years in enterprise software",
"assignee_user_id": "0yT-QeXeQYqW6uizHEFmXA",
"call_list_id": "c-ncE_MXQACAjn3_I_35gg",
"dialer_status": "CANCELED",
"dialer_sub_status": "CANCELED_BY_CALLER",
"create_time": "2025-10-20T20:40:52.214+00:00",
"modify_time": "2025-10-20T20:40:52.223+00:00",
"prospect_type": "CONTACT",
"linkedIn_url": "https://linkedin.com/in/johnsmith-contact",
"lead_linkedIn_url": "https://linkedin.com/in/johndoe",
"company_linkedIn_url": "https://linkedin.com/company/acme-corp",
"company_url": "https://www.acme-corp.com",
"company_description": "Leading provider of enterprise software solutions",
"mailing_country": "United States",
"mailing_state": "California",
"mailing_city": "San Francisco",
"mailing_street": "123 Market Street, Suite 400",
"mailing_zip_code": "94105",
"import_from": "OPEN_API",
"number_of_employees": 100,
"annual_revenue": 500000,
"topic": "Cloud Solutions",
"email_domain": "acme.com",
"industry": "Technology",
"lead_status": "Qualified",
"lead_rating": "Hot",
"lead_source": "Website",
"custom_fields": [
"custom field 1"
],
"phone_numbers": [
{
"number": "1-555-123-4567",
"type": "PRIMARY_PHONE",
"ext": "1234"
}
],
"email_addresses": [
{
"email": "john.smith@acme-corp.com",
"type": "PRIMARY_EMAIL"
}
],
"external_id": "xxxx-uuid"
}