Dukaan

Dukaan has no public seller REST API: integration is a free Webhooks plugin for events, a Nunjucks theme data layer for catalogue, and Enterprise-gated EasyEcom, Unicommerce and Vinculum plugins.

Dukaan is an Indian D2C store builder, run by Dukaan Technologies out of Bengaluru and launched in 2020 as a WhatsApp-first way for small merchants to put a catalogue online. It has since moved upmarket into a hosted storefront platform with themes, a plugin directory and an Enterprise plan aimed at established brands. For a seller it matters because it is one of the few Indian-built alternatives to Shopify with a native plugin for the Indian order management vendors. For an integrator it matters mostly for what is missing: as of 2026-09-21 there is no public Dukaan seller API reference, no developer console, and no published endpoint list. What does exist, and is first-party documented, is a free Webhooks plugin and a theme-side data layer. Everything beyond that runs through Dukaan's own team on the Enterprise plan.

At a glance

Warning

help.mydukaan.io returns HTTP 403 to an automated fetcher, and its article bodies are rendered client side, so the help centre could not be read. If Dukaan documents webhook event names anywhere public, that is the most likely place. Treat the event list on this page as unknown rather than as empty.

What it is

Dukaan is D2C only. It is a store builder and hosted storefront, not a marketplace: there is no shared buyer demand pool, each merchant sells under their own domain, and orders belong to the merchant. The seller base skews to Indian small and mid-sized brands, with a named enterprise tier that Dukaan markets with customer quotes from brands including WOW Skin Science and Lemonade. Dukaan charges a subscription; the pricing page renders its tiers client side and could not be read as text on 2026-09-21, so no figures are quoted here. The platform sells three distinct things: the storefront, a plugin directory of 87 plugins across Analytics, Customer Support, Marketing, Shipping, Store Management and Utilities, and an Enterprise plan under which Dukaan's own engineers build integrations for the customer.

API access

There is no self-serve developer programme. Specifically:

  • developers.mydukaan.io has no DNS record.
  • docs.mydukaan.io is a GitBook site titled "Dukaan Themes". It covers Nunjucks templating, theme folder structure, a data layer and three JavaScript hooks. It carries no endpoint reference, no authentication section and no rate limit section. Its pages were last updated three years before 2026-09-21.
  • The plugin directory invites third party developers with "Do you want to sell on our Marketplace? Unlock new earning opportunity by selling your plugins & themes on our marketplace" behind a "Join waitlist" button. There is no published app review process, no OAuth scope list and no partner tier documentation.
  • The EasyEcom, Unicommerce and Vinculum plugin listings all carry the identical text: "This plugin is a part of Dukaan's Enterprise Plan", followed by a process of getting in touch, a requirements assessment and "Customization and integration" done by Dukaan's team. In other words the order management vendor connectors are a sales conversation, not a credential you can issue yourself.

There are no official SDKs in any language that we could find, and no first-party Postman collection.

Authentication

Not published. There is nothing to document honestly here.

The only integration surface a seller can turn on without Dukaan's involvement is outbound: the Webhooks plugin posts to a URL you supply. That direction needs no Dukaan-issued credential, and Dukaan does not publish a signing secret, a signature header name or an IP allow list for it. Verify inbound webhook traffic with a hard-to-guess path segment and a shared secret in your own query string or header, and treat the body as untrusted until you can confirm with Dukaan support whether a signature exists.

If you need authenticated reads for a multi-store setup, the only route we can evidence is an Enterprise conversation with Dukaan, or reading the store through a connected order management vendor such as EasyEcom, Unicommerce or Vinculum, each of which does have its own documented API.

Objects we can read

Orders

Only as webhook deliveries, and only for events the seller has subscribed to in the plugin. The plugin's own installation guide describes the flow: install the plugin, create a webhook, "Select an event for which you want to create a webhook", "Add callback URL where webhook should send the data", "Preview sample webhook data", then save. Dukaan's plugin FAQ states that "All the raw data related to the selected webhook event will be sent", which implies a full object body rather than a thin identifier notification, but no sample body is published outside the panel preview.

No order field names are published. Do not guess them. Capture the first real delivery, snapshot it, and build the mapping from that.

Products and listings

Readable without credentials from any live Dukaan storefront through the theme data layer. Dukaan documents that store data is available server side to Nunjucks as bare variables, for example {{DUKAAN_STORE.link}}, and client side on window.DukaanData, for example window.DukaanData.DUKAAN_STORE. The documented variables are:

Dukaan adds that "Only the essential variables are mentioned above, you can view the other variables by running console.log(window.DukaanData) in your browser console", so the real object set on a live store is wider than the documented six. DUKAAN_CATALOG is the one that carries products, but Dukaan publishes no sample of it and no product field list, so the product schema is unverified.

This is the documented STORE_MENU sample, trimmed to one element. It shows how Dukaan references a product: a numeric id, a slug and an image URL under content_object, with content_type distinguishing a product from a store page.

[
  {
    "id": 269677,
    "position": 0,
    "label": "Harry Potter & The Philosopher's Stone",
    "url": null,
    "content_type": "product",
    "content_object": {
      "id": 38266106,
      "slug": "harry-potter-the-philosopher-s-stone-1",
      "image": "https://api.mydukaan.io/static/images/category-def.jpg"
    },
    "name": "Harry Potter & The Philosopher's Stone",
    "child": []
  }
]

DUKAAN_BANNERS shows the store identifier shape, which is useful because it tells us a Dukaan store carries both a numeric id and a UUID:

[
  {
    "id": 73413,
    "uuid": "85af7d36-904b-4eaf-8e0d-595bcf8b85cd",
    "is_active": true,
    "image": "https://dukaan-core-file-service.s3.ap-southeast-1.amazonaws.com/upload_file_service/ebaca373-2ed1-4c4e-8309-e1ca69dd7beb/image.png",
    "url": null,
    "position": 0,
    "store": "31d9141e-acc5-4bbe-ad6a-ea6ef13dccf9"
  }
]

DUKAAN_THEME_DATA confirms the numeric store id alongside the UUID: its documented sample opens with "store": 101561150.

Reading a storefront this way is a catalogue scrape, not an authenticated API read. It gives you titles, slugs, images and whatever price and stock fields Dukaan chooses to render; it gives you nothing private and nothing historical.

Inventory, shipments, returns, settlements, customers, locations

No documented programmatic read. Two plugin listings hint at where the data lives: a "Stock Override" plugin and a "Custom Delivery Partners" plugin both exist in the Store Management and Shipping categories, but neither publishes an interface. Use the seller panel, or read these objects from the order management vendor the store is connected to.

Writing back: listings, price and stock

Not available through any documented public interface. There is no catalogue write endpoint, no feed format and no bulk job API published by Dukaan.

The routes that do exist:

  1. The seller panel, by hand or by its own bulk upload, whose template is not documented publicly.
  2. An order management vendor on the Enterprise plan. EasyEcom, Unicommerce and Vinculum each push catalogue, price and stock into the channels they support, and each has a documented API of its own. If the store is on Enterprise and connected, write to the vendor and let it write to Dukaan.
  3. Migration importers, which are one-way and one-off: Dukaan ships "Shopify Importer", "WooCommerce Importer" and "Gumroad Importer" plugins. These bring a catalogue in. They are not a sync mechanism.

Theme deployment is also panel only. Dukaan documents a "Save & preview" button that publishes to a preview URL and a "Publish" button that goes live. There is no CLI and no deploy endpoint.

Webhooks and notifications

Yes, through the free "Webhooks" plugin in the Utilities category. What Dukaan publishes about it, verbatim from the plugin listing:

  • "The webhook plugin allows you to trigger webhooks on various events so you can integrate with you favorite apps."
  • "Trigger webhooks on selected events."
  • "Create multiple webhooks."
  • "Connect with Zapier, Pabbly etc for further operations on webhooks."
  • Free: the FAQ answers "Is this plugin free to use?" with "Yes, this plugin is free to use."
  • Unlimited count: "You can create as many webhooks as you want."
  • Test behaviour: "The test webhook functionality sends the data of your last order received. Thus, if no order exists on your store, the test webhook functionality will not work as expected."

What is not published anywhere we could read: the event names, the request body schema, the HTTP method and content type, any signature or secret, the retry policy and the delivery timeout. The panel exposes a "Preview sample webhook data" step, so a seller with access can read all of this in five minutes; an outsider cannot.

Because the test send replays the last real order, the fastest way to specify this connector is to have the seller install the plugin, point it at a request bin, fire the test, and hand over the captured body. Do that before writing any parsing code.

If webhooks are not an option, there is nothing to poll: no public read endpoint exists to poll against.

Rate limits and pagination

Not published, for either direction. No quota headers are documented because no documented API exists. For the storefront data layer, treat it as an ordinary web page and crawl politely: one request per store page, a few seconds apart, and cache aggressively.

Mapping to the unified model

Only two of the unified tables can be populated from documented Dukaan surfaces, and one of them needs a live webhook capture first.

Gaps and open questions

  • The webhook event catalogue is the single biggest gap. Names, bodies, verification and retries are all unknown from outside the panel.
  • Whether Dukaan signs webhook deliveries at all is unverified. Assume not, and design the receiver defensively.
  • DUKAAN_CATALOG is documented by name and description but has no published sample, so the product and variant schema, including how SKUs and stock are represented, is unverified.
  • Whether the Enterprise plan exposes a genuine REST API to the customer, or only integrations that Dukaan's team builds and operates, is not stated. The plugin copy reads as the latter. This is a question for a Dukaan account manager.
  • The theme documentation was last updated three years before this page was written. Some variables may have been renamed or added since.
  • Dukaan's help centre could not be read, so any webhook or bulk upload article it contains is unaccounted for here.

Sources