Skip to Content

Themes API

Total endpoints: 109

Source: routes/store-templates.js

GET/api/store-templates/public/list

═══════════════════════════════════════════════════════════════════

GET/api/store-templates/admin/listAuth Required

═══════════════════════════════════════════════════════════════════

GET/api/store-templates/admin/:idAuth Required

═══════════════════════════════════════════════════════════════════

DELETE/api/store-templates/admin/:idAuth Required

═══════════════════════════════════════════════════════════════════

PATCH/api/store-templates/admin/:id/toggleAuth Required

═══════════════════════════════════════════════════════════════════

PUT/api/store-templates/admin/reorderAuth Required

═══════════════════════════════════════════════════════════════════

GET/api/store-templates/admin/purchasesAuth Required

═══════════════════════════════════════════════════════════════════

POST/api/store-templates/create-orderAuth Required

═══════════════════════════════════════════════════════════════════

POST/api/store-templates/verify-paymentAuth Required

═══════════════════════════════════════════════════════════════════

POST/api/store-templates/selectAuth Required

═══════════════════════════════════════════════════════════════════

Source: routes/theme-editor.js

GET/api/storefront/resolve-domain

GET store slug by custom domain (for custom domain resolution)

GET/api/storefront/:store_slug/theme

GET published theme config

GET/api/storefront/:store_slug/menus

GET all menus for a store

GET/api/storefront/:store_slug/menus/:handle

GET single menu by handle (checks theme_menus first, then falls back to store_menus)

GET/api/storefront/:store_slug/pages

GET all published pages for a store (title, slug only)

GET/api/storefront/:store_slug/pages/:slug

GET single published page by slug

GET/api/storefront/:store_slug/products/:slug

GET single product by slug (public — storefront)

GET/api/storefront/:store_slug/collections/:slug

GET collection by slug (public — storefront) with filter, sort, pagination

GET/api/storefront/:store_slug/search

GET search products (public — storefront search)

GET/api/storefront/:store_slug/collection-products

GET collection products for editor preview (public — storefront, lightweight)

GET/api/storefront/:store_slug/widget-products

GET widget products — dynamic product source for page builder Products widget

GET/api/storefront/:store_slug/widget-products/search

GET search products for widget picker (editor — product search for manual selection)

GET/api/storefront/:store_slug/widget-collections

GET collections list for widget picker (editor — collection dropdown)

GET/api/storefront/:store_slug/media-items

GET media items for mega menu (public — storefront)

GET/api/storefront/:store_slug/policies

GET policies for storefront (public — no auth)

POST/api/storefront/:store_slug/notify-restock

POST notify-restock (public — storefront, optional customer auth)

POST/api/theme-editor/extend-token

The editor calls this with its current valid JWT to get a fresh one.

GET/api/theme-editor/configAuth Required

GET draft config

PUT/api/theme-editor/configAuth Required

PUT full config (save entire draft)

PATCH/api/theme-editor/config/sectionAuth Required

PATCH update single section

POST/api/theme-editor/config/sectionAuth Required

POST add section

DELETE/api/theme-editor/config/sectionAuth Required

DELETE remove section

POST/api/theme-editor/publishAuth Required

POST publish (copy draft → published)

GET/api/theme-editor/historyAuth Required

GET history list (paginated)

GET/api/theme-editor/history/:idAuth Required

GET single history entry (full config snapshot)

PUT/api/theme-editor/global-settingsAuth Required

PUT global settings

PUT/api/theme-editor/renameAuth Required

PUT rename theme

GET/api/theme-editor/menusAuth Required

GET all menus (authenticated - for editor)

GET/api/theme-editor/menus/:idAuth Required

GET single menu (authenticated)

POST/api/theme-editor/menusAuth Required

POST create menu

PUT/api/theme-editor/menus/:idAuth Required

PUT update menu

DELETE/api/theme-editor/menus/:idAuth Required

DELETE menu

DELETE/api/theme-editor/delete-imageAuth Required

DELETE image from R2

GET/api/storefront/:store_slug/payment-methods

Get active payment methods for a store (public — keys only, no secrets).

POST/api/storefront/:store_slug/checkout/validate-cart

Validate cart items (stock check + product status).

POST/api/storefront/:store_slug/checkout/shipping-rates

Shipping rates — returns store's shipping config.

POST/api/storefront/:store_slug/checkout/apply-discount

Apply discount code (public — uses store_slug to scope).

POST/api/storefront/:store_slug/checkout/create-razorpay-order

Create Razorpay order — credentials stay server-side.

POST/api/storefront/:store_slug/checkout/place-order

Place order — verify payment + create order + update inventory + notify.

POST/api/storefront/:store_slug/customer/login

═══════ STOREFRONT CUSTOMER ENDPOINTS ═══════

POST/api/storefront/:store_slug/customer/register

Create or update storefront customer register

POST/api/storefront/:store_slug/customer/register/verify

Create or update storefront customer register verify

GET/api/storefront/:store_slug/customer/profile

Get storefront customer profile

GET/api/storefront/:store_slug/customer/orders

Get storefront customer orders

GET/api/storefront/:store_slug/customer/orders/:order_id

Get storefront customer orders

PUT/api/storefront/:store_slug/customer/profile

── Update customer profile ──

GET/api/storefront/:store_slug/customer/addresses

GET addresses

POST/api/storefront/:store_slug/customer/addresses

POST create address

PUT/api/storefront/:store_slug/customer/addresses/:address_id

PUT update address

DELETE/api/storefront/:store_slug/customer/addresses/:address_id

DELETE address

Source: routes/theme-marketplace.js

GET/api/marketplace/themes

List published themes with pagination, filtering, sorting

GET/api/marketplace/themes/:theme_slug

Single theme detail

GET/api/marketplace/themes/:theme_slug/reviews

Paginated reviews for a theme

GET/api/marketplace/featured

Featured themes

GET/api/marketplace/categories

Categories with counts

GET/api/marketplace/store-theme-info/:store_slugAuth Required

Get developer info for installed theme on a store

POST/api/marketplace/themes/:theme_slug/installAuth Required

Create or update marketplace themes install

POST/api/marketplace/themes/:theme_slug/activateAuth Required

Activate an installed theme on a store

DELETE/api/marketplace/themes/:theme_slug/uninstallAuth Required

Uninstall a theme (cannot uninstall active theme)

GET/api/marketplace/my-themesAuth Required

List installed themes for a store

POST/api/marketplace/developer/themes

Create a new marketplace theme listing

PUT/api/marketplace/developer/themes/:theme_slug

Update theme metadata

POST/api/marketplace/developer/themes/:theme_slug/versions

Submit a new version

GET/api/marketplace/developer/my-themes

List developer's themes

DELETE/api/marketplace/developer/themes/:theme_slug

Delete developer theme (only if 0 installs)

GET/api/marketplace/developer/themes/:theme_slug

Developer theme detail with all versions

POST/api/marketplace/developer/themes/:theme_slug/save-draft

Save draft (persist workspace: config JSONB + code files)

GET/api/marketplace/admin/pending-reviewsAuth Required

List pending reviews

GET/api/marketplace/admin/terminated-themesAuth Required

List terminated/suspended themes for admin

POST/api/marketplace/admin/themes/:theme_slug/restoreAuth Required

Lift termination early (admin can restore before expiry)

GET/api/marketplace/admin/themes/:theme_slug/versions/:version_idAuth Required

View full config for review

POST/api/marketplace/admin/themes/:theme_slug/versions/:version_id/approveAuth Required

Approve a version

POST/api/marketplace/admin/themes/:theme_slug/versions/:version_id/rejectAuth Required

Reject a version

POST/api/marketplace/admin/themes/:theme_slug/terminateAuth Required

Terminate a theme permanently (admin only)

POST/api/marketplace/themes/:theme_slug/create-orderAuth Required

Create Razorpay order for a paid theme

POST/api/marketplace/themes/:theme_slug/verify-paymentAuth Required

Verify payment and auto-install theme

GET/api/marketplace/themes/:theme_slug/purchase-statusAuth Required

Check purchase status

POST/api/marketplace/themes/:theme_slug/reviewsAuth Required

Submit or update a review

DELETE/api/marketplace/themes/:theme_slug/reviewsAuth Required

Delete own review

GET/api/marketplace/my-themes/updatesAuth Required

Check for available updates across installed themes

POST/api/marketplace/themes/:theme_slug/updateAuth Required

Apply theme update

GET/api/marketplace/developer/themes/:theme_slug/export/:version_id

Export a theme version as .ggp

POST/api/marketplace/developer/themes/:theme_slug/import

Import a .ggp file as a new version

POST/api/marketplace/developer/export-store-config

Export a store's current config for packaging

POST/api/marketplace/developer/preview-configAuth Required

Save preview config (authenticated developer)

PUT/api/marketplace/developer/preview-config/:id

Update existing preview session (avoids creating new rows on each file change)

GET/api/marketplace/preview/:preview_id

Fetch preview config (public — used by theme renderer iframe)

GET/api/marketplace/developer/bank-details

Get bank details

POST/api/marketplace/developer/bank-details

Save/update bank details

POST/api/marketplace/admin/verify-bank/:developer_idAuth Required

Admin: verify bank details

GET/api/marketplace/admin/bank-verificationsAuth Required

Admin: list all bank verification requests

GET/api/marketplace/developer/earnings

Get developer earnings summary + recent transactions

POST/api/marketplace/developer/request-payout

Request payout

GET/api/marketplace/admin/payoutsAuth Required

List payout requests (filterable by status)

POST/api/marketplace/admin/payouts/:payout_id/processAuth Required

Mark payout as processing

POST/api/marketplace/admin/payouts/:payout_id/completeAuth Required

Complete a payout

POST/api/marketplace/admin/payouts/:payout_id/failAuth Required

Fail a payout (revert earnings to pending)

Source: routes/theme.js

GET/api/theme/selectAuth Required

Body: { vendor_id?: number, store?: string, theme: string }

POST/api/theme/upgrade-request

Body: { vendor_id?: number, store?: string, theme?: string }