Jumpseller Product DigitalProducts API

The Product DigitalProducts API from Jumpseller — 3 operation(s) for product digitalproducts.

GitHub OpenAPI

Operations 5

GET /products/{id}/digital_products.json Retrieve all Product DigitalProducts #
POST /products/{id}/digital_products.json Create a new Product DigitalProduct #
GET /products/{id}/digital_products/count.json Count all Product DigitalProducts #
GET /products/{id}/digital_products/{digital_product_id}.json Retrieve a single Product DigitalProduct #
DELETE /products/{id}/digital_products/{digital_product_id}.json Delete a Product DigitalProduct #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/jumpseller-com:jumpseller-com-product-digitalproducts-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

jumpseller-com-product-digitalproducts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Jumpseller Com Product DigitalProducts API
  version: 1.0.0
  x-logo:
    url: https://api.jumpseller.com/images/jumpseller-logo-full.svg
    altText: Jumpseller logo
    href: /
  description: 'Operations tagged Product DigitalProducts across 2 of this provider''s published API definitions: jumpseller-com-openapi-openapi.json, jumpseller-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.jumpseller.com/v1
tags:
- name: Product DigitalProducts
paths:
  /products/{id}/digital_products.json:
    get:
      tags:
      - Product DigitalProducts
      summary: Retrieve all Product DigitalProducts
      security:
      - BasicAuthentication:
        - products
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - read_products
      parameters:
      - $ref: '#/components/parameters/ProductIDParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DigitalProduct'
        '404':
          description: Product Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -u XXXXX:YYYYY -X GET "https://api.jumpseller.com/v1/products/123/digital_products.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/products/123/digital_products.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/products/123/digital_products.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Get.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    'https://api.jumpseller.com/v1/products/123/digital_products.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/products/123/digital_products.json', {\n  method: 'GET',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: getProductsByIdDigitalProductsJson
      x-operation-id-source: derived
    post:
      tags:
      - Product DigitalProducts
      summary: Create a new Product DigitalProduct
      security:
      - BasicAuthentication:
        - products
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - write_products
      parameters:
      - $ref: '#/components/parameters/ProductIDParam'
      requestBody:
        description: Product DigitalProduct parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalProductEdit'
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalProduct'
      x-codegen-request-body-name: body
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: "curl -u XXXXX:YYYYY -X POST \"https://api.jumpseller.com/v1/products/123/digital_products.json\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"digital_product\": {\"filename\": \"example\", \"url\": \"https://example.com\", \"external\": true}}'"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/products/123/digital_products.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          curl_setopt($ch, CURLOPT_CUSTOMREQUEST, ''POST'');

          curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode([''digital_product'' => [''filename'' => ''example'', ''url'' => ''https://example.com'', ''external'' => true]]));

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/products/123/digital_products.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Post.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''

          request.body = { digital_product: { filename: ''example'', url: ''https://example.com'', external: true } }.to_json


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.post(\n    'https://api.jumpseller.com/v1/products/123/digital_products.json',\n    auth=('XXXXX', 'YYYYY'),\n    json={'digital_product': {'filename': 'example', 'url': 'https://example.com', 'external': True}}\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/products/123/digital_products.json', {\n  method: 'POST',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  },\n  body: JSON.stringify({\"digital_product\": {\"filename\": \"example\", \"url\": \"https://example.com\", \"external\": true}})\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: postProductsByIdDigitalProductsJson
      x-operation-id-source: derived
    servers:
    - url: https://api.jumpseller.com/v1
  /products/{id}/digital_products/count.json:
    get:
      tags:
      - Product DigitalProducts
      summary: Count all Product DigitalProducts
      security:
      - BasicAuthentication:
        - products
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - read_products
      parameters:
      - $ref: '#/components/parameters/ProductIDParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Count'
        '404':
          description: Product Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -u XXXXX:YYYYY -X GET "https://api.jumpseller.com/v1/products/123/digital_products/count.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/products/123/digital_products/count.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/products/123/digital_products/count.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Get.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    'https://api.jumpseller.com/v1/products/123/digital_products/count.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/products/123/digital_products/count.json', {\n  method: 'GET',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: getProductsByIdDigitalProductsCountJson
      x-operation-id-source: derived
    servers:
    - url: https://api.jumpseller.com/v1
  /products/{id}/digital_products/{digital_product_id}.json:
    get:
      tags:
      - Product DigitalProducts
      summary: Retrieve a single Product DigitalProduct
      security:
      - BasicAuthentication:
        - products
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - read_products
      parameters:
      - $ref: '#/components/parameters/ProductIDParam'
      - name: digital_product_id
        in: path
        description: Id of the Product DigitalProduct
        required: true
        schema:
          type: integer
          format: int32
      - $ref: '#/components/parameters/ExternalLinkParam'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DigitalProduct'
        '404':
          description: Product Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -u XXXXX:YYYYY -X GET "https://api.jumpseller.com/v1/products/123/digital_products/104.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/products/123/digital_products/104.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/products/123/digital_products/104.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Get.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.get(\n    'https://api.jumpseller.com/v1/products/123/digital_products/104.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/products/123/digital_products/104.json', {\n  method: 'GET',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: getProductsByIdDigitalProducts{digitalProductId}Json
      x-operation-id-source: derived
    delete:
      tags:
      - Product DigitalProducts
      summary: Delete a Product DigitalProduct
      security:
      - BasicAuthentication:
        - products
      - loginParameter: []
        authtokenParameter: []
      - OAuth2:
        - write_products
      parameters:
      - $ref: '#/components/parameters/ProductIDParam'
      - name: digital_product_id
        in: path
        description: Id of the Product DigitalProduct
        required: true
        schema:
          type: integer
          format: int32
      requestBody:
        description: Product DigitalProduct delete parameters.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DigitalProductDeleteFields'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: string
        '404':
          description: Product Not Found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound'
      x-codeSamples:
      - lang: Shell
        label: cURL
        source: curl -u XXXXX:YYYYY -X DELETE "https://api.jumpseller.com/v1/products/123/digital_products/104.json"
      - lang: PHP
        label: PHP
        source: '<?php

          $login = ''XXXXX'';

          $authtoken = ''YYYYY'';

          $url = ''https://api.jumpseller.com/v1/products/123/digital_products/104.json'';

          $ch = curl_init($url);

          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

          curl_setopt($ch, CURLOPT_USERPWD, $login . '':'' . $authtoken);

          curl_setopt($ch, CURLOPT_HTTPHEADER, [''Content-Type: application/json'']);

          $response = curl_exec($ch);

          curl_close($ch);

          echo $response;'
      - lang: Ruby
        label: Ruby
        source: 'require ''net/http''

          require ''json''


          uri = URI(''https://api.jumpseller.com/v1/products/123/digital_products/104.json'')

          http = Net::HTTP.new(uri.host, uri.port)

          http.use_ssl = true


          request = Net::HTTP::Delete.new(uri)

          request.basic_auth(''XXXXX'', ''YYYYY'')

          request[''Content-Type''] = ''application/json''


          response = http.request(request)

          puts JSON.parse(response.body)'
      - lang: Python
        label: Python
        source: "import requests\n\nresponse = requests.delete(\n    'https://api.jumpseller.com/v1/products/123/digital_products/104.json',\n    auth=('XXXXX', 'YYYYY')\n)\nprint(response.json())"
      - lang: JavaScript
        label: JavaScript
        source: "const response = await fetch('https://api.jumpseller.com/v1/products/123/digital_products/104.json', {\n  method: 'DELETE',\n  headers: {\n    'Authorization': 'Basic ' + btoa('XXXXX:YYYYY'),\n    'Content-Type': 'application/json'\n  }\n});\n\nconst data = await response.json();\nconsole.log(data);"
      operationId: deleteProductsByIdDigitalProducts{digitalProductId}Json
      x-operation-id-source: derived
    servers:
    - url: https://api.jumpseller.com/v1
components:
  schemas:
    DigitalProductEditFields:
      type: object
      properties:
        filename:
          type: string
          description: Filename of the digital product (with file extensison). Can be omitted if it's an external link
        url:
          type: string
          description: 'Public accessible URL with the desired file contents. (LIMIT: 100MB)'
        external:
          type: boolean
          required: false
          description: true if it's an external link. If not present or false, it's a file
          default: false
    Count:
      type: object
      properties:
        count:
          type: integer
          format: int32
    DigitalProductFields:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the digital product
          format: int32
        url:
          type: string
          description: Private URL of the digital product
        expiration_seconds:
          type: integer
          description: Time left in seconds before the current private URL expires
          format: int32
        external:
          type: boolean
          required: false
          description: true if it's an external link. If not present or false, it's a file
          default: false
    DigitalProductEdit:
      type: object
      properties:
        digital_product:
          $ref: '#/components/schemas/DigitalProductEditFields'
    DigitalProduct:
      type: object
      properties:
        digital_product:
          $ref: '#/components/schemas/DigitalProductFields'
    NotFound:
      type: object
      properties:
        message:
          type: string
    DigitalProductDeleteFields:
      type: object
      properties:
        external:
          type: boolean
          required: false
          description: true if it's an external link. If not present or false, it's a file
          default: false
    MessageObject:
      type: object
      properties:
        message:
          type: string
    DigitalProductEditFields_2:
      type: object
      properties:
        filename:
          type: string
          description: Filename of the digital product (with file extension). Required unless it is an external link
        url:
          type: string
          description: 'Public accessible URL with the desired file contents (LIMIT: 100MB), or the link itself when `external` is true'
        external:
          type: boolean
          description: true if it's an external link. If not present or false, it's a file
          default: false
      required:
      - url
    DigitalProductFields_2:
      type: object
      properties:
        id:
          type: integer
          description: Unique identifier of the digital product
          format: int32
        private_url:
          type: string
          description: Private URL of the digital product
        expiration_seconds:
          type: integer
          description: Time left in seconds before the current private URL expires
          format: int32
        external:
          type: boolean
          description: true if it's an external link. Only present for external links
    DigitalProductDeleteFields_2:
      type: object
      properties:
        external:
          type: boolean
          description: true if it's an external link. If not present or false, it's a file
          default: false
  parameters:
    ProductIDParam:
      name: id
      in: path
      description: Id of the Product
      required: true
      schema:
        type: integer
        format: int32
    ExternalLinkParam:
      name: external
      in: query
      description: true if searching for an external link
      required: false
      schema:
        type: string
  securitySchemes:
    BasicAuthentication:
      type: http
      scheme: basic
      description: Basic authentication in the format of `login:authtoken` or `partner_code:auth_token`.
    loginParameter:
      type: apiKey
      in: query
      name: login
      description: API OAuth login. Learn how to get yours [here](#section/Authentication).
    authtokenParameter:
      type: apiKey
      in: query
      name: authtoken
      description: API OAuth token. Learn how to get yours [here](#section/Authentication).
    auth_tokenParameter:
      type: apiKey
      in: query
      name: auth_token
      description: Partner authentication token.
    OAuth2:
      type: oauth2
      description: OAuth 2.0 authorization code flow. Register your app at the Jumpseller Admin Panel to get client credentials. See https://jumpseller.com/support/oauth-2/ for details.
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.jumpseller.com/oauth/authorize
          tokenUrl: https://accounts.jumpseller.com/oauth/token
          refreshUrl: https://accounts.jumpseller.com/oauth/token
          scopes:
            read_products: Read products, variants, images, options, and custom fields
            write_products: Create, update, and delete products
            read_orders: Read orders, fulfillments, and order history
            write_orders: Create, update, and refund orders
            read_customers: Read customer accounts and groups
            write_customers: Create, update, and delete customers
            read_categories: Read product categories
            write_categories: Create, update, and delete categories
            read_store: Read store information and settings
            write_store: Update store settings
            read_settings: Read store configuration
            write_settings: Update store configuration
            read_shipping_methods: Read shipping methods and rates
            write_shipping_methods: Create and update shipping methods
            read_payment_methods: Read payment methods
            write_payment_methods: Create and update payment methods
            read_hooks: Read webhooks
            write_hooks: Create, update, and delete webhooks
            read_promotions: Read promotions and discounts
            write_promotions: Create, update, and delete promotions
            read_taxes: Read tax rules
            write_taxes: Create and update tax rules
            read_pages: Read store pages
            write_pages: Create, update, and delete pages
            read_countries: Read country information
            write_countries: Update country settings
            read_custom_fields: Read product custom fields
            write_custom_fields: Create and update custom fields
            read_checkout_custom_fields: Read checkout additional fields
            write_checkout_custom_fields: Update checkout additional fields
            read_customer_categories: Read customer categories
            write_customer_categories: Create and update customer categories
            read_jsapps: Read JavaScript apps
            write_jsapps: Create, update, and delete JavaScript apps
            read_apps: Read installed apps
            read_fulfillments: Read fulfillment information
            write_fulfillments: Create and update fulfillments
            read_locations: Read warehouse locations
            write_locations: Create and update locations
            write_reviews: Manage product reviews
            read_transaction_ledgers: Read store balance
            write_store_setup: Create new stores via the store setup endpoint
x-refined-from:
- jumpseller-com-openapi-openapi.json
- jumpseller-com-openapi.json