@dudadev/partner-api
TypeScript icon, indicating that this package has built-in type declarations

2.6.1 • Public • Published

@dudadev/partner-api

The @dudadev/partner-api library provides convenient access to Duda's public APIs from applications written in server-side Javascript.

  1. Requirements
  2. Installation
  3. Usage
  4. Configuration
    1. Initialize with config object
    2. API Environments
    3. Network Retries
  5. Request Overrides
  6. Responses
    1. Success
    2. Errors
  7. Debugging
  8. App Store
    1. Authenticating requests
    2. Handling different api_endpoint values
    3. Utility functions
  9. More Information

Requirements

Node v14 or higher.

Installation

Install the package with:

npm install @dudadev/partner-api --save
# or
yarn add @dudadev/partner-api

Usage

The package needs to be configured with your API credentials:

const { Duda } = require('@dudadev/partner-api');

const duda = new Duda({
  user: process.env.DUDA_API_USER,
  pass: process.env.DUDA_API_PASS,
  env: Duda.Envs.direct,
});

duda.sites.get({ site_name: "a-site-name" })
  .then(site => console.log(site))
  .catch(error => console.error(error));

Or using ES modules and async/await:

// async / await
(async function () {
  try {
    const site = await duda.sites.get({ site_name: "a-site-name" });
    console.log(site);
  } catch (error) {
    console.log(error.status, error.error);
    // handle error
  }
})();

Configuration

Initialize with config object

The package can be initialized with several options:

const duda = new Duda({
  user: 'api-user',
  pass: 'api-pass',
  env: Duda.Envs.sandbox, // also, .direct, .eu
});

API Environments

  • Duda.Envs.eu: api.eu.duda.co
  • Duda.Envs.direct: api.duda.co
  • Duda.Envs.sandbox: api-sandbox.duda.co

Request Timeout

The request timeout limit. The maximum number of milliseconds before a request is considered to be timed out. This will trigger a timeout event handler and reject the promise with an ECONNRESET error code. This option defaults to 10000ms.

const duda = new Duda({
  ...,
  timeout: 1000
});

Network Retries

Automatic network retries can be enabled with the maxNetworkRetries config option. This will retry requests n times with exponential backoff if they fail due to an intermittent network problem. It's recommended you also set the timeout config option when enabling retries. Keep in mind that the timeout config is related to the timeout of the request, it does not affect the timing of the exponential backoff.

const duda = new Duda({
  ...,
  maxNetworkRetries: 2,
  timeout: 1000
});

Request Overrides

You can override the http.RequestOptions of any method on a per-request basis by passing a second object with custom options:

const { Duda } = require('@dudadev/partner-api');

const duda = new Duda({
  user: process.env.DUDA_API_USER,
  pass: process.env.DUDA_API_PASS,
  env: Duda.Envs.direct,
});

duda.sites.get({ site_name: 'a-site-name' }, {
  host: 'api-special.duda.co',
  auth: 'another-username:another-password',
  headers: {
    'X-CUSTOM-HEADER': 'a-value',
  },
})
  .then((site) => console.log(site))
  .catch((error) => console.error(error))

Responses

Success

The library will attempt to parse all successful responses as JSON, and will return the raw value if it can't.

Errors

The library will either throw (for promises) or return (for callbacks) the following payload after receiving a status code >= 400:

interface ErrorResponse<DudaError> {
  status: number;
  error: DudaError;
}

Debugging

You can debug requests made by the library by setting the DUDA_API_LOG_LEVEL environment variable to one of the following levels:

  1. error: only shows fatal errors
  2. warning: shows all errors and warnings
  3. info: high-level debugging information
  4. debug: verbose debugging information

The library will display logs that are >= DUDA_API_LOG_LEVEL. So, for example, setting the log level to warning (2) would log all warnings (2) and errors (1).

The logger will attempt to redact any sensitive information before it logs using the following regular expressions:

  • /(user(name)?|pass(word)?|auth(orization)?)":"[^"]+/gi
  • /(Bearer|Basic) [^"]+/gi

Example using debug

$ DUDA_API_LOG_LEVEL=debug node index.js
[debug] 8ce2a72d-d6b6-4fe8-bf39-45ebe99f7233 no http agent defined: received=undefined
[info] 8ce2a72d-d6b6-4fe8-bf39-45ebe99f7233 new request: method=get endpoint=api-sandbox.duda.co/api/sites/multiscreen/374f37ea1eff44e7966b2c685ded251a/pages
[debug] 8ce2a72d-d6b6-4fe8-bf39-45ebe99f7233 full request details: req={"headers":{},"method":"get","path":"/api/sites/multiscreen/374f37ea1eff44e7966b2c685ded251a/pages","auth": [redacted],"host":"api-sandbox.duda.co"}
[debug] 8ce2a72d-d6b6-4fe8-bf39-45ebe99f7233 data received: raw={"results":[{"uuid":"683340afe033436caab26cf8a548b1dd","title":"Home","path":"home","seo":{"no_index":false}}]}
[debug] 8ce2a72d-d6b6-4fe8-bf39-45ebe99f7233 request ended: status=200 time=0.51s

App Store API

If you're an app developer, you can access the App Store API under duda.appstore after calling new Duda(opts).

Authenticating requests

API Endpoints protected by an X-DUDA-ACCESS-TOKEN expect method calls to include a token property set to the authorization_code without Bearer included.

duda.appstore.sites.get({
  site_name: 'a-site-name',
  token: 'authorization-code',
})

Handling different api_endpoint values

You can use the request override feature to set the host of a method call to the correct api_endpoint for a particular site.

function getSite(site: string) {
  const {
    site_name,
    auth,
    api_endpoint
  } = getInstallFromDB(site);

  return duda.appstore.sites.get({
    site_name: site_name,
    token: auth.authorization_code,
  }, {
    host: api_endpoint,
  })
}

getSite('a-site-name')
  .then((site) => console.log(site))
  .catch((err) => console.log(err.status, err.error))

Utility functions

Included under Duda.appstore is utils which contains useful methods for validating webhooks & signatures.

function validateWebook(req: YourRequestObject): boolean {
  // conform request object
  return duda.appstore.utils.validateWebook(process.env.SECRET_KEY, req.headers, req.body);
}

function validateSSO(req: YourRequestObject): boolean {
  // conform request object
  return duda.appstore.utils.validateSSOLink(process.env.SECRET_KEY, req.query);
}

Sites

Get Site

Get Site Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}

duda.sites.get({ site_name: site_name });

Get Site by External ID

Get Site by External ID Reference

Request

GET https://api.duda.co/api/sites/multiscreen/byexternalid/{external_uid}

duda.sites.getByExternalID({ external_uid: external_uid })

Create Site

Create Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/create

duda.sites.create({ template_id: template_id })

Update Site

Update Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/update/{site_name}

duda.sites.update({ site_name: site_name })

Duplicate Site

Duplicate Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/duplicate/{site_name}

duda.sites.duplicate({ site_name: site_name, new_default_domain_prefix: new_default_domain_prefix })

Publish Site

Publish Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/publish/{site_name}

duda.sites.publish({ site_name: site_name })

Unpublish Site

Unpublish Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/unpublish/{site_name}

duda.sites.unpublish({ site_name: site_name })

Reset Site

Reset Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/reset/{site_name}

duda.sites.reset({ site_name: site_name, template_id: template_id })

Switch Template

Switch Template Reference

Request

POST https://api.duda.co/api/sites/multiscreen/switchTemplate/{site_name}

duda.sites.switchTemplate({ site_name: site_name, template_id: template_id })

Delete Site

Delete Site Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}

duda.sites.delete({ site_name: site_name })

Get Site Theme

Get Site Theme Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/theme

duda.sites.theme.get({ site_name: site_name })

Update Site Theme

Update Site Theme Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/theme

duda.sites.theme.update({ site_name: site_name })

Templates

List Templates

List Templates Reference

Request

GET https://api.duda.co/api/sites/multiscreen/templates

duda.templates.list();

Get Template

Get Template Reference

Request

GET https://api.duda.co/api/sites/multiscreen/templates/{template_id}

duda.templates.get({ template_id: template_id });

Update Template

Update Template Reference

Request

POST https://api.duda.co/api/sites/multiscreen/templates/{template_id}

duda.templates.update({ template_id: template_id });

Create From Site

Create From Site Reference

Request

POST https://api.duda.co/api/sites/multiscreen/templates/fromsite

duda.templates.createFromSite({ site_name: site_name });

Create From Template

Create From Template Reference

Request

POST https://api.duda.co/api/sites/multiscreen/templates/fromtemplate

duda.templates.createFromTemplate({ template_id: template_id });

Delete Template

Delete Template Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/templates/{template_id}

duda.templates.delete({ template_id: template_id });

Pages v2

List Pages

List Pages Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/pages

duda.pages.v2.list({ site_name: site_name });

Get Page

Get Page Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}

duda.pages.v2.get({ site_name: site_name, page_uuid: page_uuid });

Update Page

Update Page Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}

duda.pages.v2.update({ site_name: site_name, page_uuid: page_uuid });

Duplicate Page

Duplicate Page Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}/duplicate

duda.pages.v2.duplicate({ site_name: site_name, page_uuid: page_uuid });

Delete Page

Delete Page Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}

duda.pages.v2.delete({ site_name: site_name, page_uuid: page_uuid });

eComm

Get Settings

Get Settings Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce

duda.ecomm.get({ site_name: site_name });

Update Settings

Update Settings Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce

duda.ecomm.update({ site_name: site_name });

eComm Carts

List Carts

List Carts Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/carts

duda.ecomm.carts.list({ site_name: site_name });

Get Cart

Get Cart Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/carts/{cart_id}

duda.ecomm.carts.get({ site_name: site_name, cart_id: cart_id });

eComm Orders

List Orders

List Orders Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders

duda.ecomm.orders.list({ site_name: site_name });

Get Order

Get Order Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders/{order_id}

duda.ecomm.orders.get({ site_name: site_name, order_id: order_id });

Update Order

Update Order Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders/{order_id}

duda.ecomm.orders.update({ site_name: site_name, order_id: order_id });

List Refunds

List Refunds Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders/{order_id}/refunds

duda.ecomm.orders.listRefunds({ site_name: site_name, order_id: order_id });

Get Refund

Get Refund Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders/{order_id}/refunds/{refund_id}

duda.ecomm.orders.getRefund({ site_name: site_name, order_id: order_id, refund_id: refund_id });

eComm Payment Gateways

List Payment Gateways

List Payment Gateways Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-gateways

duda.ecomm.gateways.list({ site_name: site_name });

Get Payment Gateway

Get Payment Gateway Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-gateways/{gateway_id}

duda.ecomm.gateways.get({ site_name: site_name, gateway_id: gateway_id });

Create Payment Gateway

Create Payment Gateway Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-gateways

duda.ecomm.gateways.create({ site_name: site_name, live_payment_methods_url: live_payment_methods_url });

Update Payment Gateway

Update Payment Gateway Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-gateways/{gateway_id}

duda.ecomm.gateways.update({ site_name: site_name, gateway_id: gateway_id, live_payment_methods_url: live_payment_methods_url });

Delete Payment Gateway

Delete Payment Gateway Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-gateways/{gateway_id}

duda.ecomm.gateways.delete({ site_name: site_name, gateway_id: gateway_id });

eComm Payments

Get Payment Session

Get Payment Session Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-sessions/{session_id}

duda.ecomm.payments.get({ site_name: site_name, session_id: session_id });

Confirm Payment

Confirm Payment Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-sessions/{session_id}/confirm

duda.ecomm.payments.confirm({ site_name: site_name, session_id: session_id, state: state });

eComm Categories

Get Categories

Get Categories Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories

duda.ecomm.categories.list({ site_name: site_name });

Get Category

Get Category Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories/{category_id}

duda.ecomm.categories.get({ site_name: site_name, category_id: category_id });

Create Category

Create Category Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories

duda.ecomm.categories.create({ site_name: site_name });

Update Category

Update Category Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories/{category_id}

duda.ecomm.categories.update({ site_name: site_name, category_id: category_id });

Delete Category

Delete Category Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories/{category_id}

duda.ecomm.categories.delete({ site_name: site_name, category_id: category_id });

eComm Shipping Providers

List Shipping Providers

List Shipping Providers Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/shipping-providers

duda.ecomm.shipping.list({ site_name: site_name });

Get Shipping Provider

Get Shipping Provider Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{siteAlias}/ecommerce/shipping-providers/{id}

duda.ecomm.shipping.get({ site_name: site_name, id: id });

Create Shipping Provider

Create Shipping Provider Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{siteAlias}/ecommerce/shipping-providers

duda.ecomm.shipping.create({ site_name: site_name, live_shipping_rates_url: live_shipping_rates_url });

Update Shipping Provider

Update Shipping Provider Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{siteAlias}/ecommerce/shipping-providers/{id}

duda.ecomm.shipping.update({ site_name: site_name, id: id });

Delete Shipping Provider

Delete Shipping Provider Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{siteAlias}/ecommerce/shipping-providers/{id}

duda.ecomm.shipping.delete({ site_name: site_name, id: id });

eComm Products

List Products

List Products Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products

duda.ecomm.products.list({ site_name: site_name });

Get Product

Get Product Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products/{product_id}

duda.ecomm.products.get({ site_name: site_name, product_id: product_id });

Create Product

Create Product Reference

Request

CREATE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products

duda.ecomm.products.create({ site_name: site_name });

Update Product

Update Product Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products/{product_id}

duda.ecomm.products.update({ site_name: site_name, product_id: product_id });

Delete Product

Delete Product Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products/{product_id}

duda.ecomm.products.delete({ site_name: site_name, product_id: product_id });

Get Product Variation

Get Product Variation Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products/{product_id}/variations/{variation_id}

duda.ecomm.variations.get({ site_name: site_name, product_id: product_id, variation_id: variation_id });

Update Product Variation

Update Product Variation Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products/{product_id}/variations/{variation_id}

duda.ecomm.variations.update({ site_name: site_name, product_id: product_id, variation_id: variation_id });

eComm Product Options

List Product Options

List Product Options Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options

duda.ecomm.options.list({ site_name: site_name });

Get Product Option

Get Product Option Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options/{option_id}

duda.ecomm.options.get({ site_name: site_name, option_id: option_id });

Create Product Option

Create Product Option Reference

Request

CREATE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options

duda.ecomm.options.create({ site_name: site_name, choices: choices, name: name });

Update Product Option

Update Product Option Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options/{option_id}

duda.ecomm.options.update({ site_name: site_name, option_id: option_id, name: name });

Delete Product Option

Delete Product Option Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options/{option_id}

duda.ecomm.options.delete({ site_name: site_name, option_id: option_id });

Create Product Option Choice

Create Product Option Choice Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options/{option_id}/choices

duda.ecomm.options.createChoice({ site_name: site_name, option_id: option_id, value: value });

Update Product Option Choice

Update Product Option Choice Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options/{option_id}/choices/{choice_id}

duda.ecomm.options.createChoice({ site_name: site_name, option_id: option_id, choice_id: choice_id, value: value });

Delete Product Option Choice

Delete Product Option Choice Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options/{option_id}/choices/{choice_id}

duda.ecomm.options.createChoice({ site_name: site_name, option_id: option_id, choice_id: choice_id });

URL Rules

List Rules

List Rules Reference

Request

GET https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules

duda.urlRules.list({ site_name: site_name });

Get Rule

Get Rule Reference

Request

GET https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules/{id}

duda.urlRules.get({ site_name: site_name, id: id });

Create Rule

Create Rule Reference

Request

POST https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules

duda.urlRules.create({ site_name: site_name });

Update Rule

Update Rule Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules/{id}

duda.urlRules.update({ site_name: site_name, id: id });

Delete Rule

Delete Rule Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules/{id}

duda.urlRules.update({ site_name: site_name, id: id });

Site Plans

List Site Plans

List Site Plans Reference

Request

GET https://api.duda.co/api/sites/multiscreen/plans

duda.plans.list();

Get Site Plan

Get Site Plan Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/plan

duda.plans.get({ site_name: site_name });

Update Site Plan

Update Site Plan Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/plan/{plan_id}

duda.plans.update({ site_name: site_name, plan_id: plan_id });

Accounts

Get Account

Get Account Reference

Request

GET https://api.duda.co/api/accounts/{account_name}

duda.accounts.get({ account_name: account_name });

Create Account

Create Account Reference

Request

POST https://api.duda.co/api/accounts/create

duda.accounts.create({ account_name: account_name });

Update Account

Update Account Reference

Request

POST https://api.duda.co/api/accounts/update/{account_name}

duda.accounts.update({ account_name: account_name });

Delete Account

Delete Account Reference

Request

DELETE https://api.duda.co/api/accounts/{account_name}

duda.accounts.delete({ account_name: account_name });

Authentication

Get SSO Link

Get SSO Link Reference

Request

GET https://api.duda.co/api/accounts/sso/{account_name}/link

duda.accounts.authentication.getSSOLink({ account_name: account_name });

Create Password Reset Link

Create Password Reset Link Reference

Request

POST https://api.duda.co/api/accounts/reset-password/{account_name}

duda.accounts.authentication.getResetPasswordLink({ account_name: account_name });

Create Welcome Link

Create Welcome Link Reference

Request

POST https://api.duda.co/api/accounts/reset-password/{account_name}

duda.accounts.authentication.getWelcomeLink({ account_name: account_name });

Permissions

List Client Permissions

List Client Permissions Reference

Request

GET https://api.duda.co/api/accounts/permissions/multiscreen

duda.accounts.permissions.list();

Get Client Permissions

Get Client Permissions Reference

Request

GET https://api.duda.co/api/accounts/{account_name}/sites/{site_name}/permissions

duda.accounts.permissions.get({ account_name: account_name, site_name: site_name });

List Client Sites

List Client Sites Reference

Request

GET https://api.duda.co/api/accounts/grant-access/{account_name}/sites/multiscreen

duda.accounts.permissions.listAccessibleSites({ account_name: account_name });

Grant Site Access

Grant Site Access Reference

Request

POST https://api.duda.co/api/accounts/{account_name}/sites/{site_name}/permissions

duda.accounts.permissions.grantSiteAccess({ account_name: account_name, site_name: site_name });

Remove Site Access

Remove Site Access Reference

Request

DELETE https://api.duda.co/api/accounts/{account_name}/sites/{site_name}/permissions

duda.accounts.permissions.removeSiteAccess({ account_name: account_name, site_name: site_name });

List Duda Team Groups

List Duda Team Groups Reference

Request

GET https://api.duda.co/api/permission-groups/default

duda.accounts.permissions.listDudaTeamGroups();

List Custom Team Groups

List Custom Team Groups Reference

Request

GET https://api.duda.co/api/permission-groups/custom

duda.accounts.permissions.listCustomTeamGroups();

Assign Team Member to Group

Assign Team Member to Group Reference

Request

POST https://api.duda.co/api/permission-groups/{group_name}/accounts/{account_name}/add

duda.accounts.permissions.assignTeamMemberGroup({ group_name: group_name, account_name: account_name });

Content

Get Content Library

Get Content Library Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/content

duda.content.get({ site_name: site_name });

Update Content Library

Update Content Library Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/content

duda.content.update({ site_name: site_name });

Publish Content Library

Publish Content Library Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/content/publish

duda.content.publish({ site_name: site_name });

Get Location

Get Location Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/content/location/{location_id}

duda.content.multilocation.get({ site_name: site_name, location_id: location_id });

Create Location

Create Location Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/content/location

duda.content.multilocation.create({ site_name: site_name });

Update Location

Update Location Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/content/location/{location_id}

duda.content.multilocation.update({ site_name: site_name, location_id: location_id });

Delete Location

Delete Location Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/content/location/{location_id}

duda.content.multilocation.delete({ site_name: site_name, location_id: location_id });

Get Injected Content

Get Injected Content Reference

Request

GET https://api.duda.co/api/sites/multiscreen/inject-content/{site_name}

duda.content.injectedContent.get({ site_name: site_name });

Create Injected Content

Create Injected Content Reference

Request

POST https://api.duda.co/api/sites/multiscreen/inject-content/{site_name}

duda.content.injectedContent.create({ site_name: site_name });

Create Injected Content (Single Page)

Create Injected Content (Single Page) Reference

Request

POST https://api.duda.co/api/sites/multiscreen/inject-content/{site_name}/pages/{page_name}

duda.content.injectedContent.createSPA({ site_name: site_name, page_name: page_name });

Upload Resource

Upload Resource Reference

Request

POST https://api.duda.co/api/sites/multiscreen/resources/{site_name}/upload

duda.content.uploadResource({ site_name: site_name });

Collections

List Collections

List Collections Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/collection

duda.collections.list({ site_name: site_name });

Get Collection

Get Collection Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}

duda.collections.get({ site_name: site_name, collection_name: collection_name });

Create Collection

Create Collection Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/collection

duda.collections.create({ site_name: site_name, name: name });

Update Collection

Update Collection Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{current_collection_name}

duda.collections.update({ site_name: site_name, current_collection_name: current_collection_name });

Delete Collection

Delete Collection Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}

duda.collections.delete({ site_name: site_name, collection_name: collection_name });

Clear Cache

Clear Cache Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/revalidate

duda.collections.clearCache({ site_name: site_name, collection_name: collection_name });

Clear Cache by External ID

Clear Cache by External ID Reference

Request

POST https://api.duda.co/api/sites/multiscreen/collections/revalidate/{external_id}

duda.collections.clearCacheByExtID({ external_id: external_id });

Create Rows

Create Rows Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/row

duda.collections.rows.create({ site_name: site_name, collection_name: collection_name });

Update Rows

Update Rows Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/row

duda.collections.rows.update({ site_name: site_name, collection_name: collection_name });

Delete Row

Delete Row Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/row/{row_id}

duda.collections.rows.deleteRow({ site_name: site_name, collection_name: collection_name, row_id: row_id });

Delete Rows

Delete Rows Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/row

duda.collections.rows.delete({ site_name: site_name, collection_name: collection_name });

Create Fields

Create Fields Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/field

duda.collections.fields.create({ site_name: site_name, collection_name: collection_name });

Update Field

Update Field Reference

Request

PUT https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/field/{field_name}

duda.collections.fields.update({ site_name: site_name, collection_name: collection_name, field_name: field_name });

Delete Field

Delete Field Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}/field/{field_name}

duda.collections.fields.delete({ site_name: site_name, collection_name: collection_name, field_name: field_name });

Reporting

Site Created

Site Created Reference

Request

GET https://api.duda.co/api/sites/multiscreen/created

duda.reporting.sites.created();

Sites Published

Sites Published Reference

Request

GET https://api.duda.co/api/sites/multiscreen/published

duda.reporting.sites.published();

Sites Unpublished

Sites Unpublished Reference

Request

GET https://api.duda.co/api/sites/multiscreen/unpublished

duda.reporting.sites.unpublished();

Form Submissions

Form Submissions Reference

Request

GET https://api.duda.co/api/sites/multiscreen/get-forms/{site_name}

duda.reporting.forms.submissions({ site_name: site_name });

Activities

Activities Reference

Request

GET https://api.duda.co/api/sites/multiscreen/{site_name}/activities

duda.reporting.activities.get({ site_name: site_name });

Analytics

Analytics Reference

Request

GET https://api.duda.co/api/analytics/site/{site_name}

duda.reporting.analytics.get({ site_name: site_name });

Get Client Settings

Get Client Settings Reference

Request

GET https://api.duda.co/api/accounts/{account_name}/sites/{site_name}/stats-email

duda.reporting.emailSettings.get({ account_name: account_name, site_name: site_name });

Create Subscription

Create Subscription Reference

Request

POST https://api.duda.co/api/accounts/{account_name}/sites/{site_name}/stats-email

duda.reporting.emailSettings.subscribe({ account_name: account_name, site_name: site_name, frequency: frequency });

Unsubscribe

Unsubscribe Reference

Request

DELETE https://api.duda.co/api/accounts/{account_name}/sites/{site_name}/stats-email

duda.reporting.emailSettings.unsubscribe({ account_name: account_name, site_name: site_name });

Other

List Backups

List Backups Reference

Request

GET https://api.duda.co/api/sites/multiscreen/backups/{site_name}

duda.other.backups.list({ site_name: site_name });

Create Backup

Create Backup Reference

Request

POST https://api.duda.co/api/sites/multiscreen/backups/{site_name}/create

duda.other.backups.create({ site_name: site_name });

Restore Backup

Restore Backup Reference

Request

POST https://api.duda.co/api/sites/multiscreen/backups/{site_name}/restore/{backup_name}

duda.other.backups.restore({ site_name: site_name, backup_name: backup_name });

Delete Backup

Delete Backup Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/backups/{site_name}/{backup_name}

duda.other.backups.delete({ site_name: site_name, backup_name: backup_name });

Create Certificate

Create Certificate Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/certificate

duda.other.ssl.create({ site_name: site_name });

Renew Certificate

Renew Certificate Reference

Request

POST https://api.duda.co/api/sites/multiscreen/{site_name}/certificate/renew

duda.other.ssl.renew({ site_name: site_name });

Delete Certificate

Delete Certificate Reference

Request

DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/certificate

duda.other.ssl.delete({ site_name: site_name });

Simple Editor

Update Simple Editor Settings

Update Simple Editors Settings Reference

Request

PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/simple-editor

duda.diyEditor.update({ site_name: site_name, onboarding_required: onboarding_required });

Appstore eComm Products

List Products

List Products Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products

duda.appstore.ecomm.products.list({ site_name: site_name });

Get Product

Get Product Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products/{product_id}

duda.appstore.ecomm.products.get({ site_name: site_name, product_id: product_id });

Create Product

Create Product Reference

Request

POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products

duda.appstore.ecomm.products.create({ site_name: site_name });

Update Product

Update Product Reference

Request

PATCH https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products/{product_id}

duda.appstore.ecomm.products.update({ site_name: site_name, product_id: product_id });

Delete Product

Delete Product Reference

Request

DELETE https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products/{product_id}

duda.appstore.ecomm.products.delete({ site_name: site_name, product_id: product_id });

Appstore eComm Product Options

List Product Options

List Product Options Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options

duda.appstore.ecomm.options.list({ site_name: site_name });

Get Product Option

Get Product Option Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options/{option_id}

duda.appstore.ecomm.options.get({ site_name: site_name, option_id: option_id });

Create Product Option

Create Product Option Reference

Request

POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options

duda.appstore.ecomm.options.create({ site_name: site_name, name: name, choices: choices });

Update Product Option

Update Product Option Reference

Request

PUT https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options/{option_id}

duda.appstore.ecomm.options.update({ site_name: site_name, option_id: option_id, name: name });

Delete Product Option

Delete Product Option Reference

Request

DELETE https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options/{option_id}

duda.appstore.ecomm.options.delete({ site_name: site_name, option_id: option_id });

Create Product Option Choice

Create Product Option Choice Reference

Request

POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options/{option_id}/choices

duda.appstore.ecomm.options.createChoice({ site_name: site_name, option_id: option_id, value: value });

Update Product Option Choice

Update Product Option Choice Reference

Request

PUT https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options/{option_id}/choices/{choice_id}

duda.appstore.ecomm.options.createChoice({ site_name: site_name, option_id: option_id, choice_id: choice_id, value: value });

Delete Product Option Choice

Delete Product Option Choice Reference

Request

DELETE https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options/{option_id}/choices/{choice_id}

duda.appstore.ecomm.options.createChoice({ site_name: site_name, option_id: option_id, choice_id: choice_id });

Appstore eComm Orders

List Orders

List Orders Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders

duda.appstore.ecomm.orders.list({ site_name: site_name });

Get Order

Get Order Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders/{order_id}

duda.appstore.ecomm.orders.get({ site_name: site_name, order_id: order_id });

Update Order

Update Order Reference

Request

PATCH https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders/{order_id}

duda.appstore.ecomm.orders.update({ site_name: site_name, order_id: order_id });

Appstore eComm Payments

Get Payment Session

Get Payment Session Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-sessions/{session_id}

duda.appstore.ecomm.payments.get({ site_name: site_name, session_id: session_id });

Confirm Payment

Confirm Payment Reference

Request

POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-sessions/{session_id}/confirm

duda.appstore.ecomm.payments.confirm({ site_name: site_name, session_id: session_id });

Appstore eComm Payment Gateways

List Payment Gateways

List Payment Gateways Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-gateways

duda.appstore.ecomm.gateways.list({ site_name: site_name });

Get Payment Gateway

Get Payment Gateway Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-gateways/{id}

duda.appstore.ecomm.gateways.get({ site_name: site_name, gateway_id: gateway_id });

Create Payment Gateway

Create Payment Gateway Reference

Request

POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-gateways

duda.appstore.ecomm.gateways.create({ site_name: site_name, live_payment_methods_url: live_payment_methods_url });

Update Payment Gateway

Update Payment Gateway Reference

Request

PATCH https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-gateways/{gateway_id}

duda.appstore.ecomm.gateways.update({ site_name: site_name, gateway_id: gateway_id, live_payment_methods_url: live_payment_methods_url });

Delete Payment Gateway

Delete Payment Gateway Reference

Request

DELETE https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/payment-gateways/{gateway_id}

duda.appstore.ecomm.gateways.delete({ site_name: site_name, gateway_id: gateway_id });

Appstore eComm Carts

List Carts

List Carts Reference

Request

GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/carts

duda.appstore.ecomm.carts.list({ site_name: site_name });

Get Cart

Get Cart Reference

Request

GET get https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/carts/{cart_id}

duda.appstore.ecomm.carts.get({ site_name: site_name, cart_id: cart_id });

Readme

Keywords

none

Package Sidebar

Install

npm i @dudadev/partner-api

Weekly Downloads

354

Version

2.6.1

License

MIT

Unpacked Size

559 kB

Total Files

329

Last publish

Collaborators

  • dixiecarbonic
  • yoavporat
  • liady
  • russjeffery
  • idanen
  • hilakerer
  • sharon_rub
  • talkor
  • dannyr-duda
  • shira.weiss
  • roiekoper-duda
  • everett-duda