# How to Delete Zoom Recording from API

**URL:** <https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537>\
**Category:** Meetings\
**Tags:** webhooks, recording, api\
**Created:** [February 9, 2024, 8:10am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537 "2024-02-09T08:10:57Z")\
**Posts on this page:** 18\
**Page:** 1

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [February 9, 2024, 8:10am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/1 "2024-02-09T08:10:57Z")

</div>

I am writing to request the deletion of a meeting recording and meeting details from our Zoom account from the code. I am unable to find the Scopes[DELETE] and API documentation for deleting meeting recording so could you please assistance for this issue.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [February 9, 2024, 3:43pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/2 "2024-02-09T15:43:54Z")

</div>

Hi @ramki ,

Here’s the API endpoints of interest and you’ll see the scopes labeled there as well:

- [Zoom Meeting API](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/recordingDelete)
- [Zoom Meeting API](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/recordingDeleteOne)

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [February 10, 2024, 7:21am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/4 "2024-02-10T07:21:24Z")

</div>

Hello @gianni.zoom  
Thank you for your response, but I am still getting the error that I have mentioned below.

```auto
async function deleteRecording() {
  const accountId = " *********";
  const meetingId = " *******";
  const recordingId = " *********";

  try {
    const deleteResponse = await axios.delete(`https://api.zoom.us/v2/accounts/${accountId}/meetings/${meetingId}/recordings`, {
      headers: {
        'Authorization': `Bearer ${accessToken}`,
      },
    });

    console.log("Recording deleted successfully:", deleteResponse.data);
  } catch (error) {
    console.error('Error deleting recording:', error.response.data);
  }
}
deleteRecording();
I am getting the error while doing deletion:

{

"code": 4711,

"message": "Invalid access token, does not contain scopes:[recording:master, recording:write:master]."

}

I am getting invalid scopes, but I have given scopes in the code and marketplace, but I am unable to find the [recording:write:master]. I only found the [recording:master].

![image|690x207](upload://iU7qhDTLC7iQBR7VHnL5TXvBikR.png)
```

---

<div class="post-metadata">

**Author:** ![aadarshkumarhappy](https://avatars.discourse-cdn.com/v4/letter/a/a9a28c/32.png) [@aadarshkumarhappy](https://devforum.zoom.us/u/aadarshkumarhappy)\
**Post date:** [February 10, 2024, 12:39pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/5 "2024-02-10T12:39:47Z")

</div>

If a Zoom call is recorded on the cloud, can someone access the recording and metadata? If yes, what system is required?

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [February 15, 2024, 5:11pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/6 "2024-02-15T17:11:43Z")

</div>

Hi @ramki ,

> [@ramki](#):
>
> ```auto
> deleteRecording();
> I am getting the error while doing deletion:
> 
> {
> 
> "code": 4711,
> 
> "message": "Invalid access token, does not contain scopes:[recording:master, recording:write:master]."
> 
> }
> 
> I am getting invalid scopes, but I have given scopes in the code and marketplace, but I am unable to find the [recording:write:master]. I only found the [recording:master].
> 
> ```

This is the master account endpoint. Do you have a [master-subaccount structure](https://developers.zoom.us/docs/api/rest/master-account-apis/)? If not, please use the endpoint I linked earlier. The difference is the {accoundId} portion.

If you do in fact have a master-subaccount structure with appropriate scopes added, please try uninstalling your app, regenerating your application credentials, and generating a new access token with the generated credentials. Use the new token to access the endpoint.

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [February 22, 2024, 2:41pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/7 "2024-02-22T14:41:44Z")

</div>

Hello Gianni,

That issue was resolved, so I want to know how I can get total cloud storage in Zoom.  
can I achieve this with an API? If possible, could you suggest me?

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [February 22, 2024, 4:23pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/8 "2024-02-22T16:23:23Z")

</div>

@ramki , what do you mean by total cloud storage?

Here’s our support docs on cloud recording:  
[https://support.zoom.com/hc/en/article?id=zm\_kb&sysparm\_article=KB0063923](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0063923)  
[https://support.zoom.com/hc/en/article?id=zm\_kb&sysparm\_article=KB0067670](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0067670)

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [February 23, 2024, 5:01am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/9 "2024-02-23T05:01:56Z")

</div>

I need to retrieve comprehensive storage details for all completed meetings. For instance, I want to find out how much space ten finished meetings take up in the cloud. Can you help me understand the total storage used by these meetings?

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [February 26, 2024, 4:41pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/10 "2024-02-26T16:41:31Z")

</div>

Hi @ramki ,

That will depend on the meeting size, length and features used during the meeting. This support article reviews this and has helpful links for seeing how much storage is being used:

[https://support.zoom.com/hc/en/article?id=zm\_kb&sysparm\_article=KB0067670](https://support.zoom.com/hc/en/article?id=zm_kb&sysparm_article=KB0067670)

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [February 27, 2024, 11:49am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/11 "2024-02-27T11:49:20Z")

</div>

Hi Gianni,  
I’m asking for access to Zoom’s whole cloud storage via an API.  
Can I make this happen?

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [February 28, 2024, 3:58pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/12 "2024-02-28T15:58:36Z")

</div>

Hi @ramki , you can see [all the recordings for individual users](https://developers.zoom.us/docs/api/rest/reference/zoom-api/methods/#operation/recordingsList), but not all recordings across an entire account via API at this time.

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [March 5, 2024, 7:43am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/13 "2024-03-05T07:43:21Z")

</div>

Thanks for the information.  
1)I am getting the zoom all recording storages, but I found that there is something different storage type in the recording so I want to type of the total storage and how to convert it to MB. Can you help to achieve it?

```auto
"type":4,
"start_time":"2024-03-05T06:15:30Z",
"timezone":"Asia/Kolkata",
"duration":0,
"total_size":975361,
"recording_count":3,

```

1. we can only get the personal meetings stored in the cloud only we can’t get the all meetings.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [March 6, 2024, 6:15pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/14 "2024-03-06T18:15:13Z")

</div>

Hi @ramki ,

It is the value in bytes, so you can convert to MB afterwards.

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [March 7, 2024, 5:46am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/15 "2024-03-07T05:46:52Z")

</div>

> [@ramki](#):
>
> we can only get the personal meetings stored in the cloud only we can’t get the all meetings.

> [@ramki](#):
>
> we can only get the personal meetings stored in the cloud only we can’t get the all meetings.

Thank you Gianni,  
I need another query. we can only get the personal meetings stored in the cloud only we can’t get the all meetings.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [March 7, 2024, 6:09am UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/16 "2024-03-07T06:09:04Z")

</div>

Hi @ramki , check settings:

[https://support.zoom.com/hc/en/category?id=kb\_category&kb\_category=55597a9a8720391089a37408dabb353e](https://support.zoom.com/hc/en/category?id=kb_category&kb_category=55597a9a8720391089a37408dabb353e)

---

<div class="post-metadata">

**Author:** ![ramki](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ramki/32/34842_2.png) [@ramki](https://devforum.zoom.us/u/ramki)\
**Post date:** [March 26, 2024, 12:55pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/17 "2024-03-26T12:55:36Z")

</div>

Hello Gianni,  
I am facing an issue with Webhook in that the that the URL is not validating.

I am developing an application in Zoom, so when I use the Ngrok URL, event notification endpoint URL [production] will be validated, but when I host my web application in Catalyst, it will not be validated with the production URL. When I deploy into Catalyst, the URL will be generated in the developing mode, so I am converting it into the production URL, which is the URL I have given in the web application URL in the event notification endpoint URL [production]. It will not validate the same process when I use Ngrok.

Nodejs Code to validating the End point URL:

```auto
const message = `v0:${req.headers['x-zm-request-timestamp']}:${JSON.stringify(req.body)}`
  console.log("Message :", message)
  const hashForVerify = crypto.createHmac('sha256', process.env.ZOOM_WEBHOOK_SECRET_TOKEN).update(message).digest('hex')
  // hash the message string with your Webhook Secret Token and prepend the version semantic
  const signature = `v0=${hashForVerify}`
  if (req.headers['x-zm-signature'] === signature) {
    if (req.body.event === 'endpoint.url_validation') {
      const hashForValidate = crypto.createHmac('sha256', process.env.ZOOM_WEBHOOK_SECRET_TOKEN).update(req.body.payload.plainToken).digest('hex')
      response = {
        message: {
          plainToken: req.body.payload.plainToken,
          encryptedToken: hashForValidate
        },
        status: 200
      }
      console.log(response.message)
      res.status(response.status)
      res.json(response.message)
    } else {
      response = { message: 'Authorized request to Zoom Webhook.', status: 200 }
      console.log("response", response.message)
      res.status(response.status)
      res.json(response)
      // business logic here, example make API request to Zoom or 3rd party
      console.log("Upload into workdrive...");

```

Note: This code will be working good when i was use Ngrok so the problem is after deploying the application URL is not validating.

 ![7708589263bdba4b417901046993febe3394ac04_2_1035x582](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/7/7/770282870a26c5f441c596bc0012e0fe030b8c55.png)

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [March 27, 2024, 4:26pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/18 "2024-03-27T16:26:33Z")

</div>

Hi @ramki ,

Just sent you a private message. Please respond there with the info I need.

---

<div class="post-metadata">

**Author:** ![gianni.zoom](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/gianni.zoom/32/32523_2.png) [@gianni.zoom](https://devforum.zoom.us/u/gianni.zoom)\
**Post date:** [April 29, 2024, 7:13pm UTC](https://devforum.zoom.us/t/how-to-delete-zoom-recording-from-api/103537/19 "2024-04-29T19:13:27Z")

</div>

Issue was resolved on customer side. It required DNS configuration.
