# Automating PDF Access via API Calls for Login-Restricted Content in Glide Data Tables

**URL:** <https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445>\
**Category:** Ask for Help\
**Created:** [June 12, 2025, 10:17pm UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445 "2025-06-12T22:17:53Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 12, 2025, 10:17pm UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/1 "2025-06-12T22:17:53Z")

</div>

I am trying to access a PDF via a web embedding, but it’s not working because the PDF requires login credentials to view. The Glide platform currently doesn’t support embedding login-required content via web embedding. If the link to the PDF were public, I could use web embedding to view it.

I have another idea: to call the API and pass my credentials in the headers to access the PDF. However, the challenge is that each PDF in my case is identified by a unique URL that includes the ‘main link’ and a specific PDF ID.

My question is: Is it possible for every single record in my Glide data source to call the API for its specific URL? If yes, can someone guide me on how to fetch and access the individual URL for each record and use it to call the API?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 12, 2025, 11:59pm UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/2 "2025-06-12T23:59:02Z")

</div>

Does your storage platform offer that type of API call? What would it return?

---

<div class="post-metadata">

**Author:** ![Mazen](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mazen/32/84042_2.png) [@Mazen](https://community.glideapps.com/u/Mazen)\
**Post date:** [June 13, 2025, 2:46pm UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/3 "2025-06-13T14:46:15Z")

</div>

I think it’s do-able using [make.com](http://make.com) integration

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 13, 2025, 11:15pm UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/4 "2025-06-13T23:15:18Z")

</div>

What integration to be specific?

---

<div class="post-metadata">

**Author:** ![Mazen](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/mazen/32/84042_2.png) [@Mazen](https://community.glideapps.com/u/Mazen)\
**Post date:** [June 14, 2025, 12:43am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/5 "2025-06-14T00:43:48Z")

</div>

> [@Namra](#):
>
> I am trying to access a PDF via a web embedding

Something like this:  
Use a **Webhook trigger** in Make to listen for new or updated rows from Glide (or use Glide’s API if you have an enterprise plan).  
Then in the Make scenario:

1. **HTTP module** to call the PDF API using credentials in the headers.
2. **Upload the PDF** to a public service like Google Drive or Cloudinary.
3. **Update Glide** with the public URL (using Glide API or connected sheet).

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 14, 2025, 12:48am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/6 "2025-06-14T00:48:55Z")

</div>

I think OP has access to the file, it’s just that they want users to enter credentials before viewing the file.

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 17, 2025, 10:43am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/7 "2025-06-17T10:43:02Z")

</div>

> [@ThinhDinh](#):
>
> Does your storage platform offer that type of API call? What would it return?

yes, it does offer when using simple python code it returns pdf

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 17, 2025, 10:44am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/8 "2025-06-17T10:44:25Z")

</div>

> [@Mazen](#):
>
> Something like this:  
> Use a **Webhook trigger** in Make to listen for new or updated rows from Glide (or use Glide’s API if you have an enterprise plan).  
> Then in the Make scenario:
> 
> 1. **HTTP module** to call the PDF API using credentials in the headers.
> 2. **Upload the PDF** to a public service like Google Drive or Cloudinary.
> 3. **Update Glide** with the public URL (using Glide API or connected sheet).

There is no webhook trigger here :

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/1/4/14842f5b58165c898176b7010ce41ce32e34ed55.png)

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 17, 2025, 10:46am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/9 "2025-06-17T10:46:13Z")

</div>

You are trying to add a new column. What Mazen suggested is a “Trigger Webhook” action.

> [@Namra](#):
>
> yes, it does offer when using simple python code it returns pdf

So your users would still have to enter credentials into the Glide app itself to trigger this?

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 17, 2025, 11:00am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/10 "2025-06-17T11:00:55Z")

</div>

No, actually when I tried with my python code it does not require credentials for that api it requires some headers and a token, and it is returning binary content using simple python code, if i use same url without header here it is returning “FOUND”

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/a/b/ab1a0d72947bf0595f4139f389ac2d1404540ecc.png)  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/e/7/e7fe6e7a9878a9a41b856695e997a3ab7a065a3a.png)

> [@ThinhDinh](#):
>
> So your users would still have to enter credentials into the Glide app itself to trigger this?

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 17, 2025, 11:04am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/11 "2025-06-17T11:04:39Z")

</div>

> [@ThinhDinh](#):
>
> So your users would still have to enter credentials into the Glide app itself to trigger this?

if I use some header as in my python code it returns binary content of pdf and in my python code it did not require any credentials just some headers and I entered all of them, but here in glide when I entered same headers it return me 401 error :Processing: image.png…

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/8/488dfedbb453f83b22aca4a53dc1f016bd30878a.png)

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 20, 2025, 6:53am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/12 "2025-06-20T06:53:38Z")

</div>

@ThinhDinh ? @Mazen ?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2025, 8:39am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/13 "2025-06-20T08:39:11Z")

</div>

I’m not sure since I don’t know what storage solution you’re using here. A 401 error means the API call was unauthorized, usually due to missing or invalid credentials.

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 20, 2025, 9:04am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/14 "2025-06-20T09:04:04Z")

</div>

Ok my URL can work with headers, but there is no option in glide to enter headers?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2025, 9:14am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/15 "2025-06-20T09:14:15Z")

</div>

![CleanShot 2025-06-20 at 16.14.05](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/1/4/14224f385e5eef25536ffdac689ec05f0385ffb4.png)

There is.

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 20, 2025, 9:18am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/16 "2025-06-20T09:18:18Z")

</div>

It is actually public URL but it requires headers and it can show pdf if headers are entered, and it is showing something like this when I tried with callAPI

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/4/7/472e3fffe839992c42f4afe8d55c707fbaaf19bf.png)  
**but layout is not showing anything:**  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/1/1/1134e6f00a064af5f9e9e8375ae55e624e42ffae.png)  
If it starts working and displays the PDF because my link and header are now correct, the issue lies with the web embedding not displaying it.

**However, this isn’t my original requirement**. I want to display the PDF using `callAPI`. The problem is that `callAPI` uses the same manually entered URL for all rows.

If the above method works, it should take an individual URL for each row and display it using web embedding. Is this possible?

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2025, 9:20am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/17 "2025-06-20T09:20:48Z")

</div>

> [@Namra](#):
>
> If the above method works, it should take an individual URL for each row and display it using web embedding. Is this possible?

Wouldn’t it be possible for you to just point the endpoint field to a column?

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 20, 2025, 9:27am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/19 "2025-06-20T09:27:26Z")

</div>

Yes, that worked but still pdf is not being displayed in web embedding

---

<div class="post-metadata">

**Author:** ![Namra](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Namra](https://community.glideapps.com/u/Namra)\
**Post date:** [June 20, 2025, 9:32am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/20 "2025-06-20T09:32:09Z")

</div>

Results so far :

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/3/9/39dbf93a1dd79692660baae4a05ebce3ea9417b9.png)  
 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/3X/5/c/5cdf5cc7a31f87ccce5d6a0286376f14d82abd6a.png)

---

<div class="post-metadata">

**Author:** ![ThinhDinh](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/thinhdinh/32/49_2.png) [@ThinhDinh](https://community.glideapps.com/u/ThinhDinh)\
**Post date:** [June 20, 2025, 9:34am UTC](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445/21 "2025-06-20T09:34:46Z")

</div>

Does your platform return any sort of public URL instead of this?

[Next page](https://community.glideapps.com/t/automating-pdf-access-via-api-calls-for-login-restricted-content-in-glide-data-tables/82445.md?page=2)
