The @dudadev/partner-api
library provides convenient access to Duda's public APIs from applications written in
server-side Javascript.
- Requirements
- Installation
- Usage
- Configuration
- Request Overrides
- Responses
- Debugging
- App Store
- More Information
Node v14 or higher.
Install the package with:
npm install @dudadev/partner-api --save
# or
yarn add @dudadev/partner-api
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
}
})();
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
});
-
Duda.Envs.eu
: api.eu.duda.co -
Duda.Envs.direct
: api.duda.co -
Duda.Envs.sandbox
: api-sandbox.duda.co
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
});
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
});
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));
The library will attempt to parse all successful responses as JSON, and will return the raw value if it can't.
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;
}
You can debug requests made by the library by setting the DUDA_API_LOG_LEVEL
environment variable to one of the
following levels:
- error: only shows fatal errors
- warning: shows all errors and warnings
- info: high-level debugging information
- 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
$ 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
If you're an app developer, you can access the App Store API under duda.appstore
after calling new Duda(opts)
.
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",
});
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));
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);
}
As of 2.8.0 you can configure an instance of the Duda class with an App Store configuration, negating the need to pass your token on each request. This configuration will also automatically handle refreshing your token if the expiration date has passed. Note: You are still responsible for saving your new authorization and expiration date into your database.
const duda = new Duda(
{
user: "testing",
pass: "testing",
env: Duda.Envs.direct,
},
{
auth: appStoreAuthObject,
uuid: appUuid,
},
);
The optional second argument contains the UUID of your app (this is provided by Duda when starting your app build), and the entire auth object you receive when an app is installed onto a site.
Once configured in this fashion, any requests to methods under the appstore
namespace will no longer require a token.
return duda.appstore.sites.get(
{
site_name: site_name,
},
{
host: api_endpoint,
},
);
A second benefit of this configuration is that the object will check the expiration_date
on the supplied auth object before executing your App Store request. If the date has passed, it will call the token refresh endpoint and obtain a new auth object that contains an updated authorization_code
.
After aquiring a new code. The object will emit an event containing the entire auth object, which you should save to your db.
const duda = new Duda(
{
user: "testing",
pass: "testing",
env: Duda.Envs.direct,
},
{
auth: appStoreAuthObject,
uuid: appUuid,
},
);
duda.events.on("refresh", (auth) => {
// save the updated auth object with the rest of the app install data.
});
This feature is currently in beta, if you experience any issues while implementing the new configuration, please open an issue.
GET https://api.duda.co/api/sites/multiscreen
duda.sites.list();
GET https://api.duda.co/api/sites/multiscreen/{site_name}
duda.sites.get({ site_name: site_name });
Get Site by External ID Reference
GET https://api.duda.co/api/sites/multiscreen/byexternalid/{external_uid}
duda.sites.getByExternalID({ external_uid: external_uid });
POST https://api.duda.co/api/sites/multiscreen/create
duda.sites.create({ template_id: template_id });
POST https://api.duda.co/api/sites/multiscreen/update/{site_name}
duda.sites.update({ site_name: site_name });
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,
});
POST https://api.duda.co/api/sites/multiscreen/publish/{site_name}
duda.sites.publish({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/unpublish/{site_name}
duda.sites.unpublish({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/reset/{site_name}
duda.sites.reset({ site_name: site_name, template_id: template_id });
POST https://api.duda.co/api/sites/multiscreen/switchTemplate/{site_name}
duda.sites.switchTemplate({ site_name: site_name, template_id: template_id });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}
duda.sites.delete({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/theme
duda.sites.theme.get({ site_name: site_name });
PUT https://api.duda.co/api/sites/multiscreen/{site_name}/theme
duda.sites.theme.update({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/templates
duda.templates.list();
GET https://api.duda.co/api/sites/multiscreen/templates/{template_id}
duda.templates.get({ template_id: template_id });
POST https://api.duda.co/api/sites/multiscreen/templates/{template_id}
duda.templates.update({ template_id: template_id });
POST https://api.duda.co/api/sites/multiscreen/templates/fromsite
duda.templates.createFromSite({ site_name: site_name });
Create From Template Reference
POST https://api.duda.co/api/sites/multiscreen/templates/fromtemplate
duda.templates.createFromTemplate({ template_id: template_id });
DELETE https://api.duda.co/api/sites/multiscreen/templates/{template_id}
duda.templates.delete({ template_id: template_id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/pages
duda.pages.v2.list({ site_name: site_name });
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 });
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 });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/pages
duda.pages.v2.create({ site_name: site_name });
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 https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}
duda.pages.v2.delete({ site_name: site_name, page_uuid: page_uuid });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}/elements
duda.pages.elements.list({ site_name: site_name, page_uuid: page_uuid });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}/elements
duda.pages.elements.create({ site_name: site_name, page_uuid: page_uuid });
PUT https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}/elements/{element_id}
duda.pages.elements.update({
site_name: site_name,
page_uuid: page_uuid,
element_id: element_id,
});
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/pages/{page_uuid}/elements/{element_id}
duda.pages.elements.delete({
site_name: site_name,
page_uuid: page_uuid,
element_id: element_id,
});
GET https://api.duda.co/api/sections
duda.sections.list();
GET https://api.duda.co/api/sections/{section_uuid}
duda.sections.get({ section_uuid: section_uuid });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/navigation
duda.navigation.list({ site_name: site_name });
Get Navigation By Language Reference
GET https://api.duda.co/api/sites/multiscreen/{site_name}/navigation/{lang}
duda.navigation.getByLang({ site_name: site_name, lang: lang });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/navigation/{lang}/items
duda.navigation.create({ site_name: site_name, lang: lang });
PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/navigation/{lang}/items/{navigation_id}
duda.navigation.update({
site_name: site_name,
lang: lang,
navigation_id: navigation_id,
});
POST https://api.duda.co/api/sites/multiscreen/{site_name}/blog/import
duda.blog.import({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts/import
duda.blog.importPost({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts/{post_id}/publish
duda.blog.publish({ site_name: site_name, post_id: post_id });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts/{post_id}/unpublish
duda.blog.unpublish({ site_name: site_name, post_id: post_id });
PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts/{post_id}
duda.blog.update({ site_name: site_name, post_id: post_id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts
duda.blog.list({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts/{post_id}
duda.blog.get({ site_name: site_name, post_id: post_id });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/blog/posts/{post_id}
duda.blog.deletePost({ site_name: site_name, post_id: post_id });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/blog
duda.blog.delete({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce
duda.ecomm.get({ site_name: site_name });
PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce
duda.ecomm.update({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/store
duda.ecomm.store.get({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/store
duda.ecomm.store.create({ site_name: site_name });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/store
duda.ecomm.store.delete({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/carts
duda.ecomm.carts.list({ site_name: site_name });
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 });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-groups
duda.ecomm.groups.list({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-groups/{group_id}
duda.ecomm.groups.get({ site_name: site_name, group_id: group_id });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-groups
duda.ecomm.groups.create({ site_name: site_name });
PUT https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-groups/{group_id}
duda.ecomm.groups.update({ site_name: site_name, group_id: group_id });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-groups/{group_id}
duda.ecomm.groups.delete({ site_name: site_name, group_id: group_id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones
duda.ecomm.zones.list({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}
duda.ecomm.zones.get({ site_name: site_name, zone_id: zone_id });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones
duda.ecomm.zones.create({ site_name: site_name });
PUT https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}
duda.ecomm.zones.update({ site_name: site_name, zone_id: zone_id });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}
duda.ecomm.zones.delete({ site_name: site_name, zone_id: zone_id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}/rates
duda.ecomm.zones.listRate({ site_name: site_name, zone_ide: zone_id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}/rates/{rate_id}
duda.ecomm.zones.getRate({ site_name: site_name, zone_id: zone_id, rate_id: rate_id });
Create Tax Zone Rate Reference
POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}/rates
duda.ecomm.zones.createRate({ site_name: site_name, zone_id: zone_id });
Update Tax Zone Rate Reference
PUT https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}/rates/{rate_id}
duda.ecomm.zones.updateRate({ site_name: site_name, zone_id: zone_id, rate_id: rate_id });
Delete Tax Zone Rate Reference
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/tax-zones/{zone_id}/rates/{rate_id}
duda.ecomm.zones.deleteRate({ site_name: site_name, zone_id: zone_id, rate_id: rate_id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders
duda.ecomm.orders.list({ site_name: site_name });
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 });
Create External Order Reference
POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/orders
duda.ecomm.orders.create({ site_name: site_name });
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 });
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 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,
});
List Payment Gateways Reference
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/payment-gateways
duda.ecomm.gateways.list({ site_name: site_name });
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 Reference
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 Reference
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 Reference
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 });
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 });
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,
});
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories
duda.ecomm.categories.list({ site_name: site_name });
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 });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/categories
duda.ecomm.categories.create({ site_name: site_name });
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 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,
});
List Shipping Providers Reference
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/shipping-providers
duda.ecomm.shipping.list({ site_name: site_name });
Get Shipping Provider Reference
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 Reference
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 Reference
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 Reference
DELETE https://api.duda.co/api/sites/multiscreen/{siteAlias}/ecommerce/shipping-providers/{id}
duda.ecomm.shipping.delete({ site_name: site_name, id: id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products
duda.ecomm.products.list({ site_name: site_name });
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 https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/products
duda.ecomm.products.create({ site_name: site_name });
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 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 Reference
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 Reference
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,
});
List Product Options Reference
GET https://api.duda.co/api/sites/multiscreen/{site_name}/ecommerce/options
duda.ecomm.options.list({ site_name: site_name });
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 Reference
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 Reference
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 Reference
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 Reference
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 Reference
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 Reference
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,
});
GET https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules
duda.urlRules.list({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules/{id}
duda.urlRules.get({ site_name: site_name, id: id });
POST https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules
duda.urlRules.create({ site_name: site_name });
PUT https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules/{id}
duda.urlRules.update({ site_name: site_name, id: id });
DELETE https://api.duda.co/api/sites/multiscreen/site/{site_name}/urlrules/{id}
duda.urlRules.update({ site_name: site_name, id: id });
GET https://api.duda.co/api/sites/multiscreen/plans
duda.plans.list();
GET https://api.duda.co/api/sites/multiscreen/{site_name}/plan
duda.plans.get({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/plan/{plan_id}
duda.plans.update({ site_name: site_name, plan_id: plan_id });
GET https://api.duda.co/api/accounts/{account_name}
duda.accounts.get({ account_name: account_name });
POST https://api.duda.co/api/accounts/create
duda.accounts.create({ account_name: account_name });
POST https://api.duda.co/api/accounts/update/{account_name}
duda.accounts.update({ account_name: account_name });
DELETE https://api.duda.co/api/accounts/{account_name}
duda.accounts.delete({ account_name: account_name });
GET https://api.duda.co/api/accounts/sso/{account_name}/link
duda.accounts.authentication.getSSOLink({ account_name: account_name });
Create Password Reset Link Reference
POST https://api.duda.co/api/accounts/reset-password/{account_name}
duda.accounts.authentication.getResetPasswordLink({
account_name: account_name,
});
POST https://api.duda.co/api/accounts/reset-password/{account_name}
duda.accounts.authentication.getWelcomeLink({ account_name: account_name });
List Client Permissions Reference
GET https://api.duda.co/api/accounts/permissions/multiscreen
duda.accounts.permissions.list();
Get Client Permissions Reference
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,
});
GET https://api.duda.co/api/accounts/grant-access/{account_name}/sites/multiscreen
duda.accounts.permissions.listAccessibleSites({ account_name: account_name });
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,
});
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 Reference
GET https://api.duda.co/api/permission-groups/default
duda.accounts.permissions.listDudaTeamGroups();
List Custom Team Groups Reference
GET https://api.duda.co/api/permission-groups/custom
duda.accounts.permissions.listCustomTeamGroups();
Assign Team Member to Group Reference
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,
});
GET https://api.duda.co/api/sites/multiscreen/{site_name}/content
duda.content.get({ site_name: site_name });
Update Content Library Reference
POST https://api.duda.co/api/sites/multiscreen/{site_name}/content
duda.content.update({ site_name: site_name });
Publish Content Library Reference
POST https://api.duda.co/api/sites/multiscreen/{site_name}/content/publish
duda.content.publish({ site_name: site_name });
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,
});
POST https://api.duda.co/api/sites/multiscreen/{site_name}/content/location
duda.content.multilocation.create({ site_name: site_name });
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 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 Reference
GET https://api.duda.co/api/sites/multiscreen/inject-content/{site_name}
duda.content.injectedContent.get({ site_name: site_name });
Create Injected Content Reference
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) Reference
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,
});
POST https://api.duda.co/api/sites/multiscreen/resources/{site_name}/upload
duda.content.uploadResource({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/snippets
duda.snippets.list({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/snippets/{id}
duda.snippets.get({ site_name: site_name, id: id });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/snippets
duda.snippets.create({ site_name: site_name });
PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/snippets/{id}
duda.snippets.update({ site_name: site_name, id: id });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/snippets/{id}/publish
duda.snippets.publish({ site_name: site_name, id: id });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/snippets/{id}
duda.snippets.delete({ site_name: site_name, id: id });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/collection
duda.collections.list({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}
duda.collections.get({
site_name: site_name,
collection_name: collection_name,
});
POST https://api.duda.co/api/sites/multiscreen/{site_name}/collection
duda.collections.create({ site_name: site_name, name: name });
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 https://api.duda.co/api/sites/multiscreen/{site_name}/collection/{collection_name}
duda.collections.delete({
site_name: site_name,
collection_name: collection_name,
});
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 Reference
POST https://api.duda.co/api/sites/multiscreen/collections/revalidate/{external_id}
duda.collections.clearCacheByExtID({ external_id: external_id });
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,
});
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 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 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,
});
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,
});
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 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,
});
GET https://api.duda.co/api/sites/multiscreen/created
duda.reporting.sites.created();
GET https://api.duda.co/api/sites/multiscreen/published
duda.reporting.sites.published();
GET https://api.duda.co/api/sites/multiscreen/unpublished
duda.reporting.sites.unpublished();
GET https://api.duda.co/api/sites/multiscreen/get-forms/{site_name}
duda.reporting.forms.submissions({ site_name: site_name });
GET https://api.duda.co/api/sites/multiscreen/{site_name}/activities
duda.reporting.activities.get({ site_name: site_name });
GET https://api.duda.co/api/analytics/site/{site_name}
duda.reporting.analytics.get({ site_name: site_name });
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,
});
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,
});
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,
});
GET https://api.duda.co/api/sites/multiscreen/backups/{site_name}
duda.other.backups.list({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/backups/{site_name}/create
duda.other.backups.create({ site_name: site_name });
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 https://api.duda.co/api/sites/multiscreen/backups/{site_name}/{backup_name}
duda.other.backups.delete({ site_name: site_name, backup_name: backup_name });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/certificate
duda.other.ssl.create({ site_name: site_name });
POST https://api.duda.co/api/sites/multiscreen/{site_name}/certificate/renew
duda.other.ssl.renew({ site_name: site_name });
DELETE https://api.duda.co/api/sites/multiscreen/{site_name}/certificate
duda.other.ssl.delete({ site_name: site_name });
Update Simple Editors Settings Reference
PATCH https://api.duda.co/api/sites/multiscreen/{site_name}/simple-editor
duda.diyEditor.update({
site_name: site_name,
onboarding_required: onboarding_required,
});
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/account/details
duda.appstore.accounts.getOwner({ site_name: site_name });
GET https://api.duda.co/api/integrationhub/application/site/{site_name}
duda.appstore.sites.get({ site_name: site_name });
POST https://api.duda.co/api/integrationhub/application/site/{site_name}
duda.appstore.sites.update({ site_name: site_name });
Get Branding Details Reference
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/branding
duda.appstore.sites.getBrandingDetails({ site_name: site_name });
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/republish
duda.appstore.sites.republish({ site_name: site_name });
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/resources/upload
duda.appstore.sites.uploadResources({ site_name: site_name });
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/content
duda.appstore.content.get({ site_name: site_name });
Update Content Library Reference
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content
duda.appstore.content.update({ site_name: site_name });
Publish Content Library Reference
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/publish
duda.appstore.content.publish({ site_name: site_name });
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/content/location/{location_id}
duda.appstore.content.locations.get({
site_name: site_name,
location_id: location_id,
});
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/location
duda.appstore.content.locations.create({ site_name: site_name });
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/location/{location_id}
duda.appstore.content.locations.update({
site_name: site_name,
location_id: location_id,
});
DELETE https://api.duda.co/api/integrationhub/application/site/{site_name}/content/location/{location_id}
duda.appstore.content.locations.delete({
site_name: site_name,
location_id: location_id,
});
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection
duda.appstore.collections.list({ site_name: site_name });
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}
duda.appstore.collections.get({
site_name: site_name,
collection_name: collection_name,
});
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection
duda.appstore.collections.create({ site_name: site_name, name: name });
PUT https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}
duda.appstore.collections.update({
site_name: site_name,
current_collection_name: current_collection_name,
});
DELETE https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}
duda.appstore.collections.delete({
site_name: site_name,
collection_name: collection_name,
});
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/revalidate
duda.appstore.collections.clearCache({
site_name: site_name,
collection_name: collection_name,
});
Clear Cache by External ID Reference
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/revalidate/{external_id}
duda.appstore.collections.clearCacheByExtID({ external_id: external_id });
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/row
duda.appstore.collections.rows.create({
site_name: site_name,
collection_name: collection_name,
});
PUT https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/row
duda.appstore.collections.rows.update({
site_name: site_name,
collection_name: collection_name,
});
DELETE https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/row
duda.appstore.collections.rows.delete({
site_name: site_name,
collection_name: collection_name,
});
POST https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/field
duda.appstore.collections.fields.create({
site_name: site_name,
collection_name: collection_name,
});
PUT https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/field/{field_name}
duda.appstore.collections.fields.update({
site_name: site_name,
collection_name: collection_name,
field_name: field_name,
});
DELETE https://api.duda.co/api/integrationhub/application/site/{site_name}/content/collection/{collection_name}/row
duda.appstore.collections.fields.delete({
site_name: site_name,
collection_name: collection_name,
field_name: field_name,
});
GET https://api.duda.co/api/integrationhub/application/site/{site_name}/v2/pages
duda.appstore.pages.get({ site_name: site_name });
PUT https://api.duda.co/api/integrationhub/application/site/{site_name}/v2/pages/{page_uuid}
duda.appstore.pages.update({ site_name: site_name, page_uuid: page_uuid });
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce
duda.appstore.ecomm.get({ site_name: site_name });
PATCH https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce
duda.appstore.ecomm.update({ site_name: site_name });
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products
duda.appstore.ecomm.products.list({ site_name: site_name });
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,
});
POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products
duda.appstore.ecomm.products.create({ site_name: site_name });
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 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,
});
Get Product Variation Reference
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products/{product_id}/variations/{variation_id}
duda.appstore.ecomm.variations.get({
site_name: site_name,
product_id: product_id,
variation_id: variation_id,
});
Update Product Variation Reference
PATCH https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/products/{product_id}/variations/{variation_id}
duda.appstore.ecomm.variations.update({
site_name: site_name,
product_id: product_id,
variation_id: variation_id,
});
List Product Options Reference
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/options
duda.appstore.ecomm.options.list({ site_name: site_name });
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 Reference
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 Reference
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 Reference
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 Reference
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 Reference
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 Reference
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,
});
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders
duda.appstore.ecomm.orders.list({ site_name: site_name });
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 });
Create External Order Reference
POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders
duda.appstore.ecomm.orders.create({ site_name: site_name });
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 });
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders/{order_id}/refunds
duda.appstore.ecomm.orders.listRefunds({
site_name: site_name,
order_id: order_id,
});
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/orders/{order_id}/refunds/{refund_id}
duda.appstore.ecomm.orders.getRefund({
site_name: site_name,
order_id: order_id,
refund_id: refund_id,
});
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,
});
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,
});
List Payment Gateways Reference
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 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 Reference
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 Reference
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 Reference
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,
});
List Shipping Providers Reference
GET https://api-sandbox.duda.co/api/integrationhub/application/sites/{site_name}/ecommerce/shipping-providers
duda.appstore.ecomm.shipping.list({ site_name: site_name });
Get Shipping Provider Reference
GET https://api-sandbox.duda.co/api/integrationhub/application/sites/{site_name}/ecommerce/shipping-providers/{id}
duda.appstore.ecomm.shipping.get({ site_name: site_name, id: id });
Create Shipping Provider Reference
POST https://api-sandbox.duda.co/api/integrationhub/application/sites/{site_name}/ecommerce/shipping-providers
duda.appstore.ecomm.shipping.create({
site_name: site_name,
live_shipping_rates_url: live_shipping_rates_url,
});
Update Shipping Provider Reference
PATCH https://api-sandbox.duda.co/api/integrationhub/application/sites/{site_name}/ecommerce/shipping-providers/{id}
duda.appstore.ecomm.shipping.update({ site_name: site_name, id: id });
Delete Shipping Provider Reference
DELETE https://api-sandbox.duda.co/api/integrationhub/application/sites/{site_name}/ecommerce/shipping-providers/{id}
duda.appstore.ecomm.shipping.delete({ site_name: site_name, id: id });
GET https://api-sandbox.duda.co/api/integrationhub/application/site/multiscreen/{site_name}/ecommerce/store
duda.appstore.ecomm.store.get({ site_name: site_name });
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/ecommerce/carts
duda.appstore.ecomm.carts.list({ site_name: site_name });
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 });
List All Site Wide HTML Reference
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/sitewidehtml/list
duda.appstore.sitewidehtml.list({ site_name: site_name });
GET https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/sitewidehtml/{uuid}
duda.appstore.sitewidehtml.get({ site_name: site_name, uuid: uuid });
Create Site Wide HTML Reference
POST https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/sitewidehtml
duda.appstore.sitewidehtml.create({ site_name: site_name });
Update Site Wide HTML Reference
PUT https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/sitewidehtml/{uuid}
duda.appstore.sitewidehtml.update({ site_name: site_name, uuid: uuid });
Delete Site Wide HTML Reference
DELETE https://api-sandbox.duda.co/api/integrationhub/application/site/{site_name}/sitewidehtml/{uuid}
duda.appstore.sitewidehtml.delete({ site_name: site_name, uuid: uuid });
GET https://api-sandbox.duda.co/api/integrationhub/application/{app_uuid}
duda.appstore.manifest.get({ app_uuid: app_uuid });
UPDATE https://api-sandbox.duda.co/api/integrationhub/application/{app_uuid}
duda.appstore.manifest.update({ app_uuid: app_uuid });
Create New Access Token Reference
POST https://api-sandbox.duda.co/api/integrationhub/application/{app_uuid}/token/refresh
duda.appstore.tokens.create({ app_uuid: app_uuid });