VX Agents

API directory · Messaging & SMS

Zoom Phone Calls, Voicemail & SMS

v1.0.0 · 12 endpoints · 0 connections · shared by vx.ai

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.

MethodPathOperationDescription
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

  1. Sign in to the Zoom App Marketplace (https://marketplace.zoom.us) and choose Develop > Build App > General App.
  2. Set it to User-managed, and add the VX Agents OAuth redirect URL shown on the credential form.
  3. Under Scopes, add the Zoom Phone scopes in the table below.
  4. 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

  1. 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.
  2. Pin userId to me on every operation that takes it (the signed-in user).
  3. Optional: pin sender.phone_number on sendSms to the user's SMS-enabled number (from getPhoneProfile).

Catch up on missed calls

  1. listCallHistory with from/to and call_results (no_answer, voicemail, ...) or directions=inbound for the calls the user missed. Each record has the caller number and name, time and whether there is a recording or voicemail.
  2. listVoicemails with status=unread; getVoicemail returns caller, duration, a download_url and the transcript when Zoom has one. Summarise it for the user.
  3. listRecordings lists recorded calls; getRecordingTranscript with the recording id returns a redirect to the transcript file (JSON) when transcription is on.
  4. After the user has dealt with a voicemail, markVoicemailRead with read_status=Read.
  5. To follow up by text: listSmsSessions shows existing conversations, getSmsSession reads one. Draft the reply and show it to the user; only after they confirm, call sendSms with sender.phone_number, to_members[].phone_number (E.164, e.g. +14155550123) and message, plus session_id to continue an existing thread.

Good to know

  • from/to accept yyyy-MM-dd or yyyy-MM-dd'T'HH:mm:ss'Z'; send to whenever you send from.
  • Lists page with page_size (max 300 for calls, recordings and voicemails; 100 for SMS) and next_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

  1. Create a free VX Agents account (sandbox tools included).
  2. Open the marketplace and connect “Zoom Phone Calls, Voicemail & SMS” to an agent.
  3. Expose it as an MCP server for Claude/ChatGPT, or chat with it directly.

Related APIs