Zoom delete recording response No permission

Not able to delete the zoom recording using delete API

I am not able to delete the zoom recording using delete API.
API : https://api.zoom.us/v2/meetings/{meeting_id}/recordings
Host role: Owner
type: 2

“code”: 200,
“message”: “No permission.”

Hi @spandan,

Can you check to see if the following setting is enabled on your account?

This can be accessed from this page:


Yes, i enabled The host can delete cloud recordings option at the account level.

Hi @spandan,

Are you authorizing this request using JWT or OAuth?


I have exactly the same issue, authorizing with JWT. That setting is enabled (doesn’t actually appear to be possible to disable it for some reason)

@mdryan can you confirm that the recording belongs to the same account as the JWT token you’re using?

Yes, definitely the same account as the JWT token.

I can get the meeting details and download the video just fine, but when it comes to then deleting it I receive 200/no permission

Thanks for confirming @mdryan. Can you open up a request with us here and share the full details of the request you’re making, the JWT token you’re using and, the recording/meeting ID? This will help us to take a closer look.


I’m an idiot. The endpoint is

DELETE /meetings/{meetingId}/**recordings**/{recordingId}

For some reason I hadn’t noticed that recordings in the endpoint documentation until just now when I came to submit the ticket. As soon as I hit the correct endpoint it actually works as expected!

One 11 character commit later, it appears to be working in production and very soon my account will not be quite so ridiculously over quota!

Apologies for confusion and thanks for your help.

1 Like

Happy you figured it out!

I am using the JWT token & the token works for deleting account level recording but it’s not working at the admin level. Please help :frowning:

  let axiosConfig = {
    headers : {
      'Content-Type' : 'application/json',
      'Accept' : 'application/json',
      'Authorization' : `Bearer ${zoomToken}`
  await axios.delete(`https://api.zoom.us/v2/meetings/${meetingNo}/recordings`,  axiosConfig)
  .then((res) => {
    console.log('Meeting Reording Deleted ')
  .catch((err) => {
    console.log("AXIOS ERROR: ", err.response.data.message);
    if(err.response.data.message === "No permission."){

I have almost 10 hosts same code works for the account-level host but not working for the root account.

Hi @spandan,

Which endpoint are you calling—this one?

It appears that way—however, you will need to ensure you’re passing the action to delete as a query parameter as outlined in the docs. Can you double check that?


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.