Zoom Phone Calls, Voicemail & SMS
Missed a call while you were heads-down? Pull your Zoom Phone call history, play back recordings and read their transcripts, work through voicemails and mark them read, then follow up by SMS from your Zoom Phone number.
Connect this API to an AI agent Browse all specs
What you can do with Zoom Phone Calls, Voicemail & SMS via MCP
Every endpoint below becomes a governed tool your AI agent (Claude, ChatGPT, or a customer-facing VX agent) can call — with scoped permissions, sandbox testing, and audit logs.
| Method | Path | Operation | Description |
|---|---|---|---|
| GET | /phone/users/{userId} |
getPhoneProfile | Get the user's Zoom Phone profile (extension, numbers, site) |
| GET | /phone/users/{userId}/settings |
getPhoneSettings | Get the user's Zoom Phone settings (voicemail, delegation, SMS) |
| GET | /phone/users/{userId}/call_history |
listCallHistory | List the user's calls with direction, result and recording filters |
| GET | /phone/users/{userId}/recordings |
listRecordings | List the user's call recordings |
| GET | /phone/recording_transcript/download/{recordingId} |
getRecordingTranscript | Get the transcript of a call recording |
| GET | /phone/users/{userId}/voice_mails |
listVoicemails | List the user's voicemails, read or unread |
| GET | /phone/voice_mails/{voicemailId} |
getVoicemail | Get one voicemail with caller, duration and transcript |
| PATCH | /phone/voice_mails/{voicemailId} |
markVoicemailRead | Mark a voicemail as read or unread |
| GET | /phone/users/{userId}/sms/sessions |
listSmsSessions | List the user's SMS conversations |
| GET | /phone/sms/sessions/{sessionId} |
getSmsSession | Read the messages in an SMS conversation |
| GET | /phone/sms/sessions/{sessionId}/messages/{messageId} |
getSmsMessage | Get one SMS message |
| POST | /phone/sms/messages |
sendSms | Send an SMS from the user's Zoom Phone number |
Authentication
zoom_oauth
OAuth 2.0
Scopes: phone:read:user phone:read:user_setting phone:read:list_call_logs phone:read:list_recordings phone:read:recording_transcript phone:read:list_voicemails phone:read:voicemail phone:update:voicemail phone:read:list_sms_sessions phone:read:sms_session phone:read:sms_message
Zoom OAuth 2.0 (authorization code) for a user-managed Zoom app.
How to get a credential
- Sign in to the Zoom App Marketplace (https://marketplace.zoom.us) and choose Develop > Build App > General App.
- Set it to User-managed, and add the VX Agents OAuth redirect URL shown on the credential form.
- Under Scopes, add the Zoom Phone scopes in the table below.
- Copy the Client ID and Client Secret into a VX Agents OAuth2 credential and sign in with the Zoom user whose phone line the agent should use. That user needs a Zoom Phone license; SMS must be enabled for their number to send texts.
Permissions used
| Scope | Operations |
|---|---|
phone:read:user, phone:read:user_setting |
getPhoneProfile, getPhoneSettings |
phone:read:list_call_logs |
listCallHistory |
phone:read:list_recordings, phone:read:recording_transcript |
listRecordings, getRecordingTranscript |
phone:read:list_voicemails, phone:read:voicemail, phone:update:voicemail |
listVoicemails, getVoicemail, markVoicemailRead |
phone:read:list_sms_sessions, phone:read:sms_session, phone:read:sms_message |
listSmsSessions, getSmsSession, getSmsMessage, sendSms |
Common errors
| Status | Meaning | Fix |
|---|---|---|
| 401 | Token expired or revoked | Reconnect the credential; access tokens last one hour and are refreshed automatically. |
| 403 | Scope missing, or no Zoom Phone license | Add the scope above to the app and reconnect; ask the Zoom admin to assign a Zoom Phone license. |
| 404 | Recording, voicemail or SMS session not found | Use ids returned by the list operations; they belong to the signed-in user. |
| 400 | Bad field | Dates are yyyy-MM-dd; SMS to_members needs E.164 numbers. |
| 429 | Rate limit | Wait and retry; the call history and SMS APIs are Medium/Heavy-limit. |
Store it as a VX Agents OAuth2 credential.
Usage guide
Setup
- Connect a VX Agents OAuth2 credential for a user-managed Zoom General App with the Zoom Phone scopes listed on the credential. The signed-in user needs a Zoom Phone license.
- Pin
userIdtomeon every operation that takes it (the signed-in user). - Optional: pin
sender.phone_numberonsendSmsto the user's SMS-enabled number (fromgetPhoneProfile).
Catch up on missed calls
listCallHistorywithfrom/toandcall_results(no_answer,voicemail, ...) ordirections=inboundfor the calls the user missed. Each record has the caller number and name, time and whether there is a recording or voicemail.listVoicemailswithstatus=unread;getVoicemailreturns caller, duration, adownload_urland the transcript when Zoom has one. Summarise it for the user.listRecordingslists recorded calls;getRecordingTranscriptwith the recordingidreturns a redirect to the transcript file (JSON) when transcription is on.- After the user has dealt with a voicemail,
markVoicemailReadwithread_status=Read. - To follow up by text:
listSmsSessionsshows existing conversations,getSmsSessionreads one. Draft the reply and show it to the user; only after they confirm, callsendSmswithsender.phone_number,to_members[].phone_number(E.164, e.g.+14155550123) andmessage, plussession_idto continue an existing thread.
Good to know
from/toacceptyyyy-MM-ddoryyyy-MM-dd'T'HH:mm:ss'Z'; sendtowhenever you sendfrom.- Lists page with
page_size(max 300 for calls, recordings and voicemails; 100 for SMS) andnext_page_token. - SMS messages are up to 500 characters; more than one US/CA recipient creates a group thread.
- Recording, voicemail and transcript download URLs need the same OAuth token.
- These are user-level calls: other users' lines and account-wide reports need an admin app and are not part of this spec.
Source: Zoom Phone API reference (https://developers.zoom.us/docs/api/phone/), checked 2026-10-23.
How to use this spec
- Create a free VX Agents account (sandbox tools included).
- Open the marketplace and connect “Zoom Phone Calls, Voicemail & SMS” to an agent.
- Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.