Permission error 403 when downloading voicemail through returned download_url

We are having problem downloading voicemail through returned download_url.

We use list voicemail end point to get all the voicemails - https://api.zoom.us/v2/phone/voice_mails

This returned json response has a field called “download_url”

When we try to download voicemail using this download_url we get following error

{
“code”: 403,
“message”: “You do not have permission.”
}

We are using the same Authorization header for getting list of voicemails and for downloading the voicemail.

Hi @kannantl , this sounds similar to a permissions error we sometimes see for cloud recording. Check out this section of this blog for troubleshooting: Optimize Zoom cloud recording workflows -- guidance and tips for developers for extracting data-rich AI-powered insights

Thanks @gianni.zoom for the reply. What permission is needed for downloading voicemails? We are using API (https://api.zoom.us/v2/phone/voice_mails?) with bearer token to get list of voicemails. We are using the same token to download the voicemail.

Hi @kannantl , I don’t see that endpoint here: Zoom Phone API

Could you please share the direct link?

The prereqs on each API endpoint page share the account type and scopes needed which helps clarify permissions. E.x. whether only an admin with the specific scope will be able to retrieve info via that endpoint.

Please look at the detailed response documentation as well.

Hi @gianni.zoom,

The direct link to the endpoint in question is Get account voicemails.

To reiterate, we do receive data from the endpoint. However, the issue arises when we attempt to use the download_url field from the response object. Despite using the same auth token that successfully retrieves the account voicemails, we encounter the following error:

{ “code”: 403, “message”: “You do not have permission.” }

Note: This is a Server-to-Server OAuth app.

For further context, we noticed a similar issue was discussed in a previous support ticket: Error 403 when downloading voicemail through returned download URL.

Hi @mukesh.kastala can you please confirm the scopes you have? Is the download_url returning that error for all the voicemails in the array?

Hi @gianni.zoom, we’ve identified the issue. It turns out the user who set up the Server-to-Server OAuth app needed to have a Zoom Phone license assigned, and this license must be present at the time of each API request to download a voicemail.

Note: The app had the necessary scopes form the start.

1 Like

Thanks for clarifying and sharing the solution!