# Recording.completed webhook download\_token not working

**URL:** <https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411>\
**Category:** API and Webhooks\
**Tags:** webhooks, recording\
**Created:** [October 26, 2023, 5:41pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411 "2023-10-26T17:41:43Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![afinkel](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/afinkel/32/44821_2.png) [@afinkel](https://devforum.zoom.us/u/afinkel)\
**Post date:** [October 26, 2023, 5:41pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/1 "2023-10-26T17:41:43Z")

</div>

**Description**

- Zoom account was switched from being hosted by [zoom.us](http://zoom.us) to [zoom-x.de](http://zoom-x.de), subsequently the `download_token` provided `recording.completed` webhook results in a `401` when attempting to download the file defined in `download_url`

**Error?**

- `401` http status code

**How To Reproduce**

1. Zoom account hosted on [zoom-x.de](http://zoom-x.de)
2. Receive `recording.completed` webhook
3. Attempt to download file defined in `download_url` with the `download_token` as the auth token
4. Receive `401` response.

---

<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:** [October 26, 2023, 10:36pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/2 "2023-10-26T22:36:24Z")

</div>

Hi @afinkel , was it more than 24hrs between receiving the webhook and trying to query?

---

<div class="post-metadata">

**Author:** ![afinkel](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/afinkel/32/44821_2.png) [@afinkel](https://devforum.zoom.us/u/afinkel)\
**Post date:** [October 31, 2023, 2:46pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/4 "2023-10-31T14:46:47Z")

</div>

So I was mistaken. We are getting a `200` response back, but with an html login page. I would suspect that the `download_token` provided with the webhook payload would have sufficient privileges?

The `GET` request for the file was within 24 hours of receiving the webhook.

---

<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:** [October 31, 2023, 4:14pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/5 "2023-10-31T16:14:51Z")

</div>

> [@afinkel](#):
>
> I would suspect that the `download_token` provided with the webhook payload would have sufficient privileges?

Yes provided you use within 24 hrs of receiving the webhook. After 24 hrs, you have to use one of the cloud recording endpoints to receive the recording.

---

<div class="post-metadata">

**Author:** ![afinkel](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/afinkel/32/44821_2.png) [@afinkel](https://devforum.zoom.us/u/afinkel)\
**Post date:** [October 31, 2023, 4:28pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/6 "2023-10-31T16:28:49Z")

</div>

> Yes provided you use within 24 hrs of receiving the webhook. After 24 hrs, you have to use one of the cloud recording endpoints to receive the recording.

In that case, why is the `GET` request failing within 24 hours of receiving the webhook?

---

<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:** [November 1, 2023, 12:46am UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/7 "2023-11-01T00:46:27Z")

</div>

Hi @afinkel , the token is for the download\_url from the webhook, not for the API.

---

<div class="post-metadata">

**Author:** ![afinkel](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/afinkel/32/44821_2.png) [@afinkel](https://devforum.zoom.us/u/afinkel)\
**Post date:** [November 1, 2023, 4:40pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/8 "2023-11-01T16:40:35Z")

</div>

> Hi @afinkel , the token is for the download\_url from the webhook, not for the API.

I understand that. We are using the `download_token` for its intended purpose, but in these cases it returns a login page as opposed to the file itself.

---

<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:** [November 7, 2023, 5:10pm UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/9 "2023-11-07T17:10:53Z")

</div>

> [@afinkel](#):
>
> I understand that. We are using the `download_token` for its intended purpose, but in these cases it returns a login page as opposed to the file itself.

> [@afinkel](#):
>
> In that case, why is the `GET` request failing within 24 hours of receiving the webhook?

I think I am misunderstanding a bit. Can you please clarify if you’re using the GET API endpoint or you’re using the download\_token with the download\_url from the webhook?

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [November 10, 2024, 8:47am UTC](https://devforum.zoom.us/t/recording-completed-webhook-download-token-not-working/97411/10 "2024-11-10T08:47:12Z")

</div>

Closed on November 10, 2024, 8:47am UTC

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