Digital Downloads App: Programmatic access (API calls)

Topic summary

Request: programmatic access (API) to Digital Downloads, specifically to retrieve the download URL per product variant.

Status from Shopify: No API access available for the Digital Downloads app. Suggested alternative is a third‑party app (SendOwl) that provides an API. API = Application Programming Interface.

Community feedback: Multiple participants (years later) confirm the API is still unavailable and express frustration, citing needs to manage content externally via APIs.

Workarounds shared:

  • Surface links on checkout/order status pages using order_status_url and related Shopify help docs; manual download links are possible but unrestricted.
  • Theme edit example: adding a link in customers/order.liquid directing buyers back to their order confirmation to retrieve downloads later.
  • Heuristic checks (line_item product handles/tags/collections) to infer digital items. Limitations: not reliable for complex catalogs or migrated orders.

Technical concerns: The app seems to mirror orders internally, hindering relational designs and API-based migrations. One user plans a private app to meet needs.

New development: A user claims success automating digital uploads via a Puppeteer (browser automation) script (upload file, set fulfillment, limits, publish); several request the script. No official solution or timeline; feature request to Shopify suggested. Discussion remains open.

Summarized with AI on December 29. AI used: gpt-5.

I would need programmatic access (API calls) to the digital downloads in order to:

  • access the download URL for a digital download attached to a product variant

Any hint, much appreciated.

3 Likes

Hi Stefanos,

The Digital Downloads app doesn’t give API access to the download URL at the moment. You may need to use another app (like https://apps.shopify.com/sendowl) which does have an API.

Let me know if you have any other questions!

Kristina

1 Like

Still no API available?

Tht is the first time Shopify has really given me the shaft.

We use SendOwl and the service is not really what we want (3+ years later).

LMK, pretty dissappointed…

2 Likes

Still no API available? - I’m pretty happy with the platform overall, but this seems a huge miss for anyone trying to manage their content outside Shopify and push data via the API’s!!!

5 Likes

Good work with the Digital Download app. Thanks.

I can understand why API is not provided. However, at minimum, the downloadable product URL should be listed in the customer’s orders page. It is not a big deal to provide this much which is a “must have” feature.

Or is Shopify trying to make Digital Downloads App useless intentionally?

On the contrary, this module should have been merged into the base app already.

4 Likes

@smozgur relevant? https://help.shopify.com/en/manual/apps/apps-by-shopify/digital-downloads#display-a-download-link-on-the-checkout-page

You can also make manual download links, note: lets a customer freely download a file

https://help.shopify.com/en/manual/apps/apps-by-shopify/digital-downloads#adjust-the-fulfillment-settings-for-your-digital-products

You should also be able to just direct them to the order confirmation page using {{ order.order_status_url }}

https://help.shopify.com/en/manual/apps/apps-by-shopify/digital-downloads#display-a-download-link-on-the-checkout-page

https://help.shopify.com/en/manual/orders/status-tracking

https://help.shopify.com/en/manual/orders/status-tracking/customize-order-status

If none of those apply be sure to write up your use case and send a feature request to shopify support.

2 Likes

Thanks Paul.

Checkout page is irrelevant unfortunately. I am trying to let customers to access the download links months later and without requiring any manual action.

On the other hand, the Order status page is kind of helpful to allow customers to access their links when they lost the initial download email and without asking us to resend the email.

So I just went to customers/order.liquid (Debut theme) and put the following code just below the header (line 21):

Visit Order Confirmation Page if your order contains downloadable products.

This is better than nothing!

However, I still wish we could access digital download entity to verify if any order product has a downloadable item to show the link accordingly instead saying “if your order contains downloadable products”, or of course dream option is being able to put the download links directly in the list items which requires order/{order_id}/digital-downloads endpoint in the base application.

However, still, this is better than nothing until Shopify decides to merge this module to the base application.

Thanks again.

1 Like

However, I still wish we could access digital download entity to verify if any order product has a downloadable item to show the link accordingly instead saying “if your order contains downloadable products”

For now can’t you just check the line_item’s product handles or tags or collections for that?

For now can’t you just check the line_item’s product handles or tags or collections for that?

Right, I should admit that it is an option, but really not the real solution. Especially if the store has digital products more than physical versions (book store in my case) and also have an existing database to be transferred including existing sales to provide auto-conversion without manual interaction. Shopify app’s design is looks to be storing a mirror copy of each order to associate the downloadable items. I’d rather keep it as relational design to provide solution for the orders transferred via API. Of course if there was an API, then this wouldn’t be a problem.

I started to plan developing our own private App for this purpose. It is too bad because I actually liked Shopify’s app but really not answering vital needs.

Thanks again for your help.

Note: I posted another thread for further inquiry about the App but I don’t think that any of the desired features will be included or the App is merged to the core.
https://community.shopify.com/c/Shopify-APIs-SDKs/Digital-Downloads-App-amp-Creating-Order-by-using-API/td-p/774759

1 Like

Agree

I managed to automatically upload digital content to the store.

It’s a script that uses puppeteer lib to manipulate the browser.

to open the product page, upload the file, click the fulfillment setting, change the download limit, and publish the content. all automation.

If you need that, reply here.

1 Like

@williamng Well then please could you share it then?

@williamng Could you share the script with me? Lmk and I’ll drop my email.

Hi @williamng could you please share the code? Lmk and I’ll share my email