---
title: "Create a new Product DigitalProduct."
method: POST
path: "/products/{id}/digital_products.json"
tags: ["Product DigitalProducts"]
---

# Create a new Product DigitalProduct.

`POST /products/{id}/digital_products.json`

## Request

- Base URL: `https://api.jumpseller.com/v1`
- URL: `https://api.jumpseller.com/v1/products/{id}/digital_products.json`
- Auth: one of:
  - HTTP basic
  - API key in query parameter `login` and API key in query parameter `authtoken`
  - OAuth 2
    - Authorization code: `https://accounts.jumpseller.com/oauth/authorize`
    - Token URL: `https://accounts.jumpseller.com/oauth/token` scopes: `write_products`

## Path parameters

- `id` integer, required

## Request body

- DigitalProductEdit
  - `digital_product` DigitalProductEditFields
    - `filename` string: Filename of the digital product (with file extension). Required unless it is an external link
    - `url` string, required: Public accessible URL with the desired file contents (LIMIT: 100MB), or the link itself when `external` is true
    - `external` boolean: true if it's an external link. If not present or false, it's a file

## Response `200`

OK

- DigitalProduct
  - `digital_product` DigitalProductFields
    - `id` integer: Unique identifier of the digital product
    - `private_url` string: Private URL of the digital product
    - `expiration_seconds` integer: Time left in seconds before the current private URL expires
    - `external` boolean: true if it's an external link. Only present for external links

## Other responses

- `403`: Plan without access to digital products, or file size limit exceeded.
- `404`: Product Not Found, URL or filename missing, or the file could not be downloaded.

## Changes

- **2026-10-15** `53dc9f2c1329`: 1 breaking, 1 warning, 4 info
  - the request property `digital_product/url` became required
  - removed the optional property `digital_product/url` from the response with the `200` status
  - added the non-success response with the status `403`
  - added the non-success response with the status `404`
  - …2 more

[Operation history](https://skmtc.dev/jumpseller/apis/jumpseller-api/changes/products/:id/digital_products.json/post.md)

---

[API](https://skmtc.dev/jumpseller/apis/jumpseller-api.md) - [All operations](https://skmtc.dev/jumpseller/apis/jumpseller-api/llms.txt) - [OpenAPI document](https://skmtc.dev/jumpseller/apis/jumpseller-api/revisions/09f991a20d74?raw)
