Skip to content

Pages on Duda (Pages v2)

Duda’s Pages v2 API is the backend for create_page_draft and update_page_draft when the site’s platform is duda.

Pages are always created with draft_status: DRAFT. The worker rejects any caller-supplied draft_status value on create. To advance to STAGED_DRAFT (which publishes on the next site-wide publish), use update_page_draft with publish_on_next_site_publish: true explicitly.

There is no time-based schedule for Duda pagesschedule_page rejects Duda sites. STAGED_DRAFT is the only “ready to go live” state, and the publish trigger is whoever clicks Publish in Duda admin.

create_page_draft
site_id="<duda-site-id>"
title="Pricing"
slug="pricing"
seo={
"title": "Pricing — Acme",
"description": "Three tiers...",
"no_index": false,
"og_image": "https://cdn.example.com/og-pricing.png"
}
header_html="<script>...</script>"

Returns { id: "<uuid>", status: "draft", url: "/pricing" }.

Edit a draft’s fields. The slug change is the typical risk — Duda doesn’t allow changing the home page path.

update_page_draft
site_id="<duda-site-id>"
page_id="<uuid>"
title="Pricing 2026"
seo={ "title": "Updated SEO title" }

Opt into STAGED_DRAFT (publish on next site publish)

Section titled “Opt into STAGED_DRAFT (publish on next site publish)”
update_page_draft
site_id="<duda-site-id>"
page_id="<uuid>"
publish_on_next_site_publish=true

Now the page will go live the next time someone hits the global Publish button on the Duda dashboard. You can revert back to DRAFT by passing the flag as false (or omitting it — server treats absence as no-change).

  • Page builders (page_builder arg, list_page_templates) — Duda doesn’t have Gutenberg/Elementor concept
  • Time-based scheduling (schedule_page) — see above
  • create_page_from_code — WordPress only